> ## 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のDatabase Validationが返す全結果コード：一致、不一致、死亡、未成年、書類が見つからない、生体認証の不一致。$0.05/件から。

Didit の[データベース検証](https://docs.didit.me/ja/core-technology/database-validation/overview.md)APIは、各国の公的な住民登録機関に照会します。照会先はRENAPER(アルゼンチン、生体認証による顔照合付きで1件あたり\$0.20)、Receita Federal(ブラジル、\$0.20)、Tribunal Electoral SIB(パナマ、生体認証付きで\$0.75)、Junta Central Electoral(ドミニカ共和国、\$0.05)のほか14機関です。料金は成功した照会ごとに課金され、月額の最低利用料金はありません。

データベース検証を実行すると、結果は2つの階層で返されます。

1. **標準結果コード**:対応するすべての国で同じように機能するため、1つの処理ロジックですべての国に対応できます。
2. 任意の**国別詳細コード**:政府の登録機関がどの状態を返したかを正確に示します。サポート対応や分析、ユーザーに再試行を促すかどうかの判断に役立ちます。

このページでは、返される可能性のあるすべての値と、それぞれへの対応方法を説明します。

## 標準結果コード

これらのコードはすべての国で共通です。レビュー、却下、再試行のロジックは、国別の詳細コードではなく、これらのコードに基づいて構築してください。

| 結果コード | 意味 | 再試行の可否 | 推奨される対応 |
| :- | :- | :-: | :- |
| `MATCH` | 登録機関が本人であることを確認し、照合したすべてのフィールドが一致しました。 | - | 承認します。 |
| `PARTIAL_MATCH` | 登録機関に記録は見つかりましたが、サービスが比較したフィールドのうち1つ以上が完全には一致しませんでした(通常は氏名または生年月日)。どのフィールドが結果を左右するかはサービスによって異なります。[照合方法](https://docs.didit.me/ja/core-technology/database-validation/database-validation-matching-methods.md)を参照してください。 | - | レビューに回すか、[Partial Match Action](https://docs.didit.me/ja/core-technology/database-validation/database-validation-warnings.md)を設定して自動的に却下します。 |
| `NO_MATCH` | 送信されたデータに一致する記録が登録機関から返されませんでした。 | 不可 | ポリシーに応じて、却下するかレビューに回します。 |
| `DOCUMENT_SUPERSEDED` | 登録機関は本人であることを確認しましたが、提示された**書類の版**が登録機関の保有する版と異なります。その後に新しい版が発行されているため、手元の書類は古いものです。アルゼンチンのDNIの*ejemplar*(版を示す文字)が代表的な例です。`NO_MATCH`(本人が一致しなかった)や`DOCUMENT_NOT_FOUND`(記録が一切ない)とは異なり、古くなっているのは物理的な書類だけです。 | 不可 | レビューに回し、最新版の書類を求めてください。この結果は**No Match Action**に従って処理され、[`DATABASE_VALIDATION_DOCUMENT_SUPERSEDED`](https://docs.didit.me/ja/core-technology/database-validation/database-validation-warnings)が発生します。 |
| `DOCUMENT_NOT_FOUND` | 識別番号の形式は正しいものの、政府の登録機関に存在しません。 | 不可 | 却下します。 |
| `INVALID_DOCUMENT_FORMAT` | 送信された識別番号の形式が不正です(桁数の誤り、数字以外の文字、チェックサムの不一致)。 | 不可 | ユーザーに書類番号の再入力を求めます。 |
| `INVALID_INPUT` | 必須の入力フィールド(セルフィー、性別、生年月日など)が欠落しているか、形式が不正です。 | 不可 | ユーザーに不足しているフィールドの再送信を求めます。データが提供されると、セッションは自動的に再処理されます。[`COULD_NOT_PERFORM_DATABASE_VALIDATION`](https://docs.didit.me/ja/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/ja/core-technology/database-validation/overview.md#可用性に関する通知)を参照してください。 |
| `REGISTRY_ERROR` | 登録機関が、上記のいずれにも該当しない予期しないエラーを返しました。 | 場合による | 詳細コードを添えてサポートにエスカレーションします。 |

> [!NOTE]
>
> `outcome_code`は、検証レポートの`validations`配列の各エントリ内にあります。レスポンス内での位置については、[データベース検証レポート](https://docs.didit.me/ja/core-technology/database-validation/database-validation-report.md)を参照してください。

> [!NOTE]
>
> `REGISTRY_UNAVAILABLE`と`REGISTRY_ERROR`は照会先の登録機関が照会に一度も応答しなかったことを意味するため、この2つの結果は**課金されません**。[料金](https://docs.didit.me/ja/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/ja/core-technology/database-validation/database-validation-warnings)としてスキップされます。どちらも課金されません。詳しい内訳は[データベース検証の料金ページ](https://docs.didit.me/ja/getting-started/database-validation-pricing.md)をご覧ください。

## 国別の詳細コード

詳細コードは`outcome_code`とあわせて`outcome_detail`として返されます。標準の結果コード以外に詳細コードを返すのは以下に記載された国のみで、その他の対応国はすべて標準コードのみを返します。

### アルゼンチン (RENAPER)

アルゼンチンでは、DNI、セルフィー、申告された性別を組み合わせ、RENAPERの国民身分登録簿に対して生体認証による1×1検証を行います。

| 詳細コード | 標準の結果 | 意味 |
| :- | :- | :- |
| `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(Lei Geral de Proteção de Dados)および子ども・青少年デジタル法に基づく明示的な処理を行います。

| 詳細コード | 標準の結果 | 意味 |
| :- | :- | :- |
| `200` | `MATCH` | CPFが見つかり、データが正常に返されました。 |
| `206` | `MATCH` | CPFは見つかりましたが、必須ではない一部のフィールドが返されませんでした。 |
| `400` | `INVALID_DOCUMENT_FORMAT` | CPF番号が有効ではありません。 |
| `404` | `DOCUMENT_NOT_FOUND` | 送信された番号のCPFは存在しません。 |
| `422` | `MINOR_BLOCKED` | 18歳未満の未成年者のデータは、LGPD(法律第13.709/2018号)に基づき開示されません。レスポンスには`minor_under_18: true`が含まれます。 |
| `451` | `MINOR_BLOCKED` | 16歳未満の未成年者のデータは、LGPDおよび子ども・青少年デジタル法(法律第15.211/2025号)に基づき開示されません。レスポンスには`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/ja/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/ja/core-technology/database-validation/database-validation-report.md): レスポンスの全体構造と、`outcome_code` / `outcome_detail`が含まれる箇所。
* [データベース検証の対応国](https://docs.didit.me/ja/core-technology/database-validation/database-validation-supported-countries.md): 対応国と照合方法の一覧。


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