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

# データベース検証の1x1・2x2照合方式

> Diditのデータベース検証は、サービスごとの照合結果から1x1・2x2の判定を導出します。氏名のあいまい一致しきい値、partialMatchActionのルール、ウォーターフォール処理を解説。1件$0.05から。

Diditの[データベース検証](https://docs.didit.me/ja/core-technology/database-validation/overview.md) APIは、各国の公的な住民登録、税務当局、選挙人名簿と照合して本人情報を確認します。対象にはRENAPER（アルゼンチン）、Receita Federal（ブラジル）、Tribunal Electoral（パナマ）、RENAPO（メキシコ）、Junta Central Electoral（ドミニカ共和国）、Registraduría Nacional（コロンビア）などがあります。各クエリは成功した呼び出しごとに課金され、料金は**\$0.05/check**からで、月額の最低利用料金はありません。

結果はサービスごとの結果から導き出されます。**1×1**は単一の登録機関が完全一致を返した場合、**2×2**は2つの独立した登録機関がデータを裏付けた場合です。このページでは、これらの結果の算出方法、氏名に適用されるあいまい一致のしきい値、およびワークフローのルールで`partialMatchAction`と`noMatchAction`を制御する判定ロジックについて説明します。

## 1×1マッチング

この方法では、1つの入力データ（通常は国民IDまたはそれに類する識別子）を当社のデータベースと照合します。直接一致が見つかった場合は、本人であることを確認します。ただし、最初の試行で一致しなかった場合は、信頼できる別のデータソースをウォーターフォール方式で順に試すことがあります。つまり、一致が得られるか、すべての選択肢を使い切るまで、後続のプロバイダーで検証を続けます。重要な点として、部分一致では処理は停止しません。完全かつ決定的な一致が見つかるか、一致が存在しないと判断した時点でのみ停止します。

1x1マッチングのロジックでは、本人情報について完全一致を得るために、ユーザーの個人データを1つのソースと照合する必要があります。\*

| 検証結果 | 氏名カテゴリー | IDカテゴリー | 生年月日カテゴリー |
| :- | :- | :- | :- |
| 完全一致 | 完全一致 | 完全一致 | 任意の値 |
| 部分一致 | 部分一致 | 完全一致 | 任意の値 |
| 不一致 | その他のすべての組み合わせ | | |

*\*該当する国のソースは、本人情報について完全一致が得られるまで照会されます。完全一致が見つからない場合、システムはそれらのソースを繰り返し照会し、ユーザーの本人情報について部分一致を探します。*

> [!NOTE]
>
> 上記の1×1の表と下記の2×2の表は一般的なモデルを示したものであり、すべてのサービスに当てはまることを保証するものではありません。判定を左右するフィールドは、サービスや送信する任意入力によって異なります。登録機関が比較できるのは、自らが保有するフィールドと送信されたフィールドのみであり、サービスの結果は実際に比較したフィールドによって決まります。すべてのサービスが識別番号を比較するわけではなく、送信された場合にのみ比較するサービスもあります。たとえば[スペイン - DNI/NIE検証](https://docs.didit.me/ja/api-reference/database-validation/spain/dni.md)（`esp_dni`）では氏名、生年月日、住所が必須で、`national_id`を任意入力として受け付けます。氏名、生年月日、住所は常に比較し、`national_id`を送信した場合は識別番号も比較します。
>
> 必須フィールドが判定を左右するとは限らず、任意フィールドが判定を左右することもあります。必須フィールドはリクエストが受け付けられるために送信が必要なフィールドであり、`source_data`に記載されたフィールドは登録機関が返したデータです。どちらも、どのフィールドが結果を決定したかを示すものではありません。各サービスのページにあるレスポンス例は想定されるレスポンスの一例であり、その`validation`オブジェクトのキーは、そのサービスが比較するフィールドの完全な一覧ではありません。[対応国とサービス](https://docs.didit.me/ja/core-technology/database-validation/database-validation-supported-countries.md)に掲載されている各サービスのAPIリファレンスページでは、必須入力と任意入力が**入力**に記載されています。

## 2×2マッチング

この方式では、2つの入力データ（例: 氏名と生年月日、または国民IDと電話番号）を、当社データベース内の対応する2つのフィールドと照合する必要があります。1×1と同様にウォーターフォール方式を採用し、複数のデータソースに順番に問い合わせます。両方のデータフィールドで完全に一致するまで、各ステップで照合を続けます。部分一致や1つのフィールドのみの一致では不十分です。2つのフィールドの完全一致が得られるか、すべてのソースを確認し終えるまで、検証プロセスは継続します。

2×2マッチングのロジックでは、ユーザーの本人情報について完全一致を得るために、ユーザーの個人データを2つのソースと照合する必要があります。\*

| 検証結果 | 1つ目のデータソース | 2つ目のデータソース |
| :- | :- | :- |
| 完全一致 | 氏名 完全一致 + 国民ID 完全一致 | 氏名 完全一致 + 国民ID 完全一致 |
| 完全一致 | 氏名 完全一致 + 国民ID 完全一致 | 氏名 部分一致 + 国民ID 完全一致 |
| 完全一致 | 氏名 完全一致 + 国民ID 完全一致 | 氏名 完全一致 + 生年月日 完全一致 |
| 完全一致 | 氏名 完全一致 + 国民ID 任意の値 | 氏名 完全一致 + 国民ID 任意の値 |
| 部分一致 | 氏名 完全一致 + 国民ID 完全一致 | |
| 部分一致 | 氏名 部分一致 + 国民ID 完全一致 | |
| 部分一致 | 氏名 完全一致 + 生年月日 完全一致 | |
| 部分一致 | 氏名 完全一致 + 国民ID 任意の値 | |
| 不一致 | その他すべての組み合わせ | |

*\*該当する国のソースは、本人情報の完全一致が得られるまで照合されます。完全一致が見つからない場合、システムはそれらのソースに対して、ユーザーの本人情報の部分一致を繰り返し照合します。*

***

## データカテゴリと属性の照合

以下は、氏名、生年月日、IDの各データカテゴリで完全一致となるシナリオです。部分一致は氏名カテゴリでのみ発生します。

### 氏名カテゴリの照合

氏名カテゴリでは、以下のデータ属性照合シナリオのいずれかを満たした場合に**完全一致**とみなされます。

* 連結した氏名が完全一致(名と姓を結合し、類似度のしきい値85%で判定)
* 名が完全一致 + 姓が完全一致
* 名が完全一致 + 母方の姓が完全一致
* 名が完全一致 + 父方の姓が完全一致

氏名カテゴリでは、以下のデータ属性照合シナリオのいずれかを満たした場合に**部分一致**とみなされます。

* 名が完全一致
* 姓が完全一致
* 父方の姓が完全一致
* 母方の姓が完全一致
* 母方の姓が完全一致 + 父方の姓が完全一致

### 生年月日カテゴリの照合

生年月日カテゴリでは、以下のデータ属性照合シナリオを満たした場合にのみ**完全一致**とみなされます。

* 生まれ年が完全一致 + 生まれ月が完全一致 + 生まれ日が完全一致

生年月日カテゴリでは部分一致は発生しません。

### IDカテゴリの照合

IDカテゴリでは、以下のデータ属性照合シナリオを満たした場合にのみ**完全一致**とみなされます。

* 識別番号が完全一致

IDカテゴリでは部分一致は発生しません。

IDカテゴリが判定に含まれるのは、サービスが識別番号を照合する場合のみです。識別番号を一切照合しないサービスもあれば、入力として送信した場合にのみ照合するサービスもあります。

***

## データ属性のファジーマッチング

各国のデータソースと照合する際の、データ属性ごとのファジーマッチングの基準は以下のとおりです。

* **氏名のデータ属性**
  氏名カテゴリのデータ属性で完全一致となるには、データソースのレコードと比較したレーベンシュタイン距離に基づく文字の類似度が70%以上である必要があります。氏名を連結する場合(名と姓を結合した場合)は、より高い85%の類似度をしきい値として使用します。たとえば、氏名属性の入力が「Christophel」で実際の氏名が「Christopher」の場合、ファジーマッチングのロジックにより完全一致が返されます。この仕組みは、*名*、*姓*、*父方の姓*、\_母方の姓\_の各データ属性に適用されます。

* **生年月日とIDのデータ属性**
  生年月日またはIDのデータカテゴリに属するデータ属性には、いかなる種類のファジーマッチングも適用しません。これらのフィールドでは完全な一致が必要です。

### 例

以下は、ファジーマッチングのロジックの基準を満たし、完全一致となるデータ属性の入力例です。

| データ属性 | 入力 | データソースのレコード | 結果 |
| :- | :- | :- | :- |
| first\_name | Christopher | Christopher | 完全一致 |
| first\_name | Christophel | Christopher | 完全一致 |
| first\_name | Chris | Christopher | 不一致 |
| last\_name | Smith | Smith | 完全一致 |
| last\_name | Smyth | Smith | 完全一致 |
| last\_name | Smitty | Smith | 不一致 |

## 関連項目

* [データベース検証の概要](https://docs.didit.me/ja/core-technology/database-validation/overview.md): APIの仕組み全体、対応する登録機関、料金。
* [結果コード](https://docs.didit.me/ja/core-technology/database-validation/database-validation-outcome-codes.md): プロバイダーのレスポンスコードの全一覧(死亡、未成年、書類が見つからない、生体情報の不一致)。
* [警告](https://docs.didit.me/ja/core-technology/database-validation/database-validation-warnings.md): 入力が不足しているためにサービスを実行できない場合に表示される内容。
* [対応国とサービス](https://docs.didit.me/ja/core-technology/database-validation/database-validation-supported-countries.md): 稼働中のすべての登録機関、必須フィールド、呼び出し1件あたりの料金。
* [レポート](https://docs.didit.me/ja/core-technology/database-validation/database-validation-report.md): サービスごとの月次の請求エクスポート。


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