メインコンテンツにスキップ
Diditが200万ドルを調達し、Y Combinator (W26)に参加
Didit
NFC eパスポートオンボーディング

eパスポートチップをタップして銀行レベルの本人確認を行います。

ユーザーはパスポートを電話にタップします。政府の署名が検証され、チップのポートレートがセルフィーを上回ります。5秒未満で銀行レベル。チップ読み取りあたり$0.15。

支援元
Y Combinator
GBTC Finance
Bondex
Crnogorski Telekom
UCSF Neuroscape
Shiply
Adelantos

世界中の2,000以上の組織から信頼されています。

映画のような暗い抽象的なNFC eパスポートのイラスト — 純粋な黒にDidit Blueの光る線が通された4つの浮遊する半透明のガラスパネル。各パネルには小さな抽象的なモチーフ(パスポートの輪郭、NFCアーク、指紋ループ、接触パッド付きのチップ長方形)が描かれています。

規制されたプラットフォームが負うもの

チップを読み取ります。署名を検証します。書類スキャンを打ち破ります。

eパスポートチップ上のデータは、発行国によって暗号的に署名されています。その署名チェーンを検証し、セルフィーを高解像度のチップポートレートと照合することで、書類が本物であるという銀行レベルの保証が得られます。DiditのNFCフローは5秒未満で実行され、NFCが利用できない場合はOCRにフォールバックし、iOS、Android、React Native、Flutter用のネイティブSDKが付属しています。

仕組み

サインアップから認証済みユーザーまで4ステップ。

  1. ステップ 01

    ワークフローを作成する

    ID、生体認証、顔照合、制裁、住所、年齢、電話、メール、カスタム質問など、必要なチェックを選択します。ダッシュボードでフローにドラッグするか、同じフローをAPIに投稿します。条件に基づいて分岐させたり、A/Bテストを実行したりできます。コードは不要です。

  2. ステップ 02

    統合する

    Web、iOS、Android、React Native、またはFlutter SDKを使用してネイティブに埋め込みます。ホストされたページにリダイレクトします。または、メール、SMS、WhatsAppなど、どこでもユーザーにリンクを送信するだけです。スタックに合ったものを選んでください。

  3. ステップ 03

    ユーザーがフローを通過する

    Diditは、カメラ、照明キュー、モバイルハンドオフ、アクセシビリティをホストします。ユーザーがフロー中に、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。2秒未満で結果が出ます。

  4. ステップ 04

    結果を受け取る

    リアルタイムの署名付きWebhookは、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースを同期させます。必要に応じてAPIをポーリングします。または、コンソールを開いてすべてのセッション、すべての信号を検査し、独自の方法でケースを管理します。

銀行レベル向けに構築 · インフラストラクチャのような価格設定

5つのチェック。オンボーディングされたユーザーごとに$0.50

NFCチップ読み取りは、ユーザーの電話で1つの追加ステップで、オンボーディングを書類スキャンレベルから銀行レベルに引き上げます。NFCが利用できない場合、ワークフローは自動的にMRZ + OCRにフォールバックします。
01 · NFCチップ読み取り

パスポートをタップします。チップを読み取ります。

ユーザーは視覚ページを読み取り(MRZがチップキーを導出)、書類を電話にタップすると、チップはデータグループ1(個人データ)、データグループ2(高解像度ポートレート)、データグループ11(個人詳細)を返します。チップ読み取りあたり$0.15。エンドツーエンドで2〜4秒。
NFC検証モジュール
02 · ICAO署名チェーン

政府の署名が検証されました。

パッシブ認証は、ICAO公開鍵ディレクトリを介して、チップの文書署名者証明書を国の署名CAに対して検証します。チップ認証とアクティブ認証は、サポートされている場合に実行されます。ICAO Doc 9303に準拠しています。
NFC検証モジュール
03 · チップポートレートとの顔照合

セルフィーがチップのポートレートと一致しました。

チップ上のDG2ポートレートは、視覚ページに印刷された写真よりもはるかに高解像度であり、ライブセルフィーと照合することで、より正確な結果が得られます。コサイン類似度 ≥ 0.85 → 合格、≥ 0.92 → 銀行レベル。1マッチあたり$0.05。
顔照合1:1モジュール
04 · パッシブ生体認証

セルフィーのアンチスプーフィング。

iBetaレベル1プレゼンテーション攻撃検出(PAD)認定済み。印刷された写真、スクリーンリプレイ、シリコンマスク、ディープフェイクを打ち破ります。単一の静止セルフィーで、チャレンジプロンプトはありません。1チェックあたり$0.10。
パッシブ生体検知モジュール
05 · AMLスクリーニング

チップで検証されたIDをスクリーニングします。

制裁、政治的要人(PEP)、1,300以上のリストにわたるネガティブメディア — 毎日更新され、14言語に対応。ヒットがあった場合、自動的にケースが開き、クリアランス前にオンボーディングをゲートします。
AMLスクリーニングモジュール
06 · MRZ + OCRへのフォールバック

NFCが利用できない場合のグレースフルフォールバック。

NFC非対応の電話、チップなしの書類、またはNFC許可拒否の場合 — 同じワークフローが、視覚ページでの高精度MRZ + OCRによるID検証($0.15)にフォールバックします。同じホストURL、同じWebhook、同じステータスです。
ID検証モジュール
統合する

1つのセッション。ネイティブSDK。数秒で銀行レベル。

NFCセッションを開きます。SDKがチップの読み取りを駆動します。署名された判定を読み取ります。
POST /v3/session/NFC
$ curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "wf_nfc_onboarding",
    "vendor_data": "user-42",
    "expected_country": "ES"
  }'
201作成済みネイティブSDKでURLを開く · NFCタップが起動します。
iOS / Android / React Native / Flutter SDKはすべてNFCをサポートしています。ドキュメント →
GET /v3/session/{id}/decision/決定
$ curl https://verification.didit.me/v3/session/$SESSION/decision/ \
  -H "x-api-key: $DIDIT_API_KEY"

# Decision payload (excerpted):
{ "nfc_verification": { "passive_authentication": "承認済み" },
  "顔": { "照合済み": "chip_portrait", "similarity_score": 0.94 } }
200OKmatched_against chip_portrait → eIDASグレードの保証。
NFCが利用できない場合、ワークフローはMRZ + OCRにフォールバックします。ドキュメント →
エージェント対応統合

NFC eパスポートのオンボーディングを1つのプロンプトで提供します。

Claude Code、Cursor、Codex、Devin、Aider、またはReplit Agentに貼り付けます。スタックを入力します。エージェントはNFCワークフローを構築し、ネイティブSDKを接続し、NFCが利用できない場合はMRZ + OCRにフォールバックし、署名されたWebhookを読み取ります。
didit-integration-prompt.md
You are integrating Didit's NFC e-passport reading into a regulated onboarding flow (bank, fintech, crypto exchange, eIDAS-grade public service). NFC chip reading lifts onboarding from document-scan-grade to bank-grade in one extra step on the user's phone.

Five obligations on every onboarding:

  1. Read the e-passport / e-ID chip via NFC — DG1 (MRZ), DG2 (portrait), DG11 (personal details).
  2. Verify the government signature chain — Passive Authentication (PA) against the ICAO Public Key Directory, Chip Authentication (CA), Active Authentication (AA).
  3. Match the live selfie to the high-resolution DG2 portrait extracted from the chip.
  4. Run Passive Liveness on the selfie — iBeta Level 1 anti-spoof certified, defeats printed photos, screen replays, masks, and deepfakes.
  5. Screen the chip-verified identity against sanctions, Politically Exposed Persons (PEP), and adverse-media lists.

Fallback automatically when NFC is unavailable (no chip, NFC blocked by iOS or by user permission, chip damaged): the workflow drops to high-accuracy MRZ + OCR on the visual page using ID Verification.

Pricing (verified live):
  - NFC Reading: $0.15 per chip read
  - ID Verification (fallback or always-on belt-and-braces): $0.15 per check
  - Passive Liveness: $0.10 per check
  - Face Match 1:1: $0.05 per match
  - AML Screening: $0.20 per check
  - Bundle (NFC + Liveness + Face Match + AML): $0.50 per onboarded user when NFC succeeds; $0.50 also when the workflow falls back to ID Verification
  - First 500 KYC verifications free every month, forever

PRE-REQUISITES
  - Production API key from https://business.didit.me (sandbox key in 60s, no card).
  - Webhook endpoint with HMAC SHA-256 verification using the X-Signature-V2 header and your webhook secret.
  - A workflow_id from the Workflow Builder bundling NFC Reading + ID Verification (fallback) + Passive Liveness + Face Match 1:1 + AML Screening.
  - The Didit hosted flow or the native SDKs (web SDK, iOS, Android, React Native, Flutter) — NFC chip reading requires the native NFC stack, so plain web-only deployments fall back to MRZ + OCR automatically.

STEP 1 — Create the NFC session

  POST https://verification.didit.me/v3/session/
  Headers:
    x-api-key: <your api key>
    Content-Type: application/json
  Body:
    {
      "workflow_id": "<your nfc onboarding workflow id>",
      "vendor_data": "<your user id, max 256 chars>",
      "callback_url": "https://<your-app>/onboarding/kyc/callback",
      "expected_country": "ES",
      "metadata": {
        "channel": "native_ios",
        "purpose": "high_assurance_onboarding"
      }
    }

  Response: 201 Created with the hosted session URL. Open it via the native SDK (iOS NFC requires CoreNFC entitlement) or in the hosted webview; the user taps the e-passport against the phone's NFC reader, the chip data is read in 2-4 seconds.

STEP 2 — The chip-read sequence (handled by the SDK / hosted flow)

  Inside the hosted flow, in this order:
    a. The user presents the data page so the device camera reads the Machine-Readable Zone (MRZ). The MRZ provides the BAC / PACE key needed to handshake with the chip.
    b. The user taps the passport to the phone. PACE (preferred) or BAC handshake establishes a secure session with the chip.
    c. The chip returns Data Group 1 (MRZ data — name, DOB, expiry, document number), Data Group 2 (the high-resolution portrait), and Data Group 11 (personal details where available).
    d. Passive Authentication verifies the Document Signer Certificate against the country's Country Signing CA via the ICAO Public Key Directory. Chip Authentication and Active Authentication run if supported by the issuing country.
    e. The user takes a single selfie (Passive Liveness, no challenge prompts).
    f. The selfie is matched 1:1 against the DG2 portrait.

STEP 3 — Read the signed webhook on completion

  Didit POSTs to your callback. Session statuses are Title Case With Spaces:

  Body (excerpted):
    {
      "session_id": "<uuid>",
      "vendor_data": "<your user id>",
      "status": "Approved",
      "nfc_verification": {
        "status": "Approved",
        "passive_authentication": "Approved",
        "chip_authentication": "Approved",
        "active_authentication": "Approved",
        "data_groups_read": [1, 2, 11]
      },
      "id_verification": { "status": "Approved", "document_type": "passport", "country_code": "ES" },
      "liveness": { "status": "Approved" },
      "face": { "status": "Approved", "similarity_score": 0.94, "matched_against": "chip_portrait" },
      "aml": { "status": "Approved", "hits": [] }
    }

  Session status enum (exact case):
    Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned

  Verify the X-Signature-V2 header BEFORE reading the body — HMAC SHA-256 of the raw bytes with your webhook secret.

STEP 4 — Decide

  Branch logic:
    Approved    → onboard the user with bank-grade assurance.
    In Review   → hold the account, wait for analyst webhook update.
    Declined    → refuse onboarding, log the decline reason.
    Resubmitted → user updated something; re-read the decision.

  When face.matched_against === "chip_portrait", you can mark the identity as eIDAS High-grade (Substantial / High depending on your local regulator's reading). When it falls back to "id_document_portrait" (the visual page), it's still bank-grade by document-scan standards but not chip-anchored.

STEP 5 — Fallback paths

  iPhones below iPhone 7, or any phone with NFC disabled, or a document without a chip (pre-2014 in some countries) → the workflow surfaces "NFC unavailable" and routes to the ID Verification + MRZ + OCR path. Same hosted URL, same webhook, same statuses. The fallback is configured in the Workflow Builder, not in your code.

  Some Android devices won't read every chip due to NFC antenna placement — Didit's iOS / Android SDKs surface a graceful retry hint before failing over to OCR.

STEP 6 — Ongoing monitoring

  Enable Ongoing AML at $0.07/user/year to keep the identity fresh. NFC re-reads aren't required for ongoing — the chip data was captured at onboarding and the binding is permanent for the document's validity period.

WEBHOOK EVENT NAMES
  - status.updated — session status changed.
  - data.updated — session data changed (resubmission, NFC retry, ongoing AML hit).

  Verify X-Signature-V2 on every payload. The webhook secret is per-environment — sandbox key is separate from production.

CONSTRAINTS
  - Session statuses use Title Case With Spaces (Approved, In Review).
  - NFC chip reading requires the native NFC stack — iOS, Android, React Native, Flutter SDKs handle it; pure web falls back to MRZ + OCR.
  - The chip portrait (DG2) is far higher-resolution than the visual page — matching the selfie to it is meaningfully more accurate than matching to a phone-camera-captured ID photo.
  - Document Signer Certificate trust is anchored to the ICAO Public Key Directory; some countries (eg. small island states) do not publish to the PKD and will return a Passive Authentication warning rather than Approved.
  - Default record retention is 5 years post-relationship per the EU AML package.

Read the docs:
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/sessions-api/retrieve-session
  - https://docs.didit.me/core-technology/nfc-verification/overview
  - https://docs.didit.me/core-technology/face-match/overview
  - https://docs.didit.me/integration/webhooks

Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
さらに詳しい情報が必要ですか?モジュールの全ドキュメントをご覧ください。docs.didit.me →
設計によるコンプライアンス

ワンクリックで新しい国を開拓。 私たちは大変な作業を行います。

私たちは現地の子会社を開設し、ライセンスを確保し、侵入テストを実施し、認証を取得し、すべての新しい規制に準拠します。新しい国で検証を出荷するには、トグルを切り替えるだけです。220以上の国が稼働しており、四半期ごとに監査と侵入テストが行われています — EU加盟国の政府が対面検証よりも安全だと正式に認めた唯一のIDプロバイダーです。
セキュリティ&コンプライアンスの書類を読む
EU金融サンドボックス
Tesoro · SEPBLAC · BdE
ISO/IEC 27001
情報セキュリティ · 2026
SOC 2 · Type I
AICPA · 2026
iBeta Level 1 PAD
NIST / NIAP · 2026
GDPR
EU 2016/679
DORA
EU 2022/2554
MiCA
EU 2023/1114
AMLD6 · eIDAS 2.0
設計によりEUに準拠

証明番号

証明番号
  • $0.00
    NFCチップ読み取りごとに — 政府署名が検証されます。
  • 2-4s
    エントリーレベルのAndroidでのタップから判定までのチップ読み取り時間。
  • <0s
    チップポートレートに対するセルフィー顔照合。
  • 0
    毎月、すべてのアカウントで無料の検証。
3つのティア、1つの価格表

無料で開始。従量課金。エンタープライズへ拡張。

毎月500回の無料検証、永久に。本番環境では従量課金。エンタープライズではカスタム契約、データレジデンシー、SLA(サービスレベル契約)。
無料

無料

月額$0。クレジットカード不要。

  • 無料KYCバンドル(ID検証 + パッシブ生体検知 + 顔照合 + デバイス&IP分析) — 毎月500回
  • ブロックリスト登録ユーザー
  • 重複検出
  • すべてのセッションで200以上の不正信号
  • Diditネットワーク全体でのKYCの再利用
  • ケース管理プラットフォーム
  • ワークフロービルダー
  • 公開ドキュメント、サンドボックス、SDK、MCP(Model Context Protocol)サーバー
  • コミュニティサポート
最も人気
従量課金

従量課金制

使用した分だけお支払いください。25以上のモジュール。モジュールごとの公開価格、月額最低料金なし。

  • $0.33で完全なKYC(ID + 生体認証 + IP / デバイス)
  • 10,000以上のAMLデータセット — 制裁、PEPs、ネガティブメディア
  • データベース検証のための1,000以上の政府データソース
  • トランザクションあたり$0.02でトランザクション監視
  • 企業あたり$2.00でライブKYB
  • チェックあたり$0.15でウォレットスクリーニング
  • ホワイトラベル検証フロー — あなたのブランド、私たちのインフラ
エンタープライズ

エンタープライズ

カスタムMSA & SLA。大量の取引と規制プログラム向け。

  • 年間契約
  • カスタムMSA、DPA、SLA
  • 専用のSlackおよびWhatsAppチャネル
  • オンデマンドの手動レビュー担当者
  • 再販業者およびホワイトラベルの条件
  • 独占的な機能とパートナー統合
  • 指名されたCSM、セキュリティレビュー、コンプライアンスサポート

無料で開始 → チェック実行時のみ支払い → カスタム契約、SLA、またはデータレジデンシーのためにエンタープライズをアンロック。

FAQ

よくある質問

本人確認と不正対策のためのインフラ。

KYC、KYB、取引モニタリング、ウォレットスクリーニングのための単一API。5分で統合。

AIにこのページの要約を依頼する