跳转到主要内容
Didit 的 KYB Webhook 会在企业验证(KYB)会话状态变化时,或审核员或公司登记更改其数据时,通知你的后端。 企业实体有各自的事件。 请通过 Webhook 目标 API 或 Business Console 订阅你关心的事件。

事件目录

会话事件在用户会话和企业会话之间共用。 payload 中的 session_kind 字段会告诉你该事件属于哪一种会话。 实体级事件与会话级事件是分开的。

会话级事件

申请人上传证件、提交关键人员或 AML 重新筛查完成时,不会发送 data.updated。 如需跟踪这些进度,请使用 status.updated,或获取会话决策。

企业实体事件

你可以在 Webhook 目标上订阅以上任意组合。 完整的企业/用户实体事件参考,请见实体 Webhook。

Payload 结构

会话 Webhook 使用扁平的 payload,没有 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。 请重新获取决策,以查看发生了哪些变化。 该 payload 没有 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、超时或连接失败时,最多重试 2 次,分别在约 1 分钟和约 4 分钟后进行,之后该投递会被丢弃。
  • 其他 4xx 和 3xx 响应不会重试。
  • 每次重试都保持相同的 event_id,因此请以它进行去重。
  • 你可以从目标的投递日志中重新发送某次投递。完整策略见 Webhook 参考。

订阅

在 Webhook 目标上订阅你关心的事件:
如需在你的系统中筛选企业会话,请检查 status.updated 和 data.updated 事件中的 session_kind === "business"。

后续步骤

Webhook 参考

目标、签名、重试和常见模式。

状态

会话与功能状态参考。

响应结构

解析 KYB 决策 payload。
最后修改于 2026年11月7日