顧客向けWebhookの設定
対応イベントを受け取るHTTPSエンドポイントを登録し、署名シークレットを保護して、配信履歴から失敗の原因を調べます。
- 受信先を準備するJSONを受け付ける公開HTTPSエンドポイントを用意します。
- イベントを購読するエンドポイント名、URL、イベント種別を入力します。
- 署名を保護する一度だけ表示されるシークレットを保管し、受信リクエストを検証します。
- 配信履歴を確認する状態と応答情報を使って問題を解決します。
- エンドポイントを維持するシークレットをローテーションし、不要になった配信先を失効させます。
顧客向け対応イベント
顧客向けフォームで選べるイベントは、ジョブ完了、請求書発行、利用枠のしきい値到達です。受信側が処理できるイベントだけを選んでください。エンドポイントは個人または選択した組織のコンテキストに属します。組織ではオーナーと管理者が管理でき、メンバーは閲覧のみ可能です。Webhookは通知を送る仕組みであり、注文や請求書を変更するものではありません。
- Webhookを開く前に、対象の組織コンテキストを選びます。
- 受信側が処理できるイベントを1つ以上選びます。
- 環境ごとに別のエンドポイントを使用します。
公開先の登録
2~120文字の名前、有効なURL、一覧にある1つ以上のイベントを指定してエンドポイントを作成します。HTTPSと公開ホスト名が必須です。ローカル、内部、プライベートIPの接続先は拒否されるため、ローカル開発用URLは使えません。受信側がJSONを受け取り、成功を示すHTTP応答を返せる状態になってから送信します。
- 安定した公開HTTPSアドレスに受信側を配置します。
- URL、分かりやすい名前、イベントを入力します。
- 一度送信し、検証エラーがあれば修正します。
署名済みメッセージの検証
作成時に署名シークレットが一度だけ表示されます。リクエストにはイベント、配信、タイムスタンプ、HMAC署名の各ヘッダーと、イベントID、種別、作成時刻、データを含むJSONが付与されます。変更されていない生の本文とタイムスタンプを使って署名を検証し、妥当な時間範囲を適用し、重複IDを冪等に処理してください。シークレットをログやサポートへの連絡に含めてはいけません。
- 受信側の保護された設定にシークレットを保管します。
- 変更していないリクエスト本文に対して署名を検証します。
- イベントIDを記録して、業務処理の重複を防ぎます。
配信履歴の確認
ページには、すべてのエンドポイントを通じた最新50件の配信が表示されます。成功を示すHTTP応答は成功として記録されます。サーバーエラーやレート制限では再試行される場合がありますが、その他の失敗応答はすぐに失敗となる場合があり、再試行回数には上限があります。履歴には応答ステータスと、長さを制限した応答本文またはエラーが含まれます。イベントが発生していないか、エンドポイントが購読していなければ、履歴に表示されないことがあります。
- イベント、試行回数、状態、直近のエラーを確認します。
- 受信側の稼働状態、応答、レート制限の問題を修正します。
- 後続の配信が成功状態になったことを確認します。
署名シークレットのローテーション
ローテーションするとエンドポイントのシークレットが置き換わり、そのエンドポイントが再有効化されます。古い値だけを使う受信側は新しいリクエストを拒否します。受信側の設定更新を準備してから対象のエンドポイント行でローテーションし、新しい値を取得して速やかに反映してください。侵害された場合は直ちにローテーションし、不審な動きがないか配信履歴を確認します。
- 受信側の稼働環境を特定し、安全な反映方法を準備します。
- エンドポイントをローテーションし、一度だけ表示されるシークレットを保管します。
- 後続の想定どおりの配信が成功することを確認します。
エンドポイントの置き換えと失効
顧客向け操作では作成、ローテーション、失効が可能ですが、URLやイベントの選択を編集する操作はありません。どちらかを変更する場合は、新しいエンドポイントを作成して正しいイベントを受け取れることを確認してから、以前のエンドポイントを失効させます。失効すると以後の配信が停止し、状態は無効になります。使わなくなった配信先やシークレットが漏えいした配信先に対して行い、操作後に一覧を確認してください。
- 修正したURLまたはイベントを設定して新しいエンドポイントを作成します。
- 新しいエンドポイントへの配信が成功することを確認します。
- 古いエンドポイントを失効させ、無効になったことを確認します。
よくある質問
どのイベントを選べますか?
ジョブ完了、請求書発行、利用枠のしきい値到達です。
HTTPのURLを使えますか?
いいえ。公開HTTPS URLが必要です。
シークレットをもう一度表示できますか?
いいえ。新しいシークレットを取得するにはエンドポイントをローテーションします。
配信が保留になるのはなぜですか?
一時的なサーバーエラーやレート制限により再試行されている可能性があります。
配信に失敗した場合は?
応答と再試行履歴を確認し、原因を調べます。
エンドポイントを編集できますか?
いいえ。置き換え先の動作を確認してから、古いエンドポイントを失効させてください。