メインコンテンツまでスキップ

ペイロード仕様

配信形式

HTTPS POST で JSON ボディが送信されます。Content-Type は application/json

注記

本ページの構造をそのまま受け取るのは Custom エンドポイントのみです。Slack / Teams / Email は内部で各サービス向けの形式(整形済みテキスト投稿・メール)に変換されます。

サンプル Payload (Custom エンドポイント)

{
"message": "[Recho] 発信通話エラー\n━━━━━━━━━━━━━━\ncallId: abc-123\ncallStatus: CALLING\ncallSid: CA94b51...\nclientId: client-1\n━━━━━━━━━━━━━━\nエラー一覧:\n - [CALL_CONNECTION_FAILED] Failed to initiate or connect the call.\n━━━━━━━━━━━━━━\n時刻: 2026-05-12 10:24:00",
"data": {
"callId": "abc-123",
"callStatus": "CALLING",
"callSid": "CA94b51...",
"clientId": "client-1"
},
"errors": [
{
"code": "CALL_CONNECTION_FAILED",
"message": "Failed to initiate or connect the call.",
"timestamp": "2026-05-12T10:23:45.000Z"
}
]
}

TypeScript 型定義

上のサンプルと同じ構造の型定義です:

type WebhookPayload = {
message: string; // キー名は contentKey 設定で変更可能(既定は message)
data: WebhookData;
errors?: CallError[]; // エラー時のみ
};

type WebhookData = {
callId: string;
callStatus: string;
callSid: string; // 無い場合は空文字
clientId: string; // 無い場合は空文字
};

type CallError = {
code: WebhookErrorCode; // エラー分類(/webhooks/error-codes 参照)
message: string; // 分類ごとに固定の英語メッセージ
timestamp: string; // ISO 8601 (UTC)
};

type WebhookErrorCode =
| 'CALL_NOT_PERMITTED'
| 'CALL_CONNECTION_FAILED'
| 'CALL_INTERRUPTED'
| 'CALL_RESULT_PROCESSING_FAILED'
| 'INTERNAL_ERROR'
| 'UNKNOWN_ERROR';

トップレベルフィールド

フィールド用途
messagestring表示用の整形済み本文(人間可読)。改行 (\n) と区切り線入り。ログ表示や通知転送に流すのが想定用途。機械的にパースしないこと。キー名は Webhook 設定の contentKey で変更可能(未設定時は message
dataWebhookData機械可読な識別情報。プログラム側はここを参照する
errorsArray<CallError> | undefinedエラー時のみ含まれる配列。受信側は errors?.length でエラー判定 → 詳細ログや通知に流用

data フィールド(通話識別情報)

フィールド用途
callIdstring通話 ID(一意)。外部システムで通話を識別する主キー。同じ callId の通知は FIFO で配信される(設定ガイド 参照)
callStatusstring通知時点の通話ステータス。値の一覧は 通話ステータス一覧 参照。エラー判定には使えないerrors 配列の有無で行うこと)
callSidstring電話回線プロバイダ側の通話 ID(無い場合は空文字)。プロバイダ側ログとの突合に使う想定
clientIdstringクライアント識別子(任意・無い場合は空文字)。発信時に指定したアプリケーション側 ID をそのまま透過させるためのフィールド

errors[] フィールド(エラー詳細)

エラー発生時のみ含まれる配列で、1 件以上のエラーオブジェクト(code / message / timestamp)が入ります。各フィールドの意味と code に入り得る値は エラーコード一覧 にまとめています。

認証

認証情報(Bearer トークン / RSA-SHA256 署名)は payload ではなく リクエストヘッダに付与されます。検証方法は 認証方式 を参照してください。