identification_number、first_name、last_name、date_of_birth、サービスが利用する場合は住所フィールド)に加え、総合結果と、取得できる場合は元のレコード詳細を返します。
合成ID詐欺に対する最も強力な防御策です。盗まれた実在のDNIやCPFはレジストリ照会で失敗し、でっち上げた番号は公式データベースにそもそも存在しません。レジストリが公式の顔写真を保有している国(RENAPER経由のアルゼンチン、Tribunal Electoral SIB / SIB Plus経由のパナマ)では、データベース検証をDiditの生体顔照合と組み合わせることで、番号が実在することだけでなく、カメラの前にいる本人がその番号の持ち主であることまで確認できます。
Diditが選ばれる理由
- 従量課金で最安水準の料金。 1回の確認あたり、$0.05(ドミニカ共和国)から、最も高額な専門ソースの**$7.00まで。料金は国ごとではなくサービスごとに設定されており、卸売料金が高いレジストリはそれに応じた価格になります(フィンランドの国民IDは$2.10**です)。呼び出す予定のサービスの料金は、必ずサービス別の料金表で確認してください。月額の最低料金、プラットフォーム利用料、ユーザー単位の課金はなく、成功したクエリにのみ課金されます。
- 最短で導入可能。 サインアップし、コンソールからAPIキーを取得すれば、数分で
POST /v3/database-validation/を呼び出せます。営業との打ち合わせ、調達手続き、PoCの書類は不要で、Diditは完全にセルフサービスです。 - 一次情報源へ直接アクセス。 RENAPER、Receita Federal (SERPRO)、Tribunal Electoral、RENAPO、RENAP、RNP、RNPN、Junta Central Electoral、Registraduría Nacional、SEGIP、Servicio de Registro Civil、Tribunal Supremo de Elecciones、Dirección General de la Policía - アグリゲーターによるスクレイピングではありません。
- レジストリに公式の顔写真がある場合は生体顔照合。 追加の連携作業なしで、OCRより高い信頼度が得られます。
- 本番運用に耐えるレイテンシ。 エンドツーエンドでp95は通常1.5秒未満、四半期ごとの可用性は99.9%です。
対応地域
ハイライトされた国にカーソルを合わせると、その国で提供しているすべてのデータベース検証サービス、データ領域(ID、金融、生体、住所、通信など)、1回あたりの料金が表示されます。提供中の国はすぐに本番で利用でき、それ以外の国は、お客様のご要望に応じて順次対応します。データベース検証が実行される条件
データベース検証が推測で実行されることはありません。次の条件がすべて満たされた場合にのみ実行されます。- セッションで照会先の国が特定されたこと。本人確認の
issuing_stateから特定されるか、ワークフローに本人確認ステップがない場合は、データベース検証ステップに設定された単一の国から特定されます。 - その国で、ワークフローに少なくとも1つのデータベース検証サービスが有効になっていること。
- データベース検証ステップより前のステップが、選択したサービスに必要なすべての必須フィールドを提供したこと。
DATABASE_VALIDATION_NOT_APPLICABLE、利用できるはずなのに得られなかった場合はCOULD_NOT_PERFORM_DATABASE_VALIDATIONです。どちらも警告カタログに記載されています。
セッションのレビュー権限を持つチームメンバーは、コンソールのセッション詳細ページから不足しているフィールドを手動で入力でき、保存すると自動的にチェックが再実行されます。これはレビュー担当者の操作であり、エンドユーザーが行えるものではありません。書類に記載のないフィールドをユーザーに入力してもらうには、アンケート(またはDocument AIによる抽出、セッション作成時に渡す値)で入力を求め、後述のとおりデータベース検証ステップでマッピングします。
データベース検証に本人確認は不要
以前は、データベース検証ステップの前に本人確認ステップが必要でした。エンドユーザーのデータを取得する手段が、ID書類のOCRしか用意されていなかったためです。現在はそうではありません。各必須フィールドが、どのステップから供給できるかを宣言しており、サービスが必要とするすべてのフィールドをワークフロー内のステップが供給できれば、そのサービスが利用可能になります。
このため、顔生体サービスは、ワークフロー内にID書類がなくてもライブネス検知ステップだけで実行できます。納税者番号、電話番号、メールアドレスをキーにするサービスは、アンケートの回答、電話番号・メールアドレスの検証ステップ、Document AIの抽出結果のいずれかで条件を満たせます。
安全性を保つため、次の2つのルールがあります。
- 本人確認がないワークフローでは、データベース検証ステップに国をちょうど1つだけ設定する必要があります。 書類の
issuing_stateがない場合、どの国のレジストリを照会するかを一意に決められる手がかりはこれだけです。そのため、本人確認なしで複数の国を設定すると、推測で動くのではなく何も実行されません。 - 必須フィールドのチェックは変わりません。 実行時にフィールドが揃っていないサービスは、プロバイダーに照会する前にスキップされるため、問い合わせていないデータベースに課金されることはありません。
Document AIとアンケートのフィールドをマッピングする
Document AIの抽出フィールドやアンケートの質問には、Diditのキー名ではなくお客様のキー名を使用します。データベース検証の入力名(tax_number、date_of_birth、phoneなど)とキーが完全に一致する場合は自動でマッピングされ、設定は不要です。それ以外の場合は、ワークフローエディターのデータベース検証ステップに、まだ埋まっていないフィールド用のピッカーが表示されます。そこで、各フィールドを供給するDocument AIのフィールドキーまたはアンケートの回答に紐付けます。
コンソールでは、ワークフローがまだ実行できないサービスは、不足しているフィールドと、それを提供するステップという理由とともに無効状態で表示され、エディターがそのステップの追加を提案します。追加すると、それによって利用可能になるすべてのサービスがすぐに有効になります。
住所ベースのサービスでは、DiditがID書類の1つのaddressを、構造化された住所要素に自動で分割します。
スタンドアロンAPIを呼び出す場合は、1つの
addressか、これらの構造化フィールドのどちらでも送信できます。両方がある場合は構造化フィールドが優先されます。住所検索が必要なサービスには、address_element_1と、少なくとももう1つの住所要素が必要です。ワークフロー内のID書類または住所証明からDiditがこれらを導出できない場合、そのサービスはスキップされ、課金されません。
特定された国がまったく有効になっていない場合、ステップは警告も課金もなく、何も通知せずにスキップされます。

一致結果
有効な各サービスは、フィールドごとの検証結果を返します。
総合の
match_typeは次のようにまとめられます。
full_match— 要求したすべてのフィールドが、少なくとも1つの情報源と一致しています。partial_match— 一部が一致しています。ワークフローのルールに従ってレビューキューに回します。no_match— どの情報源もデータを確認できませんでした。通常は拒否します。
一致の判定方法(1×1 / 2×2)
「1×1」か「2×2」を事前に選んでいただく必要はなくなりました。これらは、入力データに完全一致した個別のサービスの数から導出されます。- 1×1の結果 — 1つのサービスが完全一致を返しました(単一の一次情報源がデータを確認)。
- 2×2の結果 — 2つ以上のサービスが完全一致を返しました(独立した裏付けがあり、表現できる最も高い信頼度)。
partialMatchAction / noMatchActionとの関係は、**一致方式**をご覧ください。
生体データベース検証
一部の国の住民登録簿は、生体テンプレート(顔写真または指紋)を保有しています。それが利用できる場合は、レジストリ照会とユーザーの自撮りによる生体顔照合を組み合わせます。- アルゼンチン(
arg_renaper) — 登録されているRENAPERの公式写真との生体顔照合。人口カバー率100%で、DNIを持つアルゼンチン国民全員がデータベースに登録されています。 - パナマ(
pan_cedula_sib、pan_cedula_sib_plus) — Tribunal Electoral SIBサービスに対する生体顔照合。SIB Plusは上位ティアで、より厳格な生体しきい値と、より豊富な一致メタデータを備えています。
selfieフィールドが必須です。セッションフローの中では、最も品質の高いライブネスの自撮りを再利用し、なければ書類の顔写真を使用します。セッションの外でスタンドアロンAPI(POST /v3/database-validation/、上記のモードB)を呼び出す場合は、JPEG/PNGをご自身で渡します。
グローバルIDエンリッチメント
glb_identity_enrichmentは、グローバルかつスタンドアロン専用のデータベース検証サービスです。メールアドレスまたは電話番号(あるいはその両方)から関連する人物(氏名、生年月日、住所、電話番号、メールアドレス、国民ID)を解決し、氏名の一致スコアを返します。結果は標準の結果コードMATCH / PARTIAL_MATCH / NO_MATCH / DOCUMENT_NOT_FOUNDにマッピングされます(対応するmatch_typeはfull_match / partial_match / no_match)。
書類の発行国ではなくメールアドレスや電話番号をキーとするグローバル(GLB)サービスであるため、ワークフロービルダーでは利用できません。issuing_stateにGLBを設定して、スタンドアロンAPIから直接呼び出してください。
設定
データベース検証は、コンソールでワークフローごとに設定します。国ごとに実行したい個別のサービスを選択すると、必須および任意の入力フィールドは、それらのサービスの和集合から導出されます。partial_matchとno_matchの結果に対するアクションは別に設定し、approve、review、declineのいずれかにできます。

提供状況の通知
政府レジストリなどの情報源は、時折ダウンします。データベースに接続できない間、そのデータベースに対するチェックは回答を返さず、課金されません。ワークフロー内では、サービスはREGISTRY_UNAVAILABLEになります。スタンドアロンAPIでは、同じ障害が次の3つのいずれかの形で届くため、HTTPステータスだけを見ずに、サービスごとの結果とdatabase_validation.errors[]の両方を確認してください。
200で、validations内の該当サービスにoutcome_code: "REGISTRY_UNAVAILABLE"が付く場合。Diditが報告できる結果を保持していたときです。200で、そのサービスがdatabase_validation.errors[]にcode: "empty_provider_response"、retryable: trueとして入る場合。利用できる回答がまったく得られず、選択した別のサービスは回答したときです。この場合、失敗したサービスはvalidationsとservices_usedから除かれるため、現れるのはerrors[]だけです。502で、validation_errors[].code: "empty_provider_response"とretryable: trueが付く場合。選択したどのサービスも利用できる結果を返さなかったときです(却下された入力と利用できない結果をご覧ください)。
statusは、回答したサービスに従うため、障害の指標としてはそれだけでは信頼できません。比較対象がなくなったリクエストはIn Reviewになりますが、複数のサービスを選択したリクエストは、情報源の1つが利用できなくても、別のサービスの一致によりApprovedで返ることがあります。リクエスト全体ではなく、errors[]にある失敗したサービスを再試行してください。
これらのいずれの形も、確認対象の本人について何かを示すものではありません。
Diditは実際のチェックの結果をデータベースごとに監視し、単発のリクエスト失敗ではなく中断が継続した場合に、組織へメールでお知らせします。
通知は、過去48時間にそのデータベースに対してチェックを実行したすべての組織のメンバーと請求担当者に送られます。設定は不要で、オプトインもありません。サンドボックスのトラフィックでは送信されません。また、送信されたデータが原因の失敗(却下または不正な形式の入力)や、お客様の組織が接続した認証情報で動作するサービスの失敗でも送信されません。フォールバックの情報源で回答されたチェックは利用可能として扱われ、明確な不一致も同様です。
料金 - 使った分だけお支払い
データベース検証は、サービスごとに公開されている料金で、成功したクエリごと・サービスごとに課金されます。料金は、1回の確認あたり**$0.05**(Junta Central Electoral経由のドミニカ共和国)から、最も高額な専門ソースの**$7.00までです。政府レジストリの照会の多くはUSD 0.20〜USD 0.30の範囲ですが、情報源自体の料金が高いため、かなり高額なものも少なくありません。フィンランドの国民ID(fin_national_id)は、成功したクエリ1回あたり$2.10**です。国の料金は、範囲ではなく、必ず料金表のその国の行で確認してください。月額の最低料金、契約期間の縛り、プラットフォーム利用料はありません。
サービスが結果を返した場合にのみ課金されます。入力データが不足してスキップされたサービスは課金されません。また、情報源への呼び出し自体が失敗したサービス(レジストリエラーまたはレジストリに接続できない状態: REGISTRY_ERROR / REGISTRY_UNAVAILABLE)も、クエリに回答がなかったことを意味するため、課金対象の結果にはなりません。
成功したレジストリクエリは、ワークフロー内で実行しても、スタンドアロンのPOST /v3/database-validation/ APIで実行しても、最初の1回から課金されます。料金は他のチェックと同様に、プランのクレジットまたはチャージ残高から支払われ、プランの割引はその料金全体に適用されます。料金ページをご覧ください。
➡️ データベース検証の料金 · サインアップしてAPIキーを取得