カスタムメッセージ配信
OTP プラットフォームですでにカスタムテンプレートコンテンツを作成している場合は、この API を呼び出してカスタムメッセージコンテンツを送信できます。
Endpoint
POST https://otp.api.engagelab.cc/v1/custom-messages
Authentication
認証には HTTP Basic Authentication を使用し、HTTP ヘッダーに Authorization を追加します。
Authorization: Basic ${base64_auth_string}
Authorization: Basic ${base64_auth_string}
このコードブロックはフローティングウィンドウ内に表示されます
base64_auth_string の生成アルゴリズムは次のとおりです:base64(dev_key:dev_secret)
Request Format
Request Headers
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
POST /v1/custom-messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
このコードブロックはフローティングウィンドウ内に表示されます
Request Body
{
"to": "+6591234567",
"template": {
"id": "test-template-1",
"params": {
"code": "codevalue",
"var1": "value1"
}
}
}
{
"to": "+6591234567",
"template": {
"id": "test-template-1",
"params": {
"code": "codevalue",
"var1": "value1"
}
}
}
このコードブロックはフローティングウィンドウ内に表示されます
Request Parameters
リクエストオブジェクトは JSON 形式で表されるため、リクエストヘッダーには Content-Type: application/json を含める必要があります。
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | String | Required | 配信先。携帯電話番号またはメールアドレス。例:+6598765432 または support@engagelab.com |
| template | JSON Object | Required | テンプレート情報。以下のネストされたパラメータを参照してください |
| |_ id | String | Required | テンプレート ID |
| |_ params | JSON Object | Optional | テンプレートパラメータ |
| _ |_ code | String | Optional | テンプレートタイプが認証コードの場合は必須 |
| _ |_ var | String | Optional | カスタムテンプレート変数キーの値。テンプレート作成時にカスタム変数を定義している場合は、ここで値を設定します。指定しない場合、変数キーは {{var1}} のようにそのまま配信されます |
params に関する注意事項
{{brand_name}}、{{ttl}}、{{pwa_url}}などのプリセットテンプレート変数は渡す必要はありません。システムが、テンプレート作成時に指定された内容に自動的に置き換えます。- テンプレートタイプが認証コードの場合は、
{{code}}変数を渡す必要があります。渡さない場合はエラーが返されます。 - テンプレートコンテンツに、テンプレート作成時に定義したカスタム変数フィールドが含まれている場合は、それらについても
paramsを通じて値を設定する必要があります。たとえば、テンプレートコンテンツがHi {{name}}, your verify code is {{code}}の場合、params: {"name":"Bob"}というパラメータを設定する必要があります。
Request Examples
1. カスタム認証コードを送信する
{
"to": "+6591234567",
"template": {
"id": "code-template",
"params": {
"code": "123456"
}
}
}
{
"to": "+6591234567",
"template": {
"id": "code-template",
"params": {
"code": "123456"
}
}
}
このコードブロックはフローティングウィンドウ内に表示されます
2. カスタム通知コンテンツを送信する
{
"to": "+6591234567",
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
{
"to": "+6591234567",
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
このコードブロックはフローティングウィンドウ内に表示されます
3. カスタムマーケティングコンテンツを送信する
{
"to": ["+6591234567"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
{
"to": ["+6591234567"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
このコードブロックはフローティングウィンドウ内に表示されます
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"
}
{
"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"
}
{
"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 | 番号が未登録または無効です |










