メインコンテンツへスキップ
DiditのKYB Webhookは、法人確認セッションのステータスが変わったとき、またはレビュアーや法人登記によってデータが変更されたときに、バックエンドへ通知します。 法人には専用のイベントがあります。 必要なイベントは、Webhookの送信先APIまたはBusiness Consoleから購読してください。

イベント一覧

セッションイベントは、ユーザーセッションと企業セッションで共通です。 ペイロードのsession_kindフィールドで、イベントがどちらの種類のセッションに関するものかがわかります。 エンティティレベルのイベントは、セッションレベルのイベントとは別に扱われます。

セッションレベルのイベント

申請者が書類をアップロードしたときや主要人物を提出したとき、またはAMLの再スキャンが完了したときには、data.updatedは送信されません。 これらの進捗を追跡するには、status.updatedを使用するか、セッションの判定を取得してください。

企業エンティティのイベント

Webhookの送信先では、任意の組み合わせで購読できます。 企業およびユーザーエンティティのイベントの完全なリファレンスは、エンティティWebhookを参照してください。

ペイロードの形式

セッションWebhookはフラットなペイロードを使用し、dataラッパーはありません。 エンベロープ、署名ヘッダー、すべての共通フィールドはWebhookリファレンスに記載されています。 KYBセッションでは、次のフィールドが追加されます。

KYBセッションのstatus.updated

decisionブロックには、registry_checks[]、key_people_checks[]、document_verifications[]、aml_screenings[]、その他のKYB用配列が含まれます。

KYBセッションのdata.updated

data.updatedはstatus.updatedと同じフラットなエンベロープに加えて、発生理由を示すtriggerを含みます。 セッションのステータスがApproved、Declined、In Review、Abandonedのいずれかの場合は、現在のdecisionも含まれます。 何が変わったかを確認するには、判定を再取得してください。 ペイロードにchanged_fieldsリストは含まれません。

business.status.updatedとbusiness.data.updated

エンティティイベントもフラットな形式です。 vendor_business_id、vendor_data、status (ACTIVE、FLAGGED、BLOCKEDのいずれか)、created_atを含みます。 business.status.updatedにはprevious_statusが追加されます。 business.data.updatedにはchanged_fieldsと、{ field: { previous, current } }形式のchangesマップが追加されます。

署名検証

すべてのWebhookは、送信先の共有シークレットを使ってHMAC-SHA256で署名されます。 生のリクエストボディをX-Signature-V2ヘッダー (推奨) で検証し、X-Timestampが300秒より古い配信は拒否してください。 すべての署名ヘッダー、署名シークレットのローテーション時の重複期間、コードサンプルはWebhookリファレンスに記載されています。

再試行ポリシー

  • 5xxまたは404のレスポンス、タイムアウト、接続失敗の場合は、約1分後と約4分後に最大2回まで再試行され、その後配信は破棄されます。
  • その他の4xxおよび3xxのレスポンスは再試行されません。
  • 各再試行では同じevent_idが維持されるため、これを使って重複を排除してください。
  • 送信先の配信ログから配信を再送できます。ポリシーの詳細はWebhookリファレンスを参照してください。

購読

必要なイベントをWebhookの送信先で購読します。
企業セッションは、status.updatedおよびdata.updatedイベント内でsession_kind === "business"を確認することで、貴社側でフィルターしてください。

次のステップ

Webhookリファレンス

Webhookの送信先、署名、再試行、一般的なパターン。

ステータス

セッションと機能のステータスのリファレンス。

レスポンススキーマ

KYBの判定ペイロードの読み解き方。
最終更新日 2026年11月1日