> ## 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.

# 数据库核验结果代码参考

> Didit 数据库核验返回的所有结果代码详解：匹配、不匹配、已故、未成年人、证件未找到、生物识别不匹配等。$0.05/次起。

Didit 的[数据库核验](https://docs.didit.me/zh/core-technology/database-validation/overview.md) API 可查询各国家/地区的官方民事登记处：RENAPER（阿根廷，每次核验 \$0.20，含生物识别的人脸比对）、Receita Federal（巴西，\$0.20）、Tribunal Electoral SIB（巴拿马，\$0.75 生物识别）、Junta Central Electoral（多米尼加共和国，\$0.05）以及其他 14 个登记处，按成功的查询计费，无月度最低消费。

当您运行数据库核验时，会收到两层结果：

1. **标准结果代码**：在所有受支持的国家/地区以相同方式运作，因此您可以编写一套通用的处理逻辑来覆盖所有国家/地区。
2. 可选的**国家/地区特定详细代码**：确切告知政府登记处返回的具体情况，适用于客户支持、数据分析以及决定是否提示用户重试。

本页面列出了您可能看到的所有返回值，并说明了针对各项返回值的建议处理方式。

## 标准结果代码

这些代码在所有国家/地区均完全一致。请基于这些代码构建您的审核、拒绝和重试逻辑，而非基于各国家/地区的详细代码。

| 结果代码 | 含义 | 可重试？ | 推荐处理方式 |
| :- | :- | :-: | :- |
| `MATCH` | 登记处确认了身份，且所有核对的字段均匹配。 | — | 通过。 |
| `PARTIAL_MATCH` | 登记处找到了记录，但服务比对的一个或多个字段未完全匹配（通常是姓名或出生日期）。决定该结果的具体字段因服务而异，请参阅[匹配方式](https://docs.didit.me/zh/core-technology/database-validation/database-validation-matching-methods.md)。 | — | 转入人工审核，或配置[部分匹配操作](https://docs.didit.me/zh/core-technology/database-validation/database-validation-warnings.md)以自动拒绝。 |
| `NO_MATCH` | 登记处未找到与提交数据匹配的记录。 | 否 | 拒绝，或根据您的策略转入人工审核。 |
| `DOCUMENT_SUPERSEDED` | 登记处确认了该人员的身份，但提交的**证件版本**与归档记录不一致：登记处已签发更新的版本，因此当前持有的凭证已过时。阿根廷 DNI 的 *ejemplar* 字母即为典型案例。该状态与 `NO_MATCH`（人员不匹配）和 `DOCUMENT_NOT_FOUND`（完全无记录）不同：仅实体证件凭证已过时。 | 否 | 转入人工审核并要求提供当前版本的证件。它遵循您的**未匹配操作**并触发 [`DATABASE_VALIDATION_DOCUMENT_SUPERSEDED`](https://docs.didit.me/zh/core-technology/database-validation/database-validation-warnings)。 |
| `DOCUMENT_NOT_FOUND` | 证件号码在语法格式上有效，但在政府登记处中不存在。 | 否 | 拒绝。 |
| `INVALID_DOCUMENT_FORMAT` | 提交的证件号码格式错误（长度不符、包含非数字字符、校验和错误）。 | 否 | 要求用户重新输入其证件号码。 |
| `INVALID_INPUT` | 必填的输入字段（自拍照、性别、出生日期等）缺失或格式错误。 | 否 | 要求用户重新提交缺失的字段。提供数据后，会话将自动重新处理，请参阅 [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/zh/core-technology/database-validation/database-validation-warnings)。 |
| `MINOR_BLOCKED` | 因主体为未成年人，登记处未提供该记录。适用于制定了未成年人数据保护法律的司法管辖区（巴西 LGPD、阿根廷）。 | 否 | 拒绝。请遵守当地法律法规，不要重试。 |
| `DECEASED` | 登记处报告该主体已故。 | 否 | 拒绝。 |
| `BIOMETRIC_NO_MATCH` | 对于生物识别核验（阿根廷、巴拿马），人脸比对分数低于接受阈值。 | 否 | 拒绝，或转入人工审核。 |
| `BIOMETRIC_IMAGE_UNUSABLE` | 自拍照无法处理：图像为空、没有人脸、质量过低，或登记处无法读取。 | 是 | 提示用户重新拍摄自拍照。 |
| `INCONCLUSIVE` | 登记处无法确定该人员是否匹配，结果确实不明确（其可能存在于登记处，也可能不存在）。与 `NO_MATCH`（明确不存在）和 `BIOMETRIC_IMAGE_UNUSABLE`（图像技术问题）不同：两方面均未得到证实，因此 `match_type` 为 `null`。 | 可能 | 转入人工审核。使用更清晰的自拍照或补充数据重试可能会解决该问题。 |
| `REGISTRY_UNAVAILABLE` | 政府登记处暂时无法访问（超时、连接错误、上游 5xx）。 | 是 | 短暂延迟后重试。Didit 已自动重试临时性错误，因此在最终报告中看到此状态意味着重试次数已耗尽。当登记处持续发生故障时，一旦中断持续，您的组织将收到电子邮件通知；访问恢复时也会再次收到通知，请参阅[可用性通知](https://docs.didit.me/zh/core-technology/database-validation/overview.md#可用性通知)。 |
| `REGISTRY_ERROR` | 登记处返回了不属于上述任何类别的意外故障。 | 可能 | 附带详细代码联系支持团队并升级处理。 |

> [!NOTE]
>
> `outcome_code` 位于核验报告中 `validations` 数组的各个条目内。有关其在响应中的具体位置，请参阅[数据库核验报告](https://docs.didit.me/zh/core-technology/database-validation/database-validation-report.md)。

> [!NOTE]
>
> `REGISTRY_UNAVAILABLE` 和 `REGISTRY_ERROR` 表示源登记处从未对查询作出响应，因此这两种结果**不计费** - 请参阅[定价](https://docs.didit.me/zh/core-technology/database-validation/overview.md)。其他所有结果代码均属于来自登记处的真实付费响应，即使是未确认任何信息的结果（`INCONCLUSIVE`、`BIOMETRIC_IMAGE_UNUSABLE`），甚至是拒绝了您发送的内容的结果（`INVALID_DOCUMENT_FORMAT`、`INVALID_INPUT`，作为结果代码，这些意味着在查询发出后由登记处本身拒绝了该数据）。
>
> 从未到达登记处的输入根本不会生成结果代码：当值不符合国家/地区格式规则时，`POST /v3/database-validation/` 会返回 `400`；而缺少字段或字段格式错误的工作流服务会被跳过，并触发 [`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/zh/core-technology/database-validation/database-validation-warnings)。这两种情况均不计费。完整说明请参阅[数据库核验定价页面](https://docs.didit.me/zh/getting-started/database-validation-pricing.md)。

## 特定国家/地区的详细代码

详细代码会作为 `outcome_detail` 与 `outcome_code` 一同返回。除标准结果之外，只有下文列出的国家和地区会生成详细代码 — 所有其他受支持的国家和地区仅返回标准代码。

### 阿根廷 (RENAPER)

阿根廷使用针对 RENAPER 国家身份登记处的生物识别 1×1 核验，结合了 DNI、自拍照以及申报的性别。

| 详细代码 | 标准结果 | 含义 |
| :- | :- | :- |
| `300` | `INVALID_DOCUMENT_FORMAT` | DNI 字段必须为 7–8 位数字。 |
| `301` | `DOCUMENT_NOT_FOUND` | 提交的 DNI 与有效记录不匹配。 |
| `303` | `INVALID_INPUT` | 自拍照字段为空。 |
| `304` | `INVALID_INPUT` | 性别字段为空，或不是 `M`、`F`、`X` 之一。 |
| `305` | `NO_MATCH` | 未找到该 DNI 与性别的组合。 |
| `306` | `REGISTRY_UNAVAILABLE` | 目前无法执行该查询。 |
| `307` | `REGISTRY_UNAVAILABLE` | 连接公共身份验证系统时出错。 |
| `311` | `REGISTRY_ERROR` | 该集成无权访问此产品。 |
| `313` | `MINOR_BLOCKED` | 记录属于未成年人。 |
| `400` | `REGISTRY_UNAVAILABLE` | 连接错误。 |
| `401` | `NO_MATCH` | 未找到所提供数据的对应结果。 |
| `405` | `BIOMETRIC_IMAGE_UNUSABLE` | 图像冲突，无法处理。 |
| `406` | `BIOMETRIC_IMAGE_UNUSABLE` | 图像处理错误。 |
| `NO.HIT` | `BIOMETRIC_NO_MATCH` | 人脸比对匹配分数低于接受阈值（\< 50）。 |
| `INTERNAL_ERROR` | `REGISTRY_UNAVAILABLE` | 超时。 |

### 巴西 (Receita Federal - Consulta CPF)

巴西针对 Receita Federal 的官方 CPF 服务核验 CPF，并根据 LGPD（通用数据保护法）和《儿童与青少年数字条例》对未成年人进行明确处理。

| 详细代码 | 标准结果 | 含义 |
| :- | :- | :- |
| `200` | `MATCH` | 已找到 CPF 并成功返回数据。 |
| `206` | `MATCH` | 已找到 CPF，但未返回某些非必要字段。 |
| `400` | `INVALID_DOCUMENT_FORMAT` | CPF 号码无效。 |
| `404` | `DOCUMENT_NOT_FOUND` | 不存在与所提交号码对应的 CPF。 |
| `422` | `MINOR_BLOCKED` | 根据 LGPD（第 13.709/2018 号法律），未满 18 周岁未成年人的数据不予提供。响应包含 `minor_under_18: true`。 |
| `451` | `MINOR_BLOCKED` | 根据 LGPD 和《儿童与青少年数字条例》（第 15.211/2025 号法律），未满 16 周岁未成年人的数据不予提供。响应包含 `minor_under_18: true` 和 `minor_under_16: true`。 |
| `500` | `REGISTRY_UNAVAILABLE` | 上游服务器错误。 |
| `504` | `REGISTRY_UNAVAILABLE` | 网关超时 — 请求未到达 Consulta CPF API。 |

> [!NOTE]
>
> 对于巴西的 `MINOR_BLOCKED` 结果，`source_data` 仍会返回 `lgpd_minor`、`minor_under_18` 和 `minor_under_16` 标记，以便您直接应用适合年龄的工作流，而无需重试。

### 巴拿马 (SIB - Tribunal Electoral)

巴拿马针对选举法院（Tribunal Electoral）运营的 SIB（Servicio de Identificación Biométrica）登记处进行生物识别核验。如果发生 SIB 技术错误，会话将自动回退到 1×1 查询。

| 详细代码 | 标准结果 | 含义 |
| :- | :- | :- |
| `601` | `REGISTRY_UNAVAILABLE` | 数据库中不存在该操作员。 |
| `602` | `MINOR_BLOCKED` | 公民未满 12 周岁。 |
| `603` | `DECEASED` | 公民已故。 |
| `604` | `NO_MATCH` | 公民的登记记录无效。 |
| `605` | `NO_MATCH` | 无法识别该公民。 |
| `606` | `INVALID_INPUT` | Cédula 字段为空。 |
| `607` | `DOCUMENT_NOT_FOUND` | 未找到该公民。 |
| `608` | `REGISTRY_ERROR` | 此客户端无 SIB 访问权限。 |
| `610` | `BIOMETRIC_IMAGE_UNUSABLE` | 人脸核验发生一般错误。 |
| `611` | `BIOMETRIC_IMAGE_UNUSABLE` | 未发送用于比对的图像。 |
| `612` | `BIOMETRIC_IMAGE_UNUSABLE` | 图像无内容。 |
| `613` | `BIOMETRIC_IMAGE_UNUSABLE` | 图像格式无效。 |
| `614` | `BIOMETRIC_IMAGE_UNUSABLE` | 图像中未检测到人脸。 |
| `615` | `BIOMETRIC_NO_MATCH` | 未达到相似度阈值。 |

### 其他支持的国家和地区

以下国家和地区仅返回标准结果代码 — 无需处理特定国家/地区的详细代码。

* **玻利维亚、哥伦比亚、哥斯达黎加、萨尔瓦多、危地马拉、洪都拉斯、巴拉圭、西班牙、乌拉圭、委内瑞拉** — 针对相应民事登记处的 1×1 查询。结果直接映射到 `MATCH`、`NO_MATCH`、`DOCUMENT_NOT_FOUND`、`INVALID_DOCUMENT_FORMAT` 或 `REGISTRY_UNAVAILABLE`。
* **智利 (Registro Civil)** — RUT 查询。映射到标准结果，并在登记处标记未成年人记录时映射到 `MINOR_BLOCKED`。
* **多米尼加共和国 (JCE)** — 返回布尔有效性的 Cédula 查询；映射到 `MATCH` 或 `NO_MATCH`。
* **厄瓜多尔 (Registro Civil)** — Cédula 查询。
* **墨西哥 (RENAPO，以及用于 2×2 的 INE)** — 通过 RENAPO 查询 CURP。当 `validation_type` 为 `two_by_two` 时，会运行额外的 INE 交叉比对；两者均输出相同的标准结果代码。
* **秘鲁 (RENIEC)** — DNI 查询。

## 处理方案

最简单且稳健的处理方式如下：

```typescript theme={null}
switch (result.outcome_code) {
  case "MATCH":
    return approve();
  case "PARTIAL_MATCH":
    return review();
  case "NO_MATCH":
  case "DOCUMENT_NOT_FOUND":
  case "DECEASED":
  case "MINOR_BLOCKED":
  case "BIOMETRIC_NO_MATCH":
    return decline();
  case "INVALID_DOCUMENT_FORMAT":
  case "INVALID_INPUT":
    return askUserToFixInput(result.outcome_detail);
  case "BIOMETRIC_IMAGE_UNUSABLE":
    return askUserToRetakeSelfie();
  case "REGISTRY_UNAVAILABLE":
  case "REGISTRY_ERROR":
    return review();  // Didit already retried; a human can decide.
  default:
    return review();
}
```

> [!NOTE]
>
> 您无需为了业务逻辑而在 `outcome_detail` 上进行分支 — 可将其用于分析、调试和支持工单。标准 `outcome_code` 保证在不同国家/地区之间以及长期内保持稳定。

## 另请参阅

* [数据库核验警告](https://docs.didit.me/zh/core-technology/database-validation/database-validation-warnings.md) — 会话级警告标记（`COULD_NOT_PERFORM_DATABASE_VALIDATION`、`DATABASE_VALIDATION_PARTIAL_MATCH`、`DATABASE_VALIDATION_NO_MATCH`）以及如何配置应用的审核/拒绝操作。
* [数据库核验报告](https://docs.didit.me/zh/core-technology/database-validation/database-validation-report.md) — 完整的响应结构以及 `outcome_code` / `outcome_detail` 出现的位置。
* [数据库核验支持的国家和地区](https://docs.didit.me/zh/core-technology/database-validation/database-validation-supported-countries.md) — 完整的国家/地区与匹配方式列表。


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