OTP 送信

このインターフェースは、EngageLab プラットフォームで検証コードを生成し、テンプレートで指定されたチャネル戦略に従って送信するために使用されます。

EngageLab プラットフォームに検証コードを生成させるのではなく、ご自身で検証コードを生成したい場合は、EngageLab OTP のカスタム OTP 送信 インターフェースを呼び出すことができます。

リクエスト URL

POST https://otp.api.engagelab.cc/v1/messages

認証

API 認証の方法については 認証 を参照してください。

リクエスト例

リクエストヘッダー

POST /v1/messages HTTP/1.1 Content-Type: application/json Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
              
              POST /v1/messages  HTTP/1.1  
Content-Type: application/json  
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0

            
このコードブロックはフローティングウィンドウ内に表示されます

リクエストボディ

{ "to": "+6591234567", "template":{ "id":"test-template-1", "language": "default", "params": { "key1": "value1", "key2": "value2" } } }
              
              {
    "to": "+6591234567",
    "template":{
      "id":"test-template-1",
      "language": "default",
        "params": {
        "key1": "value1",
        "key2": "value2"
        }
    }
}

            
このコードブロックはフローティングウィンドウ内に表示されます

リクエストパラメータ

リクエストオブジェクトは JSON 形式で表現されるため、リクエストヘッダーには Content-Type: application/json を含める必要があります。

パラメータ 必須/任意 説明
to String 必須 送信先。携帯電話番号またはメールアドレス。+6598765432、support@engagelab.com
end_user_ip String 任意 エンドユーザーの IP アドレス。異なる時間枠で同一 IP アドレスからのリクエスト上限を制限する場合に使用します。例: 10.3.5.7
channel String 任意 最初の送信チャネルを指定します。値は sms/voice/zalo/viber。未指定時はテンプレートの send_channel_strategy に従ってルーティングします。
template JSON Object 必須 テンプレート情報。以下の下位パラメータを参照
|_ id String 必須 テンプレート ID
|_ language String 任意 テンプレート言語。以下の言語に対応:
default(デフォルト言語)
zh_CN(簡体字中国語)
zh_HK(繁体字中国語)
en(英語)
ja(日本語)
th(タイ語)
es(スペイン語)
渡さない場合は default になります。
|_ params JSON Object 任意 カスタムテンプレート変数キーの値。テンプレート作成時に変数をカスタマイズした場合は、ここでその値を渡します。渡さない場合は、{{var}} のように変数キーがそのまま送信されます

params に関する注意

  1. from_id などテンプレートに既定されたフィールドについては、params フィールドの値を渡さない場合、メッセージ送信時にテンプレートの既定の from_id が使用されます;
  2. params:{"from_id":"12345"} のように params フィールドの値を渡した場合、メッセージ送信時にテンプレートの from_id が 12345 に置き換えられます;
  3. また、テンプレート作成時のテンプレート内容にあるカスタム変数フィールドも params で値を割り当てます。例えばテンプレート内容が Hi {{name}}, your verify code is {{code}} の場合、params:{"name":"Bob"} のようにパラメータを割り当てる必要があります。
  4. Email チャネルの特殊変数: Email チャネルでは、params を通じてメール件名(subject)、送信者名(from_name)、送信者メールアドレス(from_mail)などを動的に上書きできます。詳細な高度な使い方は テンプレートの作成 - Email テンプレート変数の高度な使い方 を参照してください。

レスポンスパラメータ

成功レスポンス

フィールド 必須/任意 説明
message_id String 必須 メッセージ ID。メッセージを一意に識別する
send_channel String 必須 現在の送信チャネルを示す。値は whatsapp/sms/email/voice/zalo/viber
{ "message_id": "1725407449772531712", "send_channel": "sms" }
              
              {
    "message_id": "1725407449772531712",
    "send_channel": "sms"
}

            
このコードブロックはフローティングウィンドウ内に表示されます

なお、返却される send_channel の値は、最終的にユーザーに配信されるチャネルを表すものではなく、この段階で使用されたチャネルを表すにすぎません。例えば、テンプレートで設定された戦略が WhatsApp チャネルでの配信失敗時に自動的に SMS チャネルへフォールバックする場合、インターフェースは whatsapp の値を返します。一定時間後に配信失敗を検知すると、システムは SMS チャネルを使用して送信します。

失敗レスポンス

HTTP ステータスコードは 4xx または 5xx で、レスポンスボディには次のフィールドが含まれます。

フィールド 必須/任意 説明
code int 必須 エラーコード。詳細はエラーコードの説明を参照
message String 必須 エラーの詳細
{ "code": 5001, "message": "sms send fail" }
              
              {
    "code": 5001,
    "message": "sms send fail"
}

            
このコードブロックはフローティングウィンドウ内に表示されます

エラーコード

下表は、本 API が認証、送信前検証、および同期送信段階で返すエラーのみを記載します。プロバイダー受理後の非同期配信失敗は本 API では返されません。メッセージステータス照会またはコールバックで取得してください。

呼び出し側は code でエラータイプを判定してください。message は具体的な理由の表示やトラブルシューティングに使用し、固定の message 文言に依存した業務ロジックは推奨しません。

エラーコード HTTP コード 説明
1000 500 内部エラー
2001 401 認証失敗。付与されたトークンが正しくない
2002 401 認証失敗。トークンが期限切れまたは無効化されている
2003 403 この IP からのメッセージ送信は許可されていません。
2004 403 この API を呼び出す権限がない
3001 400 リクエストパラメータの形式が不正。JSON の内容がパラメータ形式に準拠しているか確認してください
3002 400 リクエストパラメータが正しくない。リクエストパラメータが要件を満たしているか確認してください
3003 400 リクエストパラメータが正しくない。関連するビジネス検証に失敗。詳細は message フィールドのエラー説明を参照してください
3004 400 頻度制限を超過。同一テンプレート・同一宛先ユーザーに対しては、検証コードの有効期間内に再送信できません
3005 400 アカウントの利用可能残高が不足しています
3013 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 未登録の番号/空番号
6001 429 同一携帯電話番号の送信頻度が制限を超過。制限ウィンドウは分、時間、または暦日の場合があります
6002 429 同一エンドユーザー IP の送信頻度が制限を超過。制限ウィンドウは分または時間の場合があります。リクエストに end_user_ip が含まれている場合のみ検査します
6003 429 アプリケーションのグローバルな日次または月次送信量が上限に達しました
6006 403 現在の国または地域では送信が許可されていません
6007 403 SMS 検証コード送信サービスが一時停止されています。すべての国/地域、または現在の国/地域の一時停止の場合があります
6008 429 現在の国または地域の日次または月次送信量が上限に達しました

レート制限および送信量エラーの説明

  • 3004 はテンプレート検証コード送信の頻度制御です。制限ウィンドウはテンプレート設定に基づき、検証コードの有効期間と一致しない場合があります。
  • 60016002 は番号またはエンドユーザー IP 次元のセキュリティ頻度制御です。
  • 60036008 は本リクエストが送信量上限に達したことを示します。上限到達後に一時停止状態へ入ると、以降のリクエストは 6007 を返す場合があります。
  • HTTP 429 を受信した場合、すぐに連続してリトライしないでください。しばらくしてから再試行し、継続する場合は管理者またはテクニカルサポートに連絡してください。
  • 5011 から 5019 は同期送信段階で識別可能な失敗のみを示します。プロバイダー受理後に発生する空番号、電源オフ、キャリア拒否などの状態は、非同期のメッセージステータスまたはコールバックで返される場合があります。
Icon Solid Transparent White Qiyu
お問い合わせ