メインコンテンツへスキップ
Diditのデータベース検証は、本人のID情報を、その国の信頼できる一次情報源(そもそも書類を発行した国の住民登録簿、税務当局、選挙人名簿、信用情報機関、生体情報レジストリ)と照合します。各チェックは、フィールドごとの一致結果(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%です。
Academyの「検証結果の読み方」のレッスンでは、11:05からデータベース検証を取り上げ、完全一致、部分一致、不一致の結果を確認します。

対応地域

ハイライトされた国にカーソルを合わせると、その国で提供しているすべてのデータベース検証サービス、データ領域(ID、金融、生体、住所、通信など)、1回あたりの料金が表示されます。提供中の国はすぐに本番で利用でき、それ以外の国は、お客様のご要望に応じて順次対応します。
お探しの国が見当たらない場合は お問い合わせください。カタログでは60+の国・数百のサービスを管理しており、お客様のニーズに応じて有効化します。新しい連携は通常2〜3週間で稼働します。

データベース検証が実行される条件

データベース検証が推測で実行されることはありません。次の条件がすべて満たされた場合にのみ実行されます。
  1. セッションで照会先の国が特定されたこと。本人確認のissuing_stateから特定されるか、ワークフローに本人確認ステップがない場合は、データベース検証ステップに設定された単一の国から特定されます。
  2. その国で、ワークフローに少なくとも1つのデータベース検証サービスが有効になっていること。
  3. データベース検証ステップより前のステップが、選択したサービスに必要なすべての必須フィールドを提供したこと。
サービスが有効でも必須フィールドが得られなかった場合(たとえば、不鮮明なブラジルのRGからCPFを抽出できなかった場合)、そのサービスはスキップされ、課金されず、セッションに警告が記録されます。書類にそのサービスが照会に使う識別子が単に記載されていない場合は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のフィールドキーまたはアンケートの回答に紐付けます。 コンソールでは、ワークフローがまだ実行できないサービスは、不足しているフィールドと、それを提供するステップという理由とともに無効状態で表示され、エディターがそのステップの追加を提案します。追加すると、それによって利用可能になるすべてのサービスがすぐに有効になります。
活用例 - 書類に記載のない識別子。 ナイジェリアの国民IDサービスは、11桁のNINで照会しますが、アップロードされる書類にNINが記載されていないことが多く、ID書類だけに頼ると、多くのユーザーでチェックが対象外としてスキップされます。データベース検証ステップの前に、NINを尋ねるアンケートステップを置き、データベース検証ステップでnational_idをその質問にマッピングします。同じマッピングにより、銀行確認番号や法人登録番号のように、書類には一切記載されない識別子もワークフロー内で利用できるようになります。
住所ベースのサービスでは、DiditがID書類の1つのaddressを、構造化された住所要素に自動で分割します。 スタンドアロンAPIを呼び出す場合は、1つのaddressか、これらの構造化フィールドのどちらでも送信できます。両方がある場合は構造化フィールドが優先されます。住所検索が必要なサービスには、address_element_1と、少なくとももう1つの住所要素が必要です。ワークフロー内のID書類または住所証明からDiditがこれらを導出できない場合、そのサービスはスキップされ、課金されません。 特定された国がまったく有効になっていない場合、ステップは警告も課金もなく、何も通知せずにスキップされます。
ユーザーのデータを政府の身分登録簿と照合する、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から直接呼び出してください。
課金は1リクエストあたり$0.20です(プロバイダーが結果を返した場合のみ課金されます)。

設定

データベース検証は、コンソールでワークフローごとに設定します。国ごとに実行したい個別のサービスを選択すると、必須および任意の入力フィールドは、それらのサービスの和集合から導出されます。partial_matchとno_matchの結果に対するアクションは別に設定し、approve、review、declineのいずれかにできます。
国ごとのレジストリサービスと結果ルールを選択する、Diditのデータベース検証のコンソール設定

提供状況の通知

政府レジストリなどの情報源は、時折ダウンします。データベースに接続できない間、そのデータベースに対するチェックは回答を返さず、課金されません。ワークフロー内では、サービスは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キーを取得

すべてのサービス

関連ドキュメント

  • 一致方式 — 1×1 / 2×2の結果の導出方法と、それへの対応方法。
  • 結果コード — プロバイダーのレスポンスコードの一覧(死亡、未成年、書類が見つからない、生体の不一致など)と、セッションの判定へのマッピング。
  • 警告 — データ不足でサービスを実行できなかった場合に表示される内容。
  • レポート — 国、サービスID、利用量、単価、合計コストを含む、サービスごとの月次請求エクスポート。
  • 対応国 — 現在対応しているすべての国を一覧にした表。