> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 身份证件验证 API：支持 14,000+ 种证件

> Didit 提供 AI 驱动的身份证件验证，覆盖 220+ 个国家/地区、14,000+ 种证件类型和 54 种语言。每次核验 $0.15，每月赠送 $10 免费额度，推理时间低于 2 秒。

Didit 身份证件验证支持全球 220+ 个国家/地区及 14,000+ 种证件类型，能够读取并认证护照、身份证、驾照和居留许可等政府签发的身份凭证。它会对证件进行防篡改与欺诈检测，随后借助 AI OCR 提取其中的数据；在政策允许的国家/地区，用户还可通过数据库核验或数字身份钱包在无需提供证件的情况下完成验证（[三种验证方式](#三种验证方式)）。关于如何解读验证结果的学院课程在 3:47 处进入身份证件验证环节，阐释了为何真实性核验必须先于数据提取进行。[ID verification: authenticity before data — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?start=227\&rel=0\&playsinline=1)

身份证件验证集成提示词
        将提示词复制到剪贴板



      
      

\<pre>

\````# Goal
Integrate Didit ID Verification (OCR + document authenticity) into your app. Pick ONE of the two delivery modes below.

\# Mode A — Session-based (recommended for user-facing flows)
Use this when the user uploads / photographs their document in a hosted Didit flow. The feature is configured on a workflow and runs as part of /v3/session/.

1\. Create a workflow with the ID_VERIFICATION feature (Business Console or POST /v3/workflows/). Canonical feature enum: "OCR" (legacy) or "ID_VERIFICATION".
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Open the returned session.url for the user OR mount the Web/Mobile SDK.
4\. After completion fetch the decision — GET /v3/session/{sessionId}/decision/ (or subscribe to the session.status.updated webhook).

The decision response surfaces the result under the plural array `id_verifications[]` (one entry per document collected in the workflow).

\# Mode B — Standalone API (server-to-server)
Use when you already have one or two document images and want a one-shot OCR + checks call.

POST https://verification.didit.me/v3/id-verification/
multipart/form-data — x-api-key: YOUR_API_KEY

Required: front_image. Required for dual-sided docs (ID cards, driver licences): back_image.
Allowed extensions: tiff/jpg/jpeg/png/webp/pdf. Max 5 MB per file. Images must be uncropped — all 4 corners visible.

curl example:
\```bash
curl -X POST 'https://verification.didit.me/v3/id-verification/' \
-H 'x-api-key: YOUR_API_KEY' \
-F 'front_image=@./id_front.jpg' \
-F 'back_image=@./id_back.jpg' \
-F 'perform_document_liveness=true' \
-F 'minimum_age=18' \
-F 'expiration_date_not_detected_action=DECLINE' \
-F 'invalid_mrz_action=DECLINE' \
-F 'inconsistent_data_action=DECLINE' \
-F 'preferred_characters=latin' \
-F 'save_api_request=true' \
-F 'vendor_data=user-123'
\```
Returns: { request_id, id_verification: { status, full_name, document_type, document_number, date_of_birth, expiration_date, parsed_address, mrz, barcodes, portrait_image, front_document_image, back_document_image, warnings: [...] } }.

\# Status enum (per id_verifications[].status)
"Not Started" | "In Progress" | "Approved" | "In Review" | "Declined" | "Abandoned" | "Kyc Expired"

\# Warnings (LogWarningChoices.ID_VERIFICATION)
The warnings[] array on each id_verification carries risk codes including:
DOCUMENT_EXPIRED, INVALID_MRZ, INCONSISTENT_DATA, COULD_NOT_RECOGNIZE_DOCUMENT, DOCUMENT_LIVENESS_FAILED, MIN_AGE_NOT_REACHED, MAX_AGE_EXCEEDED, EXPIRATION_DATE_NOT_DETECTED, DUPLICATED_DOCUMENT, FRAUD_RISK_FROM_OCR, COUNTRY_NOT_ALLOWED, DOCUMENT_TYPE_NOT_ALLOWED.
Full catalogue: /core-technology/id-verification/warnings-id-verification.

\# Failure modes to handle
\- HTTP 403 "You don't have enough credits..." — insufficient balance.
\- HTTP 400 with multipart validation errors (missing back_image on dual-sided docs, file > 5 MB, unsupported extension).
\- status="Declined" with one or more terminal warnings (DOCUMENT_EXPIRED, DOCUMENT_LIVENESS_FAILED, COULD_NOT_RECOGNIZE_DOCUMENT, etc.) — surface the first warning's long_description to the user and stop the flow.
\- status="In Review" with a DOCUMENT_LIVENESS_NOT_COMPUTED warning — the requested forgery check produced no usable score (provider error or crash); treat the document as unchecked and route it to your manual-review queue.
\- status="In Review" — route to your manual-review queue; do not approve the user.

\# See also
\- Canonical schema: /reference/data-models#id-verification
\- Full integration playbook: /integration/integration-prompt
\- Risk catalogue: /core-technology/id-verification/warnings-id-verification
\- Per-feature report: /core-technology/id-verification/report-id-verification````

\</pre>



      
      

粘贴到

![从证件采集到 AI 驱动的分析与决策的 Didit 身份证件验证步骤](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/id-verification-steps.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=42c64546f3495000d7ea3b10c4b5fa50)**1. 智能采集**借助我们直观的 AI 驱动采集系统，轻松开启验证流程。用户可在实时引导下上传或拍摄其身份证件：* **自动检测**证件类型及签发国家/地区
* **实时视觉提示**辅助调整最佳位置、光照与对焦
* 采集条件达标时**自动拍摄**，无需反复手动重试
* 支持**护照**、**驾照**、**国民身份证**和**居留许可**> [!NOTE]
>
> *为何重要*：我们的智能采集降低了用户操作阻力，确保首次尝试即可提交高质量图像，从而提升转化率与信任度。**2. 高级数据处理**以卓越的精度提取并校验身份数据。**数据提取**：业界领先的技术处理所有关键字段：| 能力 | 详情 |
| - | - |
| **字段提取** | 姓名、出生日期、证件号码、签发/到期日期、国籍等 |
| **OCR** | 高精度文本识别 |
| **MRZ 解析** | 机器可读区解码 |
| **条形码解码** | 条形码数据自动提取 |**数据校验**：* 交叉比对视读区、MRZ 与条形码之间的数据以确保一致性
* 对签发机构签名的条形码进行密码学验证（前提是签发机构公开了核验所需的证书）。目前已覆盖法国国民身份证：其 ANTS 2D-Doc 条形码会对照连接至 ANTS 信任列表的签名者证书进行核验，因此即使条形码内容看起来一致，未经该签发机构签名的条形码也会被识别出来
* 格式与规则匹配，以检测异常
* 实时查询政府数据库（在允许的情况下），实现权威核验> [!NOTE]
>
> *为何重要*：全面的数据处理确保了准确性并消除了错误，让您对每次验证都充满信心。**3. 高级分析**我们的 AI 驱动系统执行全面检查，以确保文件的完整性与真实性：- **证件真实性**核验
- **篡改检测**与图像完整性分析
- **证件活体检测**，防范以下欺诈行为：
  * 电子证件的屏幕截图
  * 拍摄屏幕上显示的证件
  * 证件打印件
  * 篡改过头像的伪造证件
- **防伪特征校验**（全息图、水印等）
- 与经认证的数据库进行**模板比对****4. 顺畅的结果呈现与集成**通过灵活的投递方式即时获取可付诸行动的洞察。**实时结果**：- 通过直观的仪表板获取即时更新
- 即时 Webhook 通知，赋能自动化工作流
- RESTful API 助力与您现有系统无缝集成**全面报告**：* 包含验证结果与证据的详细 PDF 报告
* 用于合规与归档的审计日志
* 可根据您的运营需求定制选项> [!NOTE]
>
> *为何重要*：快速、易获取的结果让您的团队能够迅速采取行动，同时保持安全、可审计的流程。***## 三种验证方式拍摄证件只是三种[身份证件验证方法](https://docs.didit.me/zh/core-technology/id-verification/verification-methods.md)之一。针对不同国家/地区，您还可以允许用户在完全不提供实体证件的情况下证明其身份：- **[非证件核验](https://docs.didit.me/zh/core-technology/id-verification/non-doc-lookup.md)**：用户输入其国民身份证号码及少量个人信息，我们对照各个国家/地区指定的政府登记机构或其他权威数据源进行核验。如果该数据源返回头像照片，则验证流程中会包含自拍照、被动活体检测和人脸比对。
- **[数字身份钱包](https://docs.didit.me/zh/core-technology/id-verification/digital-id-wallets.md)**：用户使用政府或银行数字身份（如 MitID、BankID 或 itsme）登录，钱包随后共享一组经签名的属性信息。本页面的所有内容均用于说明证件采集流程，该流程保持不变：未配置特定验证方法的工作流将默认仅采用证件采集。***## 证件要求为确保最佳的验证成功率，证件必须符合以下标准：#### 通用要求- 由政府签发，且在配置的有效期内有效
- 物理完好（无会遮挡细节的破损、划痕或污渍）
- 所有关键信息（姓名、出生日期、MRZ 等）清晰可辨
- 所有提交的证件之间数据保持一致#### 图像要求- 原始的实时拍摄照片（非屏幕截图、扫描件或电子副本）
- 支持格式：JPG、JPEG、PNG、PDF
- 最大文件大小：5MB
- 全彩图像，且证件四角清晰可见
- 无反光、阴影、数字编辑或篡改痕迹
- 须为实体证件（数字身份证仅在官方认可的特定地区受支持）## 按国家和证件类型的附加设置直接在控制台中按国家和证件类型配置精细规则。通过这些控制项，您可以根据合规需求定制接受标准和转写偏好。![用于按国家设置到期与接受规则的 Didit 身份证件验证附加设置面板](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/id-additional-settings.jpeg?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=4238b10a404795a61926fbdf1a3adc20)* **Expiration mode**：选择如何处理到期日期已过的证件。

  * **Reject expired**：如果证件的到期日期早于今天，将其标记为已过期并拒绝。
  * **Allow expired**：不对到期日期已过的证件进行标记或拦截。

  此设置还用于控制审批后的监控，该功能默认开启：在 **Reject expired** 模式下，当证件的到期日期过后，已通过的会话会变为 `"Kyc Expired"`，并触发 `status.updated`；在 **Allow expired** 模式下，会话保持已通过状态且绝不会被监控。参见[证件监控](https://docs.didit.me/zh/core-technology/id-verification/document-monitoring-id-verification.md)。
  在工作流 API 中，按国家设置的证件设置 `expiration_check_mode` 支持 `strict`（**Reject expired**）、`allow_expired`（**Allow expired**）和 `local_regulation`。
  `local_regulation` 对于 Didit 制定了相应规则的国家，遵循该国自身规则，并在其他所有国家/地区拒绝已过期的证件。
  传入任何其他值都将被拒绝。
* **Preferred character format**：选择如何规范化提取的姓名和字段。
  * **Prefer Latin characters (A–Z)**：示例："Mohammed"
  * **Prefer original script (non‑Latin)**：示例："محمد"
* **Regional support & subtypes**：按地区启用证件，并在某种证件类型包含多个变体时指定可接受的子类型。
  * 示例：对于美国驾驶执照，选择您接受的具体子类型（例如 Arizona Commercial Driver License、Indiana Operator License (REAL ID)、New York Enhanced Driver License 等）。
  * 使用 "Accepted subtypes" 控制项可快速包含/排除多个变体（例如 "128 selected"）。> 提示：这些设置按国家和证件类型生效，因此您可以在某些市场实施严格规则，而在其他市场更为宽松。## 按国家设置的年龄限制在身份证件验证期间按国家强制执行最小和最大年龄要求。系统会从提交的证件中提取用户的出生日期，并根据证件签发国家/地区配置的年龄限制进行核验。### 配置年龄限制可直接在控制台中通过按国家设置的表格进行配置：| 列 | 描述 |
| - | - |
| **国家** | 证件的签发国家/地区（ISO 3166-1 alpha-3）。仅显示您证件允许列表中已启用的国家/地区。 |
| **最小年龄** | 所需的最小年龄。小于此年龄的用户将触发配置的操作（拒绝或审核）。 |
| **最大年龄** | 允许的最大年龄。大于此年龄的用户将触发配置的操作。留空表示没有上限。 |
| **州/地区覆盖** | 对于不同州或地区的年龄规定存在差异的国家（例如美国、墨西哥），打开设置图标即可配置覆盖国家级默认设置的各州最小和最大年龄。 |### 法定成年年龄默认值控制台包含一个 **"Apply age of majority"** 按钮，可自动使用已知的法定成年年龄（大多数国家为 18 岁，某些国家例外，如韩国为 19 岁、阿联酋为 21 岁、新西兰为 20 岁等）填充各国的最小年龄。随后您可以根据需要调整单个国家或添加州级覆盖。### 州/地区覆盖某些国家根据州或地区设有不同的法定年龄门槛。扫描证件时，OCR 系统会从证件中提取地区（例如 "Mississippi"、"Alabama"、"Jalisco"）。如果针对该地区配置了州/地区覆盖，其优先级将高于国家级年龄设置。例如，如果美国的最小年龄为 18 岁，但密西西比州设置了 21 岁的州覆盖，则出示密西西比州驾驶执照的用户将按 21 岁的最小年龄进行核验。### 可配置操作当用户的年龄超出其证件所在国家（或州）的配置范围时，您可以选择相应的操作：* **拒绝**：会话将自动被拒绝。
* **审核**：会话将被标记以进行人工审核。> [!NOTE]
>
> 按国家设置的年龄限制同样适用于**自适应年龄验证**工作流。当临界情况触发回退到身份证件验证时，年龄核验将使用这些按国家设置的配置，根据证件的签发国家/地区及其所属地区做出最终决策。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.