カスタムOTPコード配信
EngageLabプラットフォームで認証コードを生成するのではなく、お客様ご自身で生成した認証コードを送信したい場合は、このAPIを呼び出すことができます。
このAPIは、事前に生成された認証コードを送信するための専用APIであり、認証コード自体を生成する機能はありません。また、認証コード送信後に、そのコードを検証するための検証APIを呼び出す必要はありません。
EngageLabプラットフォームで認証コードを生成させたい場合は、EngageLab OTP Verification Code Delivery APIをご利用ください。
Endpoint
POST https://otp.api.engagelab.cc/v1/codes
Authentication
HTTPヘッダーにAuthorizationを追加し、HTTP Basic Authenticationを使用します。
Authorization: Basic ${base64_auth_string}
上記のbase64_auth_stringは、次のアルゴリズムで生成します:base64(dev_key:dev_secret)
Request Example
Request Header
POST /v1/codes HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Request Body
{
"to": "+6591234567",
"code": "398210",
"template": {
"id": "test-template-1",
"language": "default",
"params": {
"key1": "value1",
"key2": "value2"
}
}
}
Request Parameters
リクエストオブジェクトはJSON形式で表現されるため、リクエストヘッダーにはContent-Type: application/jsonを含める必要があります。
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | String | Required | 配信先の電話番号またはメールアドレス。例:+6598765432 または support@engagelab.com |
| code | String | Required | 送信するカスタム認証コード |
| template | JSON Object | Required | テンプレート情報。以下の第2階層パラメータを参照してください |
| |_ id | String | Required | テンプレートID |
| |_ language | String | Optional | テンプレートの言語。サポート言語は以下のとおりです: default デフォルト言語 zh_CN 簡体字中国語 zh_HK 繁体字中国語 en 英語 ja 日本語 th タイ語 es スペイン語 指定しない場合のデフォルト値は default(デフォルト言語)です。 |
| |_ params | JSON Object | Optional | カスタムテンプレート変数キーに対応する値です。テンプレート作成時にカスタム変数を定義している場合は、ここで値を設定してください。指定しない場合、変数キーはそのまま送信されます。例:{{var}}。 |
paramsの説明
from_idなどのプリセットテンプレートフィールドについて、param_varsフィールドの値が指定されていない場合、メッセージ送信時にはテンプレート内であらかじめ設定されたfrom_idが使用されます。param_varsフィールドの値が指定されている場合、たとえばparam_vars:{"from_id":"12345"}のように設定すると、メッセージ送信時にテンプレートのfrom_idは12345に置き換えられます。- テンプレート作成時に設定したテンプレートコンテンツ内のカスタム変数フィールドにも、
param_varsを通じて値を割り当てます。たとえば、テンプレートコンテンツがHi {{name}}, your verify code is {{code}}である場合、割り当てパラメータparam_vars:{"name":"Bob"}が必要です。
Response Parameters
Successful Response
| Field | Type | Required | Description |
|---|---|---|---|
| message_id | String | Required | メッセージID。メッセージを一意に識別します |
| send_channel | String | Required | 現在の配信チャネル。指定可能な値:whatsapp/sms/email/voice |
{
"message_id": "1725407449772531712",
"send_channel": "sms"
}
返されるsend_channelの値は、メッセージが最終的にユーザーへ配信されるチャネルを示すものではなく、あくまで現在使用中のチャネルを示します。たとえば、テンプレート戦略でWhatsAppチャネルによる配信に失敗した場合にSMSチャネルで自動再試行するよう設定されている場合、APIレスポンスではwhatsappが返されます。その後、一定時間が経過して配信失敗が検出されると、システムはSMSチャネルで送信します。
Failed Response
HTTPステータスコードは4xxまたは5xxで、レスポンスボディには次のフィールドが含まれます。
| Field | Type | Required | Description |
|---|---|---|---|
| code | int | Required | エラーコード。詳細はError Codesを参照してください |
| message | String | Required | エラーの詳細 |
{
"code": 5001,
"message": "sms send fail"
}
Error Codes
| Error Code | HTTP Code | Description |
|---|---|---|
| 1000 | 500 | 内部エラー |
| 2001 | 401 | 認証に失敗しました。正しいトークンが提供されていません。 |
| 2002 | 401 | 認証に失敗しました。トークンの有効期限が切れているか、無効化されています。 |
| 2004 | 403 | このAPIを呼び出す権限がありません |
| 3001 | 400 | 無効なリクエストパラメータ形式です。JSONコンテンツが必要なパラメータ形式に一致しているか確認してください。 |
| 3002 | 400 | 無効なリクエストパラメータです。リクエストパラメータが要件を満たしているか確認してください。 |
| 3003 | 400 | 無効なリクエストパラメータです。関連する業務上の検証に失敗しました。詳細はmessageフィールドのエラー説明を参照してください。 |
| 3004 | 400 | 頻度制限を超えました。同一テンプレートかつ同一対象ユーザーに対しては、認証コードの有効期間内に再度配信することはできません。 |
| 4001 | 400 | 関連リソースが存在しません。たとえば、テンプレートメッセージ送信時に存在しないテンプレートを使用した場合などです。 |
| 5001 | 400 | 送信に失敗しました(一般/その他) |
| 5011 | 400 | 無効な電話番号形式 |
| 5012 | 400 | 配信先に到達できません |
| 5013 | 400 | 番号がブラックリストに登録されています |
| 5014 | 400 | コンテンツが仕様に準拠していません |
| 5015 | 400 | メッセージが遮断または拒否されました |
| 5016 | 400 | 内部送信エラー |
| 5017 | 400 | 中国本土向けの送信権限がありません |
| 5018 | 400 | 端末異常(電源オフ/サービス停止) |
| 5019 | 400 | ユーザーは配信停止しています |
| 5020 | 400 | 番号が未登録、または無効です |










