コールバック
タスクの終了通知:署名検証、ヘッダー、リトライポリシー、payload の構造。
タスク作成時に callback_url(HTTPS 必須)を渡すと、タスクが終了状態に達した後に Beatra から POST で通知が届きます。コールバックとポーリングは排他ではありません。タスクの状態は常に GET /v1/tasks/{task_id} が正です。
受け取る内容
POST {callback_url} が届きます。10 秒以内に 2xx を返すと配信成功とみなされます。
| Header | 説明 |
|---|---|
X-Event-Id | イベントの一意 ID。リトライ間で不変 —— これをキーに冪等な重複排除を行ってください |
X-Delivery-Id | 配信試行ごとに一意 |
X-Delivery-Attempt | 何回目の試行か(1 始まり) |
X-Task-Id | タスク ID |
X-Event-Type | task.succeeded / task.failed / task.canceled |
X-Timestamp | Unix 秒タイムスタンプ |
X-Signature-Key-Id | 選択した署名キー ID。署名付き配信の場合のみ存在 |
X-Signature | 署名。署名付き配信の場合のみ存在。下記参照 |
task は完全な Task envelope です。
署名付きまたは署名なしの配信を選ぶ
コールバック署名キーは API キーとは完全に独立しています。
Console → Developer → Webhooks または
/account/callback-signing-keys エンドポイントで作成、ローテーション、
無効化できます。平文のシークレットは作成またはローテーション時に一度だけ表示されます。
callback_urlだけを渡すと署名なしで配信され、2 つの署名ヘッダーは付きません。callback_urlと有効なcallback_signing_key_idを渡すと署名付きで配信されます。- 選択したキーを利用できない場合は配信に失敗し、署名なしへ暗黙に切り替わることはありません。
署名付き配信を検証する
注意:必ず生のリクエストボディのバイト列に対して計算してください。先にパースしてから再シリアライズすると検証に失敗します。
リトライポリシー
配信に失敗(非 2xx またはタイムアウト)すると、以下の間隔でリトライします。配信は合計 6 回(初回 1 + リトライ 5)です:
- リトライ中も
X-Event-Idは変わりません。これをキーに重複排除してください - 配信の失敗はタスク自体には影響しません——タスクはすでに終了状態にあり、いつでもポーリングでフォールバックできます
- 各配信の状態は、envelope の
callbackフィールド(pending / dispatching / delivered / retrying / failed、attempt_count、last_error)とコンソールのコールバックログで確認できます