跳转到主要内容

概述

NFC 验证报告记录了 Didit 从电子护照、电子身份证或其他 ICAO 9303 电子证件的 NFC 芯片中读取并核验的内容。它包括芯片的个人资料、密码学完整性检查(SOD 和数据组哈希),以及签发国家/地区使用的证件签名者证书(DSC)摘要。 该报告在用户完成工作流中的 NFC 步骤后生成。Didit 会在用户设备上读取芯片的数据组(Data Group),对照签发国家/地区的 CSCA 证书验证证件安全对象(SOD)签名,对照 SOD 签名的值检查每个数据组哈希,并将芯片的 MRZ 与从证件可见表面 OCR 识别出的 MRZ 进行交叉比对。 日本个人番号卡(My Number Card)则通过 JPKI 读取(chip_protocol: "jpki"):其报告在 jpki 下包含证书、签名、吊销和持有人数据检查,而 ICAO 字段保持为 null。请参阅 日本个人番号卡(JPKI)。 每份报告都带有独立的 status(独立于整体会话状态),反映 NFC 这一单一步骤的处理结果:
  • Approved(已通过):芯片已成功读取,且触发的警告中没有任何一项被配置为将该步骤路由至审核或拒绝。
  • In Review(审核中):至少触发了一项其配置操作为 Review(审核)的警告(例如,当未验证芯片操作设置为 Review 时触发的 NFC_CHIP_NOT_VERIFIED 或 NFC_TRUST_ANCHOR_MISSING,或者采用默认操作的 JPKI_REVOCATION_UNCHECKED)。
  • Declined(已拒绝):至少触发了一项其配置操作为 Decline(拒绝)的警告(例如,当数据不一致操作设置为 Decline 时触发的 NFC_AND_OCR_DATA_NOT_SAME)。
  • Not Finished:用户未完成 NFC 步骤;芯片读取已放弃或设备不支持 NFC。
  • Resub Requested:审核员要求用户重新提交;该报告将被新的尝试所取代。

在 API 响应中的位置

NFC 报告包含在 nfc_verifications[] 数组中,且始终是一个 JSON 数组,绝不是单一的 nfc 对象。当工作流多次运行 NFC(例如升级流程)时,会出现多个条目;每个条目都带有自己的 node_id。
  • 会话决策 API:在 GET /v3/session/{sessionId}/decision/ 顶层显示为 nfc_verifications[]。请参阅获取会话决策。
  • Webhooks:一旦 NFC 步骤生成数据,status.updated payload 就会包含相同的 nfc_verifications[] 数组。请参阅 Webhooks。
  • 独立 NFC:有关直接提交芯片数据,请参阅 NFC 概述。
如果您的工作流包含被跳过或绕过的 NFC 步骤,决策 payload 还会带有一个顶层的 nfc_skip_reason 字段,明确说明跳过的原因:证件无芯片、签发国家/地区的证书不可用、设备没有 NFC 读取器、验证在没有原生 SDK 的情况下运行(浏览器无法访问 NFC)、无法从 MRZ 派生芯片访问密钥、个人番号卡无法通过 JPKI 读取,或者用户选择跳过。对于超出该分类的情况,它将保持为 null,最常见的是用户在尝试过程中放弃(报告状态为 Not Finished)或会话中 NFC 仍处于挂起状态。有关确切取值,请参阅跳过原因。
旧版文档曾提及单一的 nfc 字段。该结构在 v3 决策 endpoint 上并不存在;它仅出现在明确固定为 V2 Webhook 的目标中,并且在此类目标中还包含 chip_protocol 和 jpki。请始终读取 response.nfc_verifications[0] 并遍历该数组。

模式

权威的逐字段模式请参阅数据模型参考页面。以下字段与该权威模式保持一致。

状态值

两项证书警告(DSC_CERTIFICATE_REVOKED、DSC_CERTIFICATE_EXPIRED)仅供参考:它们会出现在 warnings[] 中,但本身绝不会改变 NFC 的 status。完整行为矩阵请参阅 NFC 警告。

示例

Approved — 芯片已读取且密码学验证有效

Declined — OCR 与芯片不匹配

日本个人番号卡 (JPKI)

日本个人番号卡(My Number Card)在原生 SDK 中通过 JPKI 进行读取:用户输入卡片 PIN 码,卡片对一次性质询进行签名(参见工作原理)。其报告的 chip_protocol: "jpki",并在 jpki 下包含证据。portrait_image、signature_image、chip_data、authenticity 和 certificate_summary 均为 null,因为该卡片不包含 ICAO 数据。
通过 JPKI 读取个人番号卡的功能尚未在生产环境中启用。在此之前,个人番号卡将跳过 NFC 步骤,跳过原因为 JPKI_UNAVAILABLE。

JPKI 字段

报告绝不包含证书本身、证书序列号、签名或卡片的 12 位个人番号(My Number),NFC 步骤绝不会读取该号码。

示例: 个人番号卡读取

如果在读取时吊销核查不可用,在默认设置下,同一报告将显示 revocation_status: "unchecked",附带 JPKI_REVOCATION_UNCHECKED 警告,且 status: "In Review"。参见 NFC 警告。

安全说明

NFC 芯片数据由签发机构签名,因此带有 sod_integrity: true 和 dg_integrity: true 的已通过报告是 Didit 所能提供的最高强度的身份凭证。请将签名的图像 URL(portrait_image、signature_image)视为短期有效:请及时下载并且不要公开缓存它们 — 当您需要获取新链接时,请重新请求决策。

相关内容

最后修改于 2026年11月7日