Skip to main content
Lymo は Svix 経由で Webhook を配信します。各配信には、Svix SDK で検証可能な標準署名ヘッダーが付きます。

登録前に確認: ホスト名の許可リスト

Webhook の配信先は、組織単位のホスト名許可リスト でゲートされています。Svix 側の URL バリデーションに加えた多層防御で、API キーが漏洩した場合に Svix 経由で SSRF の踏み台にされることを防ぐ仕組みです。
新規組織の既定の許可リストは です。つまり、許可リストに配信先ホスト名を追加するまで、POST /v1/webhooks はすべて 422 invalid_webhook_url で失敗します。統合作業を始める前に、Lymo の担当者(CSM・管理者)に organization_settings.webhook_allowed_hostnames への追加を依頼してください。
許可リストのルール:
  • スキームは https:// のみ。
  • 完全一致: webhook.sitewebhook.site のみを許可します。
  • サブドメインのワイルドカード: *.example.coma.example.comfoo.bar.example.com を許可しますが、apex の example.com 自体は許可しません
  • 大文字小文字は区別せず、punycode 形式で比較されます。

エンドポイントを登録する

レスポンスに含まれる secretwhsec_ で始まる)は、作成時に必ず保存してください。署名検証に必須であり、返却は作成時の 1 回のみです。現時点ではシークレットのローテーション用エンドポイントはありません。紛失・漏洩した場合は、エンドポイントを削除して作り直してください。 events を省略(または [] を指定)すると、すべてのイベント種別を購読します。

イベント種別

deal.scoring.* は、SDK の型を安定させる目的でスキーマには定義されていますが、配信側の実装はまだ入っていないため、現時点で購読しても通知は届きません。将来のリリースで有効化予定です。 各イベントのペイロードスキーマは APIリファレンス タブに記載があります。

署名検証

すべての配信には以下のヘッダーが付きます。
  • svix-id — 配信ごとに一意な ID。再送でも変わりません。
  • svix-timestamp — 送信時の Unix 秒。
  • svix-signature — HMAC 署名。シークレットのローテーション中はスペース区切りで複数の署名が送られ、いずれか一致すれば検証成功となります(切り替え時の検証窓口確保のため)。
各言語の Svix SDK で検証してください。
検証に失敗したリクエストは拒否してください。verify には 生のリクエストボディ を渡す必要があります。一度パースして再シリアライズした JSON では検証できません。

配信セマンティクス

  • 受信の応答は任意の 2xx ステータスで構いません。非 2xx やネットワーク失敗は指数バックオフで再試行されます。
  • svix-id は再送間で安定するため、受信済み ID を保存して重複処理をスキップすれば、ハンドラを冪等にできます。
  • 再試行スケジュール、タイムアウト、保持期間は Svix 側で管理されます。詳細は Svix の配信ドキュメント を参照してください。

一覧取得と削除

エンドポイント ID は Svix が発行し、ep_ で始まります。削除は即時反映されます。配信中のイベントは完了しますが、以降の新規イベントは送られません。