> ## 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：国民IDとの本人情報照合

> DiditのPOST /v3/database-validation/で、100+の国内・グローバルなデータソースと本人情報を照合できます。1x1・2x2のウォーターフォール照合に対応し、呼び出しごとの従量課金です。

## 住所ベースのサービス

居住地の住所や公共料金の請求先住所を検証するサービスでは、単一の`address`を送信でき、Diditがチェックの処理前にそれを分割します。最も高い一致率を得るには、構造化されたDiditの住所フィールドを直接送信してください。

| フィールド | 意味 |
| - | - |
| `address_element_1` | 番地と通りの種別を含む住所 |
| `address_element_2` | 任意の部屋番号、建物名、階数、または追加の住所行 |
| `address_element_3` | 地区、区域、地域、または近隣地区 |
| `address_element_4` | 市区町村、州、県、または地方 |
| `address_element_5` | 郵便番号 |

構造化フィールドは単一の`address`の値より優先されます。`postal_code`は`address_element_5`のエイリアスとして受け付けられます。

## 同意

一部のデータベースサービスでは、プロバイダーへの照会前にエンドユーザーの明示的な同意が必要です。サービスカタログでは、これらの行に`requires_consent=true`が付いています。

選択したサービスに対するユーザーの同意がある場合は、`consent=true`を送信してください。

選択したサービスが同意を必要とするのにそれを送信しなかった場合、Diditはプロバイダーへの呼び出しや請求が発生する前にリクエストを拒否します。

## ファイルのアップロード

データベース検証では`multipart/form-data`を使用します。`selfie`を必要とする生体認証サービスでは、APIプレイグラウンドでこれがファイルアップロードフィールドとして表示されるため、パスやbase64文字列を貼り付ける代わりに画像を直接選択できます。

コードでは、通常のmultipart構文でファイルをアップロードします。

```bash theme={null}
-F "selfie=@./selfie.jpg"
```

## 検証エラー

Diditは、プロバイダーを呼び出す前に、必須フィールド、住所の構造、サービス固有の形式を検証します。たとえば、`chn_national_id`や`chn_passport_verification`などの中国の登録情報サービスでは、`full_name`を元の中国語表記で指定する必要があります。また、`chn_national_id`では、チェックサムが正しい15桁または18桁の有効な中国の身分証番号も必要です。

リクエストを実行できない場合、APIは明示的なフィールドエラーを返し、利用料金は請求されません。事前チェックの通過後にプロバイダーが失敗した場合、レスポンスには`validation_errors`が含まれ、保存されたAPIリクエストでは、それらのエラーがデータベースの検証結果に保存されます。

## 拒否された入力と利用できない結果

どのサービスも利用可能な結果を返さなかった場合は、再試行するかどうかを判断する前に、`validation_errors`の各エントリを確認してください。
HTTPステータスだけでは、再試行が適切かどうかは判断できません。
`code: "provider_rejected_input"`と`retryable: false`を含む`400`レスポンスは、結果が返されなかったすべての試行で入力が明示的に拒否されたことを意味します。
再試行する前に、送信したデータを修正してください。
これらの試行は請求されません。

`code: "empty_provider_response"`と`retryable: true`を含む`502`レスポンスは、別の理由によりサービスが利用可能な結果を生成できなかったことを意味します。
これには、入力が拒否された後にフォールバックが利用できなかった場合や、フォールバックが理由を示さなかった場合が含まれます。
時間をおいて再試行してください。このレスポンスは、入力が誤っていることを示すものではありません。
データベースで障害が続く場合、Diditは障害が継続していると判断した時点で、そのデータベースを最近利用した組織にメールで通知し、実際のチェックで応答が確認された時点で再度通知します。詳しくは[可用性の通知](https://docs.didit.me/ja/core-technology/database-validation/overview.md#可用性に関する通知)を参照してください。

選択したサービスの一部のみが失敗した場合、リクエストは成功として扱われます。レスポンスは`200`となり、失敗したサービスは`database_validation.errors[]`の下に、それぞれ同じ`code`および`retryable`フィールドとともに一覧表示されます。
この場合、`database_validation.status`は応答したサービスの結果に従い、`Approved`になることもあります。そのため、`4xx`や`5xx`の場合だけでなく、すべてのレスポンスで`errors[]`を確認してください。
そこに記載されたサービスは`validations`と`services_used`には含まれず、請求もされません。そのサービスのみを個別に再試行してください。

その他の`502`エラーでは、入力の修正が必要になる場合があります。
たとえば、`provider_invalid_input`と`provider_validation_error`は情報源が拒否した入力を示しており、従来のレスポンスで`retryable`が省略されている場合でも、変更しないまま再試行してはなりません。
`empty_provider_response`に関する再試行のガイダンスは、これらのコードには適用されません。
一致なしという確定的な結果は完了したチェックであり、可用性の障害ではありません。


## OpenAPI

````yaml ja/openapi-25.json POST /v3/database-validation/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 本人確認API。x-api-keyヘッダーで認証します。
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/database-validation/:
    post:
      tags:
        - Standalone APIs
      summary: データベース検証（単体）
      description: >-
        公式の政府および登記情報源に照らして、個人の本人情報を検証します。ブラジルのCPF、アルゼンチンのRENAPER、スペインとペルーのDNI登録簿、メキシコのINEのほか、60+か国にわたる100+のサービスに対応しています。


        **サービスの選択。** 各国は、`service_id`（例:
        `bra_cpf`、`arg_renaper`、`pan_cedula_sib`）で識別される1つ以上のカタログサービスを提供しています。実行したいサービスは`services`配列で指定します。省略した場合、デフォルトのサービス（その国で最も長く稼働している本番サービス）がちょうど**1つ**だけ実行されます。`services`を送信すると、レスポンスも`services_used`と`match_score`を含む拡張形式に切り替わります。サービス、その必須フィールド、料金は、`GET
        /v1/organization/database-validation-countries/`（本仕様には記載されていないカタログエンドポイント）またはBusiness
        Consoleのワークフローエディターで確認できます。一部のサービスはカタログで`requires_consent=true`のフラグが付いており、`consent=true`が必要です。また、呼び出す前に組織向けのオンボーディングが必要なサービスもあります。


        **入力フィールド。**
        `identification_number`は、適切な国別フィールドに自動的にマッピングされる共通フィールドです（その説明を参照）。国ごとの形式ルールはプロバイダーを呼び出す前に適用され（例:
        BRAのCPFは正確に11桁である必要があります）、形式エラーが請求されることはありません。生体認証サービスには`selfie`のアップロード（multipartのみ）が必要で、アルゼンチンのRENAPERではさらに`gender`が必要です。


        **結果。**
        各サービスは、フィールドごとの`validation`マップと、ベンダーに依存しない`outcome_code`（`MATCH`、`PARTIAL_MATCH`、`NO_MATCH`、`DOCUMENT_NOT_FOUND`、`INVALID_DOCUMENT_FORMAT`、`INVALID_INPUT`、`MINOR_BLOCKED`、`DECEASED`、`BIOMETRIC_NO_MATCH`、`BIOMETRIC_IMAGE_UNUSABLE`、`INCONCLUSIVE`、`DOCUMENT_SUPERSEDED`、`REGISTRY_UNAVAILABLE`、`REGISTRY_ERROR`）を返します。次の違いに注意してください。`NO_MATCH`は確定的な不一致、`INCONCLUSIVE`は登録簿がどちらとも確認できなかったこと（却下ではなくレビュー）を意味し、`BIOMETRIC_IMAGE_UNUSABLE`は確定的な`BIOMETRIC_NO_MATCH`とは異なり、セルフィーの技術的な問題（再撮影）です。全体の`match_type`はサービス全体を集約したもので（いずれかが完全一致なら`full_match`、そうでなくいずれかが部分一致なら`partial_match`、それ以外は`no_match`）、`no_match_action`/`partial_match_action`がこれを最終的な`status`に変換します。`validation_type`は導出される値で、2つ以上の異なるサービスが完全一致（識別番号、氏名と生年月日の組み合わせ、または矛盾のない住所のいずれかで）を返した場合は`two_by_two`、それ以外は`one_by_one`になります。


        **保存。**
        `save_api_request`のデフォルトは**true**です。結果はセッションとして保存され（`request_id`は`GET
        /v3/session/{sessionId}/decision/`で使用できます）、コンソールに表示され、`status.updated`のWebhookが送信されます。また、`validations`の形式もこの設定で決まります。保存する場合はサービスごとのオブジェクト、保存しない場合は統合された`{field:
        match}`マップになります。


        **請求。**
        請求はサービス単位です。課金対象の結果を返した各サービスに、それぞれのカタログ料金が請求されます。失敗またはスキップされたサービスは請求されず、`400`で拒否されたリクエストには費用がかかりません。事前の残高チェックでは、選択したサービスの料金の合計が対象になります（不足している場合は`403`）。


        **失敗。**
        選択したどのサービスも使用可能な結果を返さない場合、応答のなかったすべての試行が入力を明示的に拒否したとき（`provider_rejected_input`、`retryable:
        false`）は、APIは`validation_errors`付きで`400`を返します。再試行する前に入力を修正してください。それ以外の場合は、入力の拒否と利用できなかったフォールバック試行が混在する場合も含め、`validation_errors`（`empty_provider_response`、`retryable:
        true`）付きで`502`を返します。何も請求されません（`save_api_request=true`の場合でも、セッションはステータス`Not
        Finished`で記録されます）。一部のサービスのみが失敗した場合は、`200`レスポンスの`database_validation.errors`にその失敗が含まれます。


        **サンドボックス。**
        サンドボックスアプリケーションのキーでは、登録簿の呼び出しと請求がスキップされ、静的な`full_match`レスポンスが返されます。サンドボックスのペイロードには、`services`の送信方法にかかわらず常に`services_used`と`match_score:
        100`が含まれます。そのため、本番環境における拡張形式の切り替え条件や、0.0〜1.0の割合で表される`match_score`を、サンドボックスのレスポンスで検証しないでください。


        リクエストは`application/json`で送信するか、`selfie`をアップロードする場合は`multipart/form-data`で送信してください。
      operationId: post_v3database-validation
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - issuing_state
              properties:
                issuing_state:
                  type: string
                  description: >-
                    照合先レジストリのISO 3166-1 **alpha-3**国コード（例:
                    `BRA`、`ESP`、`COL`）。利用可能なサービスはこれによって決まります。サポートされていないコードは、有効な選択肢の完全な一覧とともに`400`を返します。
                  example: BRA
                services:
                  type: array
                  items:
                    type: string
                  description: >-
                    この国で実行するカタログの`service_id`（例:
                    `["bra_cpf"]`）。単一の文字列、またはカンマ区切りやJSONエンコードされた文字列も受け付けます。**省略した場合または空の場合は、デフォルトのサービスが1つだけ実行されます**。これはその国で最も長く提供されている稼働中のサービスです。新しいサービス、生体認証サービス、従量課金サービスは明示的に指定する必要があります。`services`を送信すると、レスポンスが拡張形式に切り替わります（`services_used`と`match_score`が追加されます）。すべてのIDが存在し、かつ`issuing_state`で稼働している必要があります。オンボーディングが必要なサービスは、組織で有効化されるまで`400`を返します。国ごとに利用可能なサービスは、`GET
                    /v1/organization/database-validation-countries/`（この仕様には記載されていないカタログエンドポイント）またはBusiness
                    Consoleのワークフローエディターで確認できます。
                  example:
                    - bra_cpf
                validation_type:
                  type: string
                  deprecated: true
                  description: >-
                    非推奨。後方互換性のため受け付けますが、無視されます。レスポンスの`validation_type`は、完全一致したサービスの数から算出されるようになりました。特定のサービスを指定するには`services`を使用してください。
                consent:
                  type: boolean
                  default: false
                  description: >-
                    エンドユーザーが選択した検証サービスに明示的に同意した場合は`true`に設定します。カタログで`requires_consent=true`とフラグ付けされたサービスでは必須です。指定しない場合、それらのサービスは`services_requiring_consent`を含む`400`を返します。
                identification_number:
                  type: string
                  description: >-
                    汎用の識別番号です。国ごとの正しいフィールドに自動的にマッピングされるため、`personal_number`/`tax_number`/`document_number`の代わりに使用できます:ARG→document_number
                    (DNI)、BOL→document_number (CI)、BRA→tax_number
                    (CPF、11桁)、CHL→personal_number (RUT)、COL→personal_number
                    (Cédula)、CRI→personal_number (Cédula)、DOM→personal_number
                    (Cédula、11桁)、ECU→personal_number
                    (Cédula、10桁)、ESP→personal_number
                    (DNI/NIE)、GTM→document_number (DPI)、HND→document_number
                    (DNI)、MEX→personal_number (CURP、18文字)、PAN→personal_number
                    (Cédula)、PER→personal_number (DNI、8桁)、PRY→document_number
                    (CI)、SLV→document_number (DUI)、URY→personal_number
                    (CI)、VEN→document_number
                    (Cédula)。明示的に指定された国別フィールドを上書きすることはありません。
                first_name:
                  type: string
                  description: 個人の名です。一部のサービスや国で必須です。
                  example: John
                last_name:
                  type: string
                  description: 個人の姓です。一部のサービスや国で必須です。
                  example: Doe
                middle_name:
                  type: string
                  description: ミドルネーム。一部の国のサービス（AUS、NZL、…）で使用されます。
                full_name:
                  type: string
                  description: 氏名。一部のサービスでは、名と姓の代わりにこれを受け付けます（例：ネイティブ表記の氏名で照合するCHNのサービス）。
                date_of_birth:
                  type: string
                  format: date
                  description: 生年月日（`YYYY-MM-DD`）。多くのサービスで必須です。
                  example: '1980-01-01'
                personal_number:
                  type: string
                  description: >-
                    政府が発行する固有の個人識別番号。使用国:
                    CHL(RUT)、COL(Cédula)、CRI、DOM、ECU、ESP(DNI/NIE)、MEX(CURP)、PAN(Cédula)、PER(DNI)、URY。代わりに`identification_number`の使用を検討してください。
                tax_number:
                  type: string
                  description: >-
                    納税者番号。使用国:
                    BRA(CPF、11桁)。代わりに`identification_number`の使用を検討してください。
                document_number:
                  type: string
                  description: >-
                    書類番号。使用する国:
                    ARG(DNI)、BOL(CI)、GTM(DPI)、HND(DNI)、PRY(CI)、SLV(DUI)、VEN(Cédula)。代わりに`identification_number`の使用を検討してください。
                document_type:
                  type: string
                  enum:
                    - P
                    - DL
                    - ID
                    - RP
                    - SSC
                    - HIC
                    - WP
                    - TC
                    - VISA
                    - PSC
                    - BC
                    - OTHER
                  description: >-
                    検証対象の書類の種類：`P`はパスポート、`DL`は運転免許証、`ID`は国民IDカード、`RP`は在留許可証（ほかに`SSC`、`HIC`、`WP`、`TC`、`VISA`、`PSC`、`BC`、`OTHER`）。一部のサービス（例：ESP）で必須です。
                expiration_date:
                  type: string
                  format: date
                  description: 書類の有効期限(`YYYY-MM-DD`)。ESP(スペイン)の検証に必須です。
                  example: '2030-01-15'
                date_of_issue:
                  type: string
                  format: date
                  description: >-
                    書類の発行日(`YYYY-MM-DD`、fecha de
                    expedición)。COL(コロンビア)のcédula検証に必須です。
                  example: '2015-06-20'
                nationality:
                  type: string
                  description: ISO 3166-1 alpha-3形式の国籍。一部のサービスでは必須です。
                gender:
                  type: string
                  enum:
                    - M
                    - F
                    - X
                  description: >-
                    性別：`M`、`F`、または`X`（その他/不明）。アルゼンチンのRENAPER検証（`arg_renaper`）で必須です。
                address:
                  description: >-
                    居住住所です。構造化オブジェクト`{"street_1":"123 Main St","street_2":"Apt
                    4B","city":"Springfield","region":"IL","postal_code":"62701","country":"US"}`を推奨しますが、完全な1行の文字列も引き続き受け付けられます。住所検証サービスでは必須です。サービスが住所の要件を定義している場合、不足している項目があると`address_fields_required_by`を含む`400`が返されます。
                  oneOf:
                    - type: object
                      properties:
                        street_1:
                          type: string
                        street_2:
                          type: string
                        city:
                          type: string
                        region:
                          type: string
                        postal_code:
                          type: string
                        country:
                          type: string
                    - type: string
                      description: 1行形式の完全な住所(レガシー)。
                address_element_1:
                  type: string
                  description: 番地と通りの種別を含む通りの住所。省略した場合は`address`から導出されます。
                address_element_2:
                  type: string
                  description: 部屋番号、ユニット、建物、階、または追加の住所行。明示的に把握している場合にのみ送信してください。
                address_element_3:
                  type: string
                  description: 市区町村、郊外、地区、地域、または近隣地区。省略した場合は`address`から導出されます。
                address_element_4:
                  type: string
                  description: 州、県、地域、または町。省略した場合は`address`から導出されます。
                address_element_5:
                  type: string
                  description: 郵便番号。`postal_code`もエイリアスとして受け付けます。
                postal_code:
                  type: string
                  description: 住所ベースのサービスで使用する郵便番号(`address_element_5`のエイリアス)。
                driver_license_number:
                  type: string
                  description: 政府の書類検証サービス（AUS、NZL、IND）向けの運転免許証番号。
                driver_license_card_number:
                  type: string
                  description: 運転免許証番号とは別に必要な場合の、物理的な運転免許証カードの番号(AUS)。
                driver_license_state:
                  type: string
                  description: 運転免許証の発行州または準州（AUS）。
                driver_license_version:
                  type: string
                  description: 運転免許証のバージョンコード（NZL）。
                passport_number:
                  type: string
                  description: 政府のパスポート検証サービス（AUS、NZL、IND、CHN）で使用するパスポート番号。
                passport_expiration_date:
                  type: string
                  format: date
                  description: パスポートの有効期限（`YYYY-MM-DD`）。パスポート検証サービスで使用します。
                passport_file_number:
                  type: string
                  description: パスポートのファイル番号（IND）。
                passport_issue_country:
                  type: string
                  description: パスポート検証サービスで使用する、パスポートの発行国（ISO 3166-1 alpha-3）です。
                medicare_card_number:
                  type: string
                  description: Medicareカード番号（オーストラリア）です。
                immi_card_number:
                  type: string
                  description: オーストラリアのImmiCardの番号。
                immi_card_expiry_date:
                  type: string
                  format: date
                  description: オーストラリアのImmiCardの有効期限。
                citizenship_certificate_number:
                  type: string
                  description: 市民権証明書番号（AUS）。
                birth_registration_number:
                  type: string
                  description: 出生証明書の登録番号（AUS）。
                birth_registration_date:
                  type: string
                  format: date
                  description: 出生証明書の登録日（AUS）。
                birth_registration_state:
                  type: string
                  description: 出生証明書の登録州（AUS）。
                marriage_certificate_number:
                  type: string
                  description: 婚姻証明書番号（AUS）。
                change_of_name_certificate_number:
                  type: string
                  description: 改名証明書番号（AUS）。
                first_partner_name:
                  type: string
                  description: 結婚証明書に記載された配偶者の名（AUS）。
                last_partner_name:
                  type: string
                  description: 婚姻証明書に記載されたパートナーの姓(AUS)。
                voter_id:
                  type: string
                  description: 有権者登録番号（IND EPIC、IRL）。
                epic_card:
                  type: string
                  description: インドのEPIC有権者カード番号。
                pan:
                  type: string
                  description: インドのPAN（Permanent Account Number）。
                national_id:
                  type: string
                  description: 国民ID番号（CHN、MYS、KEN、KHM、NGA、ZAF、…）。
                cic:
                  type: string
                  description: >-
                    メキシコINE/IFEのCódigo de Identificación de
                    Credencial（CIC）、9桁。メキシコINE資格証有効性確認サービス（`mex_ine_vigencia`）で使用します。
                identificador_ciudadano:
                  type: string
                  description: >-
                    メキシコINEのIdentificador del
                    Ciudadano（9桁）。`mex_ine_vigencia`で、現行INEモデル（E/F/G/H）に対して`cic`と組み合わせて使用します。
                ocr:
                  type: string
                  description: >-
                    メキシコINEのOCR番号（13桁、カード裏面）。`mex_ine_vigencia`で、モデルDに対して`cic`と組み合わせて使用します。
                voter_number:
                  type: string
                  description: >-
                    メキシコINEのClave de
                    Elector（18文字）。`mex_ine_vigencia`で、旧IFEモデル（A/B/C）に対して`emission_number`と組み合わせて使用します。
                emission_number:
                  type: string
                  description: >-
                    メキシコINEのNúmero de
                    Emisión。`mex_ine_vigencia`で、旧IFEモデル（A/B/C）に対して`voter_number`と組み合わせて使用します。
                bvn:
                  type: string
                  description: ナイジェリアの銀行認証番号(Bank Verification Number)。
                bank_card_number:
                  type: string
                  description: 銀行カード番号（CHNの銀行カード認証）。
                company_registration_number:
                  type: string
                  description: >-
                    会社登記所が発行した会社の登記番号です。ブラジルではCNPJ（例：`11222333000181`）、南アフリカでは登記番号（例：`1936/007721/06`）が該当します。法人登記サービスおよび会社取締役サービス（`bra_company_registry`、`bra_company_directors`、`zaf_company_registry`、`zaf_company_directors`）で必須です。
                company_name:
                  type: string
                  description: 登記されている企業名で、登記簿の記載と照合されます。`zaf_company_registry`では省略可能です。
                initials:
                  type: string
                  description: >-
                    書類に印字されているこの人物のイニシャルです。`zaf_drivers_license`では必須で、`zaf_bank_account_holder`でも指定できます。
                licence_number:
                  type: string
                  description: >-
                    `zaf_drivers_license`用の、カードに記載されている運転免許証番号。省略した場合は`document_number`が使用されます。
                refugee_file_number:
                  type: string
                  description: >-
                    南アフリカ内務省（Department of Home
                    Affairs）が発行する難民ファイル番号。`zaf_refugee`で必須です。
                bank_name:
                  type: string
                  description: 口座を保有する銀行の名称。`zaf_bank_account_holder`で必須です。
                bank_account_number:
                  type: string
                  description: >-
                    銀行口座番号。`zaf_bank_account_holder`では必須で、`zaf_fraud_prevention`でも指定できます。
                account_type:
                  type: string
                  description: >-
                    `zaf_bank_account_holder`用の銀行口座種別です。`current`、`savings`、`transmission`、`subscriptionShare`または`notKnown`のいずれかで、大文字と小文字は区別されません。それ以外の値を指定すると`400`が返されます。種別が不明な場合は省略してください。その場合、口座種別の照合結果は未確認として報告されます。
                phone_number:
                  type: string
                  description: >-
                    連絡先の携帯電話番号。連絡可能性を照合するサービス（`zaf_bank_account_holder`、`zaf_fraud_prevention`、`zaf_refugee`）で使用されます。
                right_thumb:
                  type: string
                  description: >-
                    `zaf_dha_fingerprint_match`用の、Base64エンコードされた右手親指の指紋です。`left_thumb`と併用するか、単独で指定します。
                left_thumb:
                  type: string
                  description: >-
                    `zaf_dha_fingerprint_match`用の、Base64エンコードされた左手親指の指紋です。`right_thumb`と併用するか、単独で指定します。
                score_level:
                  type: integer
                  description: '`zaf_criminal_face_screening`の生体認証スコアレベルの最小値。デフォルトは`3`です。'
                max_matches:
                  type: integer
                  description: '`zaf_criminal_face_screening`が返す候補一致の最大数です。デフォルトは`1`です。'
                vehicle_register_number:
                  type: string
                  description: >-
                    車両登録番号。`zaf_vehicle_ownership`では、`vehicle_licence_plate`および`vin`とともに必須です。
                vehicle_licence_plate:
                  type: string
                  description: >-
                    車両のナンバープレート番号。`zaf_vehicle_ownership`では、`vehicle_register_number`および`vin`とともに必須です。
                vin:
                  type: string
                  description: >-
                    車両識別番号(VINまたは車台番号)。`zaf_vehicle_ownership`では、`vehicle_register_number`および`vehicle_licence_plate`とともに必須です。
                ssn:
                  type: string
                  description: 社会保障番号(米国)。
                phone:
                  type: string
                  description: 電話番号検証サービス用の電話番号。
                landline:
                  type: string
                  description: 電話番号検証サービス用の固定電話番号。
                email:
                  type: string
                  format: email
                  description: 本人確認サービス用のメールアドレス。
                country_of_residence:
                  type: string
                  description: >-
                    居住国を示すISO 3166-1 alpha-2コード。グローバルなID情報エンリッチメントサービス（例:
                    `glb_identity_enrichment`）が照会対象を絞り込むために使用します。
                  example: US
                partial_match_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: NO_ACTION
                  description: >-
                    `partial_match`の場合に`database_validation.status`がどうなるか。デフォルトは`NO_ACTION`です（ステータスは`Approved`のままで、警告が付きます）。
                no_match_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    `no_match`の場合に`database_validation.status`がどうなるか。デフォルトは`DECLINE`です。
                save_api_request:
                  type: boolean
                  default: true
                  description: >-
                    検証をセッションとして保存します(コンソールでの表示、判定エンドポイント、`status.updated`のWebhook)。`validations`レスポンスの形式も変わります。`true`(デフォルト)の場合はサービスごとのオブジェクト、`false`の場合は統合されたフィールドマップになります。
                vendor_data:
                  type: string
                  description: 検証対象ユーザーに対するお客様側の識別子です。そのまま返され、セッションとともに保存されます。
                metadata:
                  type: object
                  nullable: true
                  description: リクエストとともに保存され、そのまま返される自由形式のJSON。
            example:
              issuing_state: BRA
              services:
                - bra_cpf
              identification_number: '12345678900'
              first_name: John
              last_name: Doe
              date_of_birth: '1980-01-01'
              vendor_data: user-1234
          multipart/form-data:
            schema:
              type: object
              required:
                - issuing_state
              properties:
                issuing_state:
                  type: string
                  description: >-
                    照合先レジストリのISO 3166-1 **alpha-3**国コード（例:
                    `BRA`、`ESP`、`COL`）。利用可能なサービスはこれによって決まります。サポートされていないコードは、有効な選択肢の完全な一覧とともに`400`を返します。
                  example: BRA
                services:
                  type: array
                  items:
                    type: string
                  description: >-
                    この国で実行するカタログの`service_id`（例:
                    `["bra_cpf"]`）。単一の文字列、またはカンマ区切りやJSONエンコードされた文字列も受け付けます。**省略した場合または空の場合は、デフォルトのサービスが1つだけ実行されます**。これはその国で最も長く提供されている稼働中のサービスです。新しいサービス、生体認証サービス、従量課金サービスは明示的に指定する必要があります。`services`を送信すると、レスポンスが拡張形式に切り替わります（`services_used`と`match_score`が追加されます）。すべてのIDが存在し、かつ`issuing_state`で稼働している必要があります。オンボーディングが必要なサービスは、組織で有効化されるまで`400`を返します。国ごとに利用可能なサービスは、`GET
                    /v1/organization/database-validation-countries/`（この仕様には記載されていないカタログエンドポイント）またはBusiness
                    Consoleのワークフローエディターで確認できます。
                  example:
                    - bra_cpf
                validation_type:
                  type: string
                  deprecated: true
                  description: >-
                    非推奨。後方互換性のため受け付けますが、無視されます。レスポンスの`validation_type`は、完全一致したサービスの数から算出されるようになりました。特定のサービスを指定するには`services`を使用してください。
                consent:
                  type: boolean
                  default: false
                  description: >-
                    エンドユーザーが選択した検証サービスに明示的に同意した場合は`true`に設定します。カタログで`requires_consent=true`とフラグ付けされたサービスでは必須です。指定しない場合、それらのサービスは`services_requiring_consent`を含む`400`を返します。
                identification_number:
                  type: string
                  description: >-
                    汎用の識別番号です。国ごとの正しいフィールドに自動的にマッピングされるため、`personal_number`/`tax_number`/`document_number`の代わりに使用できます:ARG→document_number
                    (DNI)、BOL→document_number (CI)、BRA→tax_number
                    (CPF、11桁)、CHL→personal_number (RUT)、COL→personal_number
                    (Cédula)、CRI→personal_number (Cédula)、DOM→personal_number
                    (Cédula、11桁)、ECU→personal_number
                    (Cédula、10桁)、ESP→personal_number
                    (DNI/NIE)、GTM→document_number (DPI)、HND→document_number
                    (DNI)、MEX→personal_number (CURP、18文字)、PAN→personal_number
                    (Cédula)、PER→personal_number (DNI、8桁)、PRY→document_number
                    (CI)、SLV→document_number (DUI)、URY→personal_number
                    (CI)、VEN→document_number
                    (Cédula)。明示的に指定された国別フィールドを上書きすることはありません。
                first_name:
                  type: string
                  description: 個人の名です。一部のサービスや国で必須です。
                  example: John
                last_name:
                  type: string
                  description: 個人の姓です。一部のサービスや国で必須です。
                  example: Doe
                middle_name:
                  type: string
                  description: ミドルネーム。一部の国のサービス（AUS、NZL、…）で使用されます。
                full_name:
                  type: string
                  description: 氏名。一部のサービスでは、名と姓の代わりにこれを受け付けます（例：ネイティブ表記の氏名で照合するCHNのサービス）。
                date_of_birth:
                  type: string
                  format: date
                  description: 生年月日（`YYYY-MM-DD`）。多くのサービスで必須です。
                  example: '1980-01-01'
                personal_number:
                  type: string
                  description: >-
                    政府が発行する固有の個人識別番号。使用国:
                    CHL(RUT)、COL(Cédula)、CRI、DOM、ECU、ESP(DNI/NIE)、MEX(CURP)、PAN(Cédula)、PER(DNI)、URY。代わりに`identification_number`の使用を検討してください。
                tax_number:
                  type: string
                  description: >-
                    納税者番号。使用国:
                    BRA(CPF、11桁)。代わりに`identification_number`の使用を検討してください。
                document_number:
                  type: string
                  description: >-
                    書類番号。使用する国:
                    ARG(DNI)、BOL(CI)、GTM(DPI)、HND(DNI)、PRY(CI)、SLV(DUI)、VEN(Cédula)。代わりに`identification_number`の使用を検討してください。
                document_type:
                  type: string
                  enum:
                    - P
                    - DL
                    - ID
                    - RP
                    - SSC
                    - HIC
                    - WP
                    - TC
                    - VISA
                    - PSC
                    - BC
                    - OTHER
                  description: >-
                    検証対象の書類の種類：`P`はパスポート、`DL`は運転免許証、`ID`は国民IDカード、`RP`は在留許可証（ほかに`SSC`、`HIC`、`WP`、`TC`、`VISA`、`PSC`、`BC`、`OTHER`）。一部のサービス（例：ESP）で必須です。
                expiration_date:
                  type: string
                  format: date
                  description: 書類の有効期限(`YYYY-MM-DD`)。ESP(スペイン)の検証に必須です。
                  example: '2030-01-15'
                date_of_issue:
                  type: string
                  format: date
                  description: >-
                    書類の発行日(`YYYY-MM-DD`、fecha de
                    expedición)。COL(コロンビア)のcédula検証に必須です。
                  example: '2015-06-20'
                nationality:
                  type: string
                  description: ISO 3166-1 alpha-3形式の国籍。一部のサービスでは必須です。
                gender:
                  type: string
                  enum:
                    - M
                    - F
                    - X
                  description: >-
                    性別：`M`、`F`、または`X`（その他/不明）。アルゼンチンのRENAPER検証（`arg_renaper`）で必須です。
                address:
                  description: >-
                    居住住所です。構造化オブジェクト`{"street_1":"123 Main St","street_2":"Apt
                    4B","city":"Springfield","region":"IL","postal_code":"62701","country":"US"}`を推奨しますが、完全な1行の文字列も引き続き受け付けられます。住所検証サービスでは必須です。サービスが住所の要件を定義している場合、不足している項目があると`address_fields_required_by`を含む`400`が返されます。
                  oneOf:
                    - type: object
                      properties:
                        street_1:
                          type: string
                        street_2:
                          type: string
                        city:
                          type: string
                        region:
                          type: string
                        postal_code:
                          type: string
                        country:
                          type: string
                    - type: string
                      description: 1行形式の完全な住所(レガシー)。
                address_element_1:
                  type: string
                  description: 番地と通りの種別を含む通りの住所。省略した場合は`address`から導出されます。
                address_element_2:
                  type: string
                  description: 部屋番号、ユニット、建物、階、または追加の住所行。明示的に把握している場合にのみ送信してください。
                address_element_3:
                  type: string
                  description: 市区町村、郊外、地区、地域、または近隣地区。省略した場合は`address`から導出されます。
                address_element_4:
                  type: string
                  description: 州、県、地域、または町。省略した場合は`address`から導出されます。
                address_element_5:
                  type: string
                  description: 郵便番号。`postal_code`もエイリアスとして受け付けます。
                postal_code:
                  type: string
                  description: 住所ベースのサービスで使用する郵便番号(`address_element_5`のエイリアス)。
                driver_license_number:
                  type: string
                  description: 政府の書類検証サービス（AUS、NZL、IND）向けの運転免許証番号。
                driver_license_card_number:
                  type: string
                  description: 運転免許証番号とは別に必要な場合の、物理的な運転免許証カードの番号(AUS)。
                driver_license_state:
                  type: string
                  description: 運転免許証の発行州または準州（AUS）。
                driver_license_version:
                  type: string
                  description: 運転免許証のバージョンコード（NZL）。
                passport_number:
                  type: string
                  description: 政府のパスポート検証サービス（AUS、NZL、IND、CHN）で使用するパスポート番号。
                passport_expiration_date:
                  type: string
                  format: date
                  description: パスポートの有効期限（`YYYY-MM-DD`）。パスポート検証サービスで使用します。
                passport_file_number:
                  type: string
                  description: パスポートのファイル番号（IND）。
                passport_issue_country:
                  type: string
                  description: パスポート検証サービスで使用する、パスポートの発行国（ISO 3166-1 alpha-3）です。
                medicare_card_number:
                  type: string
                  description: Medicareカード番号（オーストラリア）です。
                immi_card_number:
                  type: string
                  description: オーストラリアのImmiCardの番号。
                immi_card_expiry_date:
                  type: string
                  format: date
                  description: オーストラリアのImmiCardの有効期限。
                citizenship_certificate_number:
                  type: string
                  description: 市民権証明書番号（AUS）。
                birth_registration_number:
                  type: string
                  description: 出生証明書の登録番号（AUS）。
                birth_registration_date:
                  type: string
                  format: date
                  description: 出生証明書の登録日（AUS）。
                birth_registration_state:
                  type: string
                  description: 出生証明書の登録州（AUS）。
                marriage_certificate_number:
                  type: string
                  description: 婚姻証明書番号（AUS）。
                change_of_name_certificate_number:
                  type: string
                  description: 改名証明書番号（AUS）。
                first_partner_name:
                  type: string
                  description: 結婚証明書に記載された配偶者の名（AUS）。
                last_partner_name:
                  type: string
                  description: 婚姻証明書に記載されたパートナーの姓(AUS)。
                voter_id:
                  type: string
                  description: 有権者登録番号（IND EPIC、IRL）。
                epic_card:
                  type: string
                  description: インドのEPIC有権者カード番号。
                pan:
                  type: string
                  description: インドのPAN（Permanent Account Number）。
                national_id:
                  type: string
                  description: 国民ID番号（CHN、MYS、KEN、KHM、NGA、ZAF、…）。
                cic:
                  type: string
                  description: >-
                    メキシコINE/IFEのCódigo de Identificación de
                    Credencial（CIC）、9桁。メキシコINE資格証有効性確認サービス（`mex_ine_vigencia`）で使用します。
                identificador_ciudadano:
                  type: string
                  description: >-
                    メキシコINEのIdentificador del
                    Ciudadano（9桁）。`mex_ine_vigencia`で、現行INEモデル（E/F/G/H）に対して`cic`と組み合わせて使用します。
                ocr:
                  type: string
                  description: >-
                    メキシコINEのOCR番号（13桁、カード裏面）。`mex_ine_vigencia`で、モデルDに対して`cic`と組み合わせて使用します。
                voter_number:
                  type: string
                  description: >-
                    メキシコINEのClave de
                    Elector（18文字）。`mex_ine_vigencia`で、旧IFEモデル（A/B/C）に対して`emission_number`と組み合わせて使用します。
                emission_number:
                  type: string
                  description: >-
                    メキシコINEのNúmero de
                    Emisión。`mex_ine_vigencia`で、旧IFEモデル（A/B/C）に対して`voter_number`と組み合わせて使用します。
                bvn:
                  type: string
                  description: ナイジェリアの銀行認証番号(Bank Verification Number)。
                bank_card_number:
                  type: string
                  description: 銀行カード番号（CHNの銀行カード認証）。
                company_registration_number:
                  type: string
                  description: >-
                    会社登記所が発行した会社の登記番号です。ブラジルではCNPJ（例：`11222333000181`）、南アフリカでは登記番号（例：`1936/007721/06`）が該当します。法人登記サービスおよび会社取締役サービス（`bra_company_registry`、`bra_company_directors`、`zaf_company_registry`、`zaf_company_directors`）で必須です。
                company_name:
                  type: string
                  description: 登記されている企業名で、登記簿の記載と照合されます。`zaf_company_registry`では省略可能です。
                initials:
                  type: string
                  description: >-
                    書類に印字されているこの人物のイニシャルです。`zaf_drivers_license`では必須で、`zaf_bank_account_holder`でも指定できます。
                licence_number:
                  type: string
                  description: >-
                    `zaf_drivers_license`用の、カードに記載されている運転免許証番号。省略した場合は`document_number`が使用されます。
                refugee_file_number:
                  type: string
                  description: >-
                    南アフリカ内務省（Department of Home
                    Affairs）が発行する難民ファイル番号。`zaf_refugee`で必須です。
                bank_name:
                  type: string
                  description: 口座を保有する銀行の名称。`zaf_bank_account_holder`で必須です。
                bank_account_number:
                  type: string
                  description: >-
                    銀行口座番号。`zaf_bank_account_holder`では必須で、`zaf_fraud_prevention`でも指定できます。
                account_type:
                  type: string
                  description: >-
                    `zaf_bank_account_holder`用の銀行口座種別です。`current`、`savings`、`transmission`、`subscriptionShare`または`notKnown`のいずれかで、大文字と小文字は区別されません。それ以外の値を指定すると`400`が返されます。種別が不明な場合は省略してください。その場合、口座種別の照合結果は未確認として報告されます。
                phone_number:
                  type: string
                  description: >-
                    連絡先の携帯電話番号。連絡可能性を照合するサービス（`zaf_bank_account_holder`、`zaf_fraud_prevention`、`zaf_refugee`）で使用されます。
                right_thumb:
                  type: string
                  description: >-
                    `zaf_dha_fingerprint_match`用の、Base64エンコードされた右手親指の指紋です。`left_thumb`と併用するか、単独で指定します。
                left_thumb:
                  type: string
                  description: >-
                    `zaf_dha_fingerprint_match`用の、Base64エンコードされた左手親指の指紋です。`right_thumb`と併用するか、単独で指定します。
                score_level:
                  type: integer
                  description: '`zaf_criminal_face_screening`の生体認証スコアレベルの最小値。デフォルトは`3`です。'
                max_matches:
                  type: integer
                  description: '`zaf_criminal_face_screening`が返す候補一致の最大数です。デフォルトは`1`です。'
                vehicle_register_number:
                  type: string
                  description: >-
                    車両登録番号。`zaf_vehicle_ownership`では、`vehicle_licence_plate`および`vin`とともに必須です。
                vehicle_licence_plate:
                  type: string
                  description: >-
                    車両のナンバープレート番号。`zaf_vehicle_ownership`では、`vehicle_register_number`および`vin`とともに必須です。
                vin:
                  type: string
                  description: >-
                    車両識別番号(VINまたは車台番号)。`zaf_vehicle_ownership`では、`vehicle_register_number`および`vehicle_licence_plate`とともに必須です。
                ssn:
                  type: string
                  description: 社会保障番号(米国)。
                phone:
                  type: string
                  description: 電話番号検証サービス用の電話番号。
                landline:
                  type: string
                  description: 電話番号検証サービス用の固定電話番号。
                email:
                  type: string
                  format: email
                  description: 本人確認サービス用のメールアドレス。
                country_of_residence:
                  type: string
                  description: >-
                    居住国を示すISO 3166-1 alpha-2コード。グローバルなID情報エンリッチメントサービス（例:
                    `glb_identity_enrichment`）が照会対象を絞り込むために使用します。
                  example: US
                partial_match_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: NO_ACTION
                  description: >-
                    `partial_match`の場合に`database_validation.status`がどうなるか。デフォルトは`NO_ACTION`です（ステータスは`Approved`のままで、警告が付きます）。
                no_match_action:
                  type: string
                  enum:
                    - DECLINE
                    - NO_ACTION
                  default: DECLINE
                  description: >-
                    `no_match`の場合に`database_validation.status`がどうなるか。デフォルトは`DECLINE`です。
                save_api_request:
                  type: boolean
                  default: true
                  description: >-
                    検証をセッションとして保存します(コンソールでの表示、判定エンドポイント、`status.updated`のWebhook)。`validations`レスポンスの形式も変わります。`true`(デフォルト)の場合はサービスごとのオブジェクト、`false`の場合は統合されたフィールドマップになります。
                vendor_data:
                  type: string
                  description: 検証対象ユーザーに対するお客様側の識別子です。そのまま返され、セッションとともに保存されます。
                metadata:
                  type: object
                  nullable: true
                  description: リクエストとともに保存され、そのまま返される自由形式のJSON。
                selfie:
                  type: string
                  format: binary
                  description: >-
                    生体認証による検証サービス(例:
                    アルゼンチンのRENAPER(`arg_renaper`)、パナマのSIB(`pan_cedula_sib`、`pan_cedula_sib_plus`))用のセルフィー画像(`jpg`、`jpeg`、`png`、`webp`。最大2MB。画像は登記所へのアップロード前に約1.5MBに圧縮されます)です。選択したサービスが必須フィールドとして指定している場合は必ず指定してください。`multipart/form-data`でのみ利用できます。
      responses:
        '200':
          description: >-
            検証完了。選択したサービスのうち少なくとも1つが利用可能な結果を返しました。集約された結果は`database_validation.match_type`、サービスごとのフィールド比較と`outcome_code`は`validations`、失敗したサービスは`errors`（存在する場合）で確認してください。
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                    format: uuid
                    description: >-
                      `save_api_request=true`の場合は保存されたセッションID(`GET
                      /v3/session/{sessionId}/decision/`で使用可能)、それ以外の場合は一時的な相関UUIDです。
                  database_validation:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - Approved
                          - Declined
                          - In Review
                        description: >-
                          全体の`match_type`が`DECLINE`アクションをトリガーする場合は`Declined`です（`no_match_action`のデフォルトは`DECLINE`、`partial_match_action`のデフォルトは`NO_ACTION`）。どのサービスも利用可能な比較結果を返さなかった場合、たとえば選択した唯一のサービスが`REGISTRY_UNAVAILABLE`または`INCONCLUSIVE`を返した場合は`In
                          Review`、それ以外は`Approved`です。複数のサービスを選択したリクエストでは、あるサービスが利用できなかった場合でも、別のサービスの一致によって`Approved`になることがあります。そのため、`errors`とサービスごとの`outcome_code`もあわせて確認してください。
                      issuing_state:
                        type: string
                        description: 検証に使用したISO 3166-1 alpha-3の国コードのエコー。
                        example: BRA
                      validation_type:
                        type: string
                        enum:
                          - one_by_one
                          - two_by_two
                        description: >-
                          結果から算出されます。2つ以上の異なるサービスで完全一致（識別番号での一致、氏名と生年月日の組み合わせでの一致、または矛盾のない住所での一致）が得られた場合は`two_by_two`、それ以外の場合は`one_by_one`です。（同名のリクエストフィールドは非推奨で、無視されます。）
                      screened_data:
                        type: object
                        description: >-
                          選択したサービスに送信された入力フィールドをそのまま返します（日付は`YYYY-MM-DD`に正規化されます。`selfie`を送信した場合は署名付きURLとして返されます。同意を得た場合は`consent_obtained:
                          true`が追加されます）。
                      match_type:
                        type: string
                        nullable: true
                        enum:
                          - full_match
                          - partial_match
                          - no_match
                        description: >-
                          フィールド単位の比較を行うサービス全体で集約された総合結果：いずれかが`full_match`なら`full_match`、そうでなくいずれかが`partial_match`なら`partial_match`、それ以外は`no_match`です。生体認証による犯罪歴スクリーニングなど、結果のみを返すサービスでは`null`が返る場合があります。`validations`内の各アイテムで`outcome_code`を確認してください。
                      validations:
                        description: >-
                          形式は`save_api_request`によって異なります。**`true`（デフォルト）：**サービスごとのオブジェクト（`service_id`、`service_name`、`validation`、`outcome_code`、`outcome_detail`、`source_data`）の配列です。**`false`：**全サービスのフィールド単位の結果をまとめた単一のフラットなオブジェクト（`{"full_name":
                          "full_match", ...}`）です。
                        oneOf:
                          - type: array
                            items:
                              type: object
                              description: >-
                                サービスごとの検証結果です（`save_api_request=true`の場合に返されます。これがデフォルトです）。
                              properties:
                                service_id:
                                  type: string
                                  description: 'この結果を生成したサービスのカタログID（例: `bra_cpf`）。'
                                  example: bra_cpf
                                service_name:
                                  type: string
                                  description: サービスのカタログ上の表示名。
                                  example: Brazil - CPF status check
                                validation:
                                  type: object
                                  description: >-
                                    入力内容と登記記録とのフィールドごとの比較。キーは正規のフィールド名(`full_name`、`date_of_birth`、`identification_number`、`address`など)で、値は`full_match`、`partial_match`、`no_match`のいずれかです。
                                  additionalProperties:
                                    type: string
                                    enum:
                                      - full_match
                                      - partial_match
                                      - no_match
                                outcome_code:
                                  type: string
                                  enum:
                                    - MATCH
                                    - PARTIAL_MATCH
                                    - NO_MATCH
                                    - DOCUMENT_NOT_FOUND
                                    - INVALID_DOCUMENT_FORMAT
                                    - INVALID_INPUT
                                    - MINOR_BLOCKED
                                    - DECEASED
                                    - BIOMETRIC_NO_MATCH
                                    - BIOMETRIC_IMAGE_UNUSABLE
                                    - INCONCLUSIVE
                                    - DOCUMENT_SUPERSEDED
                                    - REGISTRY_UNAVAILABLE
                                    - REGISTRY_ERROR
                                  description: >-
                                    登記照会のベンダー非依存の結果です。`MATCH`/`PARTIAL_MATCH`/`NO_MATCH`は照合結果を表します。`DOCUMENT_NOT_FOUND`は識別子が登記に存在しないことを意味します。`INCONCLUSIVE`は登記がどちらとも確認できなかったことを意味します(レビューに回されます。不一致ではありません)。`BIOMETRIC_NO_MATCH`は確定的な顔の不一致であり、`BIOMETRIC_IMAGE_UNUSABLE`は画像の技術的な問題です(セルフィーを撮り直してください)。`DECEASED`/`MINOR_BLOCKED`は登記のポリシーによる結果です。`DOCUMENT_SUPERSEDED`は本人は一致したものの、提示された書類の版が登録されている版ではない(新しい版が発行されている)ことを意味します。`INVALID_DOCUMENT_FORMAT`/`INVALID_INPUT`は、送信されたデータを登記側が拒否したことを意味します。`REGISTRY_UNAVAILABLE`/`REGISTRY_ERROR`は上流での障害を示します。
                                outcome_detail:
                                  type: string
                                  nullable: true
                                  description: >-
                                    結果コードの根拠となる、上流の生のステータス詳細（HTTPや登記のステータスコードなど）。
                                source_data:
                                  type: object
                                  nullable: true
                                  description: >-
                                    正規のフィールド名（`identification_number`、`first_name`、`last_name`、`date_of_birth`、および登記機関固有のフラグ）を使用した、登記記録の整形・正規化済みビューです。画像フィールドが存在する場合は、署名付きURLとして返されます。
                          - type: object
                            additionalProperties:
                              type: string
                              enum:
                                - full_match
                                - partial_match
                                - no_match
                            description: >-
                              統合されたフィールドレベルの結果（ステートレスな`save_api_request=false`の形式）です。
                      warnings:
                        type: array
                        items:
                          type: object
                          properties:
                            feature:
                              type: string
                              description: 警告を発生させた機能。
                            risk:
                              type: string
                              description: 機械可読なリスク識別子です。
                            additional_data:
                              type: object
                              nullable: true
                              description: 警告に関する追加コンテキストです(利用可能な場合)。
                            log_type:
                              type: string
                              description: >-
                                `warning`、`information`、または`error`。リスクが結果にどう影響したかを示します。
                            short_description:
                              type: string
                              description: 人が読める1行の要約です。
                            long_description:
                              type: string
                              description: 人が読める形式の詳細な説明。
                        description: >-
                          該当する場合は`DATABASE_VALIDATION_NO_MATCH`または`DATABASE_VALIDATION_PARTIAL_MATCH`です。完全一致の場合は空になります。
                      errors:
                        type: array
                        description: >-
                          選択したサービスの一部（すべてではない）が失敗した場合にのみ含まれます。各エントリには`service_id`、`code`、`message`、`retryable`が含まれます。ここで報告されたサービスは`validations`および`services_used`には含まれず、課金されません。このサービスが表示されるのはこの配列のみであるため、`status`が`Approved`の場合でも必ず確認してください。
                        items:
                          type: object
                          properties:
                            service_id:
                              type: string
                            code:
                              type: string
                              example: empty_provider_response
                            message:
                              type: string
                            retryable:
                              type: boolean
                              description: >-
                                サービスが応答を返さず、後で再試行すれば成功する可能性がある場合は`true`です。送信されたデータをソースが拒否し、先に入力を修正する必要がある場合は`false`です。
                              example: true
                      services_used:
                        type: array
                        items:
                          type: string
                        description: >-
                          課金対象の結果を返したサービスのカタログID。**リクエストで`services`を明示的に送信した場合のみ含まれます。**
                      match_score:
                        type: number
                        description: >-
                          試行されたサービスのうち、完全一致（識別番号での一致、氏名と生年月日の両方での一致、または矛盾のない住所での一致）となったものの割合（0.0–1.0）。**リクエストで`services`を明示的に送信した場合にのみ含まれます。**
                  vendor_data:
                    type: string
                    nullable: true
                    description: 送信した`vendor_data`をそのまま返します。
                  metadata:
                    type: object
                    nullable: true
                    description: 送信した`metadata`のエコー。
                  created_at:
                    type: string
                    format: date-time
              examples:
                Full match (Approved):
                  summary: デフォルトはsave_api_request=true：サービスごとの`validations`オブジェクト
                  value:
                    request_id: 7f9a1c0e-1f2b-4f6e-9d3a-2b1c0e7f9a1c
                    database_validation:
                      status: Approved
                      issuing_state: BRA
                      validation_type: one_by_one
                      screened_data:
                        tax_number: '12345678900'
                        first_name: John
                        last_name: Doe
                        date_of_birth: '1980-01-01'
                      match_type: full_match
                      validations:
                        - validation:
                            full_name: full_match
                            date_of_birth: full_match
                            identification_number: full_match
                          outcome_code: MATCH
                          outcome_detail: '200'
                          service_id: bra_cpf
                          service_name: Brazil - CPF status check
                          source_data:
                            identification_number: '12345678900'
                            first_name: JOHN
                            last_name: DOE
                            date_of_birth: '1980-01-01'
                            lgpd_minor: false
                            minor_under_16: false
                            minor_under_18: false
                      warnings: []
                    vendor_data: user-1234
                    metadata: null
                    created_at: '2026-06-11T10:30:00.000000+00:00'
                Explicit services (extended shape):
                  summary: >-
                    リクエストで`services`を送信すると、レスポンスに`services_used`と`match_score`が追加されます
                  value:
                    request_id: b3e7c1a2-9d4f-4f0b-8a6c-5e2d1f0a9b3e
                    database_validation:
                      status: Approved
                      issuing_state: BRA
                      validation_type: one_by_one
                      screened_data:
                        tax_number: '12345678900'
                        first_name: John
                        last_name: Doe
                        date_of_birth: '1980-01-01'
                      match_type: full_match
                      validations:
                        - validation:
                            full_name: full_match
                            date_of_birth: full_match
                            identification_number: full_match
                          outcome_code: MATCH
                          outcome_detail: '200'
                          service_id: bra_cpf
                          service_name: Brazil - CPF status check
                          source_data:
                            identification_number: '12345678900'
                            first_name: JOHN
                            last_name: DOE
                            date_of_birth: '1980-01-01'
                            lgpd_minor: false
                            minor_under_16: false
                            minor_under_18: false
                      warnings: []
                      services_used:
                        - bra_cpf
                      match_score: 1
                    vendor_data: user-1234
                    metadata: null
                    created_at: '2026-06-11T10:30:00.000000+00:00'
                No match (Declined):
                  summary: 登記記録が一致しない（デフォルトは`no_match_action=DECLINE`）
                  value:
                    request_id: 0a1b2c3d-4e5f-6789-abcd-ef0123456789
                    database_validation:
                      status: Declined
                      issuing_state: BRA
                      validation_type: one_by_one
                      screened_data:
                        tax_number: '12345678900'
                        first_name: John
                        last_name: Doe
                        date_of_birth: '1980-01-01'
                      match_type: no_match
                      validations:
                        - validation:
                            full_name: no_match
                            date_of_birth: no_match
                            identification_number: no_match
                          outcome_code: NO_MATCH
                          outcome_detail: '200'
                          service_id: bra_cpf
                          service_name: Brazil - CPF status check
                          source_data:
                            identification_number: '00987654321'
                            first_name: TOTALLY
                            last_name: DIFFERENT NAME
                            date_of_birth: '1999-01-01'
                            lgpd_minor: false
                            minor_under_16: false
                            minor_under_18: false
                      warnings:
                        - feature: DATABASE_VALIDATION
                          risk: DATABASE_VALIDATION_NO_MATCH
                          additional_data: null
                          log_type: error
                          short_description: Database validation no match
                          long_description: >-
                            The system identified a no match in the database
                            validation, requiring further investigation.
                    vendor_data: null
                    metadata: null
                    created_at: '2026-06-11T10:31:00.000000+00:00'
                Stateless (save_api_request=false):
                  summary: '`validations`は統合されたフィールドマップにまとめられ、何も保存されません'
                  value:
                    request_id: c4d5e6f7-8901-2345-6789-abcdef012345
                    database_validation:
                      status: Approved
                      issuing_state: BRA
                      validation_type: one_by_one
                      screened_data:
                        tax_number: '12345678900'
                        first_name: John
                        last_name: Doe
                        date_of_birth: '1980-01-01'
                      match_type: full_match
                      validations:
                        full_name: full_match
                        date_of_birth: full_match
                        identification_number: full_match
                      warnings: []
                    vendor_data: null
                    metadata: null
                    created_at: '2026-06-11T10:32:00.000000+00:00'
        '400':
          description: >-
            検証エラー：請求は発生しません。プリフライトのフィールドエラーは外部呼び出しの前に発生します。応答が得られなかったすべての試行が入力を明示的に拒否した場合、レスポンスには代わりに`code:
            provider_rejected_input`と`retryable:
            false`を含む`validation_errors`が含まれます。再試行する前に入力を修正してください。フィールドレベルの問題にはDRFの標準エンベロープが使われます。カタログの問題では`services`配列（該当する場合は`requires_onboarding`または`services_requiring_consent`も）が返されます。必須フィールド不足のエラーには、不足している各フィールドをそれを要求するサービスに対応付ける`fields_required_by`が含まれます。少なくとも1つの追加識別子を必要とするサービス（例：氏名だけでは検証できない`usa_states_credit_bureau`）は、各サービスを、少なくとも1つが存在しなければならないフィールドに対応付ける`any_field_required_by`を返します。サービスごとにチェックされる形式の問題では`invalid_fields_by_service`が返されます。
          content:
            application/json:
              examples:
                Invalid issuing_state:
                  summary: サポートされていない国です。メッセージには有効なalpha-3コードがすべて記載されます
                  value:
                    error:
                      - >-
                        Invalid issuing state. Valid options are: ARE, ARG, AUS,
                        AUT, BEL, BGD, BOL, BRA, CAN, CHE, CHL, CHN, CIV, COL,
                        CRI, CZE, DEU, DNK, DOM, ECU, ESP, FIN, FRA, GBR, GHA,
                        GLB, GRC, GTM, HKG, HND, IDN, IND, IRL, ITA, KEN, KHM,
                        MAR, MEX, MYS, NGA, NLD, NOR, NZL, OMN, PAN, PER, PHL,
                        POL, PRT, PRY, QAT, SGP, SLV, SVK, SWE, THA, UGA, URY,
                        USA, VEN, ZAF, ZMB, ZWE
                Missing required fields:
                  summary: 選択したサービス全体で必要なフィールドの和集合と、共通フィールドのヒント
                  value:
                    error:
                      - >-
                        Missing required fields: tax_number (or use
                        'identification_number' which maps to 'tax_number' for
                        BRA)
                    fields_required_by:
                      tax_number:
                        - bra_cpf
                Unknown service id:
                  summary: '`services`にカタログに存在しないIDが含まれている'
                  value:
                    services:
                      - 'Unknown service_id(s): [''bogus_service'']'
                Service not live for country:
                  summary: '`services`に別の国のサービス（またはスタブエントリー）が指定されている'
                  value:
                    services:
                      - >-
                        Services not currently live for PER: ['bra_cpf'].
                        Available services: ['per_dni', 'per_residential',
                        'per_tax_registration']
                Service requires onboarding:
                  summary: サービスは存在しますが、組織ではまだ有効化されていません
                  value:
                    services:
                      - >-
                        Services require onboarding before they can be enabled
                        for AUS: ['aus_australia_driver_licence']. Contact Didit
                        support to activate them.
                    requires_onboarding:
                      - aus_australia_driver_licence
                Consent missing:
                  summary: >-
                    選択したサービスにrequires_consent=trueが設定されていますが、`consent`が`true`ではありませんでした
                  value:
                    consent:
                      - >-
                        Explicit end-user consent is required for these database
                        validation services: ['chn_national_id']. Send
                        `consent=true`.
                    services_requiring_consent:
                      - chn_national_id
                Country format rule violation:
                  summary: 識別子が国の形式ルール(桁数/数字/正規表現)に適合しません
                  value:
                    tax_number:
                      - >-
                        Invalid tax number for BRA: Brazilian CPF (exactly 11
                        digits). Must be exactly 11 characters long (got 10).
                Service-specific format violation:
                  summary: フィールドが、選択したサービス独自の形式要件を満たしていません
                  value:
                    error:
                      - >-
                        One or more fields do not match the format required by
                        the selected service.
                    invalid_fields_by_service:
                      chn_national_id:
                        - national_id_format
                Input refused by every attempt:
                  summary: 入力内容を修正してから再試行してください
                  value:
                    error: >-
                      The source refused to run this query with the supplied
                      input.
                    validation_errors:
                      - service_id: bra_cpf
                        code: provider_rejected_input
                        message: >-
                          The source refused to run this query with the supplied
                          input.
                        retryable: false
              schema:
                type: object
                additionalProperties: true
                properties:
                  error:
                    description: リクエストレベルの説明、または事前チェックでのフィールドエラー。
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
                  validation_errors:
                    type: array
                    description: 未回答のすべての試行で、プリフライト後に入力が拒否された場合に含まれます。
                    items:
                      type: object
                      properties:
                        service_id:
                          type: string
                        code:
                          type: string
                        message:
                          type: string
                        retryable:
                          type: boolean
                          description: >-
                            後で再試行することでこのサービス障害が解消される可能性があるかどうかです。falseの場合は、まず指定した入力を修正してください。
        '403':
          description: >-
            権限がありません。`x-api-key`ヘッダーがない場合に加え、呼び出し元の組織の残高が呼び出しを賄えない場合にも返されます。誤った、取り消された、または期限切れのキーの場合は`401`が返されます。キーがない場合は`{"detail":
            ...}`とともに`403`が返され、誤った、取り消された、または期限切れのキーの場合は`401`が返されます。クレジット不足の場合は、スクリーニングやプロバイダーの呼び出しが行われる前に`{"error":
            ...}`とともに`403`が返されます。
          content:
            application/json:
              examples:
                Missing or invalid API key:
                  summary: '`x-api-key`ヘッダーがないか、キーが無効または失効しています'
                  value:
                    detail: You do not have permission to perform this action.
                Not enough credits:
                  summary: 組織の残高でこの呼び出しの料金を賄えません
                  value:
                    error: >-
                      You don't have enough credits to perform this request.
                      Please top up at https://business.didit.me
        '429':
          description: >-
            レート制限を超過しました。すべてのPOST/PATCH/DELETEエンドポイントは、APIキーごとに1分あたり300件の書き込みリクエストという共通の上限を共有します。レスポンスには`X-RateLimit-Limit`、`X-RateLimit-Remaining`、`X-RateLimit-Reset`、`Retry-After`ヘッダーが含まれます。
          content:
            application/json:
              examples:
                Write rate limit exceeded:
                  summary: 現在の1分間に300件を超える書き込みリクエスト
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
              schema:
                type: object
                properties:
                  detail:
                    type: string
        '502':
          description: >-
            選択されたサービスのいずれからも利用可能な結果が返されませんでした。再試行する前に、各validation_errorsエントリを確認してください。HTTP
            502だけでは一時的な障害とは判断できません。retryable:
            trueを持つempty_provider_responseは、結果が利用できないか原因が不明であることを示します。これには、プライマリが拒否し、その後のフォールバックが利用できなかった場合も含まれます。一方、従来のprovider_invalid_inputおよびprovider_validation_errorエントリは入力の修正が必要であり、retryableが省略される場合があります。料金は一切請求されません。save_api_request=trueの場合、失敗した試行はステータスがNot
            Finishedのセッションとして記録されます。部分的な失敗の場合は、database_validation.errorsを含む200が返されます。
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  validation_errors:
                    type: array
                    items:
                      type: object
                      properties:
                        service_id:
                          type: string
                        code:
                          type: string
                        message:
                          type: string
                        retryable:
                          type: boolean
                          description: >-
                            後で再試行することでこのサービス障害が解消される可能性があるかどうかです。falseの場合は、まず指定した入力を修正してください。
              examples:
                Provider returned no result:
                  summary: 選択されたすべてのサービスが失敗しました
                  value:
                    error: >-
                      Database validation could not be performed. The external
                      validation service did not return a result. Please try
                      again later.
                    validation_errors:
                      - service_id: bra_cpf
                        code: empty_provider_response
                        message: >-
                          The provider did not return a database validation
                          result.
                        retryable: true
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST https://verification.didit.me/v3/database-validation/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "issuing_state": "BRA",
                "services": ["bra_cpf"],
                "identification_number": "12345678900",
                "first_name": "John",
                "last_name": "Doe",
                "date_of_birth": "1980-01-01",
                "vendor_data": "user-1234"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.database_validation.validate(
                issuing_state="BRA",
                services=["bra_cpf"],
                identification_number="12345678900",
                first_name="John",
                last_name="Doe",
                date_of_birth="1980-01-01",
                vendor_data="user-1234",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.databaseValidation.validate({
              issuing_state: "BRA",
              services: ["bra_cpf"],
              identification_number: "12345678900",
              first_name: "John",
              last_name: "Doe",
              date_of_birth: "1980-01-01",
              vendor_data: "user-1234",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{\n\tIssuingState:         \"BRA\",\n\tServices:             didit.Some([]string{\"bra_cpf\"}),\n\tIdentificationNumber: didit.String(\"12345678900\"),\n\tFirstName:            didit.String(\"John\"),\n\tLastName:             didit.String(\"Doe\"),\n\tDateOfBirth:          didit.String(\"1980-01-01\"),\n\tVendorData:           didit.String(\"user-1234\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.time.LocalDate;

            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.DatabaseValidationValidateParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
                    .issuingState("BRA")
                    .services(List.of("bra_cpf"))
                    .identificationNumber("12345678900")
                    .firstName("John")
                    .lastName("Doe")
                    .dateOfBirth(LocalDate.parse("1980-01-01"))
                    .vendorData("user-1234")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->databaseValidation->validate([
                'issuing_state' => 'BRA',
                'services' => ['bra_cpf'],
                'identification_number' => '12345678900',
                'first_name' => 'John',
                'last_name' => 'Doe',
                'date_of_birth' => '1980-01-01',
                'vendor_data' => 'user-1234',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.database_validation.validate(
              issuing_state: "BRA",
              services: ["bra_cpf"],
              identification_number: "12345678900",
              first_name: "John",
              last_name: "Doe",
              date_of_birth: "1980-01-01",
              vendor_data: "user-1234"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.DatabaseValidation.ValidateAsync(new
            DatabaseValidationValidateParams

            {
                IssuingState = "BRA",
                Services = new string[] { "bra_cpf" },
                IdentificationNumber = "12345678900",
                FirstName = "John",
                LastName = "Doe",
                DateOfBirth = "1980-01-01",
                VendorData = "user-1234",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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