跳转到主要内容
Didit API 在请求失败时会返回 HTTP 状态码,几乎所有情况下还会返回 JSON 响应体。 本页列出每个状态码的含义、响应体的结构、可以据此分支处理的 code 值,以及哪些失败可以安全重试。 请优先依据状态码判断;存在 code 时,再依据它判断,因为消息文本可能会变化。

状态码

错误响应体

错误响应体的结构并不统一,因此请进行防御式解析。具体结构取决于 endpoint 系列: 500 可能完全没有 JSON 响应体,因此请处理无法解析的响应体。

API 密钥错误

应用被删除后的几分钟内,API 会返回 application_deleted;之后则会像对待任何错误密钥一样拒绝该密钥。 请不要重试:应用及其密钥均已删除。 有关密钥及其限制的工作原理,请参阅 API 身份验证 和 API 密钥。

额度不足

各 API 系列报告余额不足的方式各不相同: 签订合同的客户在其所属组织的付费服务被暂停期间,创建会话会返回 403,并附带 "code": "contract_billing_suspended"。 沙盒应用 从不计费,因此不进行这些检查。

错误代码

这些 code 值是稳定的,因此您可以据此进行分支判断。多数情况下,它与 detail 并列返回;在数字身份钱包验证中,错误代码是 error 的值。

访问与计费

请求与幂等性

银行、电话与风险检查

企业验证(KYB)

数字身份钱包

报告与案件

电子签名

创建会话时,下列证件问题会以出错字段的值返回,状态码为 400,例如 {"sign": "signature_document_changed"}:

Webhook

重试与幂等性

有些失败可以安全地重复,有些则不行:
  • 429:等待 Retry-After 请求头,然后重试。
  • 502 和 503:当端点的参考文档说明未产生计费时(电话、邮箱、银行和风险检查均是如此),使用退避策略重试。
  • POST /v3/database-validation/ 返回 502:先逐条读取每个 validation_errors 条目,因为仅此状态码并不代表临时故障。
  • 删除操作返回 503:重复发送相同请求,直到返回 200。
  • 其他 4xx:先修正请求,因为同一请求会以相同方式再次失败。
POST /v3/aml/ 和数字身份钱包验证接受长度不超过 255 个字符的 Idempotency-Key 请求头。使用相同密钥和相同请求体重复请求时,会重放已存储的响应,因此操作和扣费只执行一次。使用相同密钥但请求体不同,会返回 409;第一个请求仍在处理时,钱包端点会返回带有 Retry-After 的 409。 POST /v3/session/ 没有幂等性密钥,因此如果创建会话时超时,请先按 vendor_data 列出您的会话,再创建新的会话。

相关内容

  • 速率限制:限制、请求头和 429 响应体。
  • API 认证:说明如何发送您的密钥。
  • 沙盒测试:在不使用真实数据或不产生计费的情况下复现结果。
  • Webhook:投递、重试和顺序。
最后修改于 2026年11月7日