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




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

フィッシング耐性 · SIMスワップ防止
第二要素はユーザーの顔であり、サインアップ時に登録したポートレートと1対1で照合されます。 ライブネスは、同じフレームでの印刷/リプレイ/マスク/敵対的生成ネットワーク(GAN)攻撃をブロックします。 エントリーレベルのAndroidで2秒未満の判定。認証あたり$0.10。毎月500回の検証が無料です。
ID、ライブネス、顔照合、制裁、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェックを選択します。それらをダッシュボードのフローにドラッグするか、同じフローをAPIに投稿します。条件に基づいて分岐したり、A/Bテストを実行したりできます。コードは不要です。
当社のWeb、iOS、Android、React Native、またはFlutter SDKを使用してネイティブに埋め込みます。ホストされたページにリダイレクトします。または、メール、SMS、WhatsAppなど、どこでもユーザーにリンクを送信するだけです。スタックに合ったものを選んでください。
Diditは、カメラ、照明キュー、モバイルハンドオフ、アクセシビリティをホストします。ユーザーがフロー中に、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。2秒未満で結果が出ます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングします。または、コンソールを開いてすべてのセッション、すべての信号を検査し、ケースを独自の方法で管理します。
Didit · 生体認証
送金を確定する
顔を見せて認証してください
Didit · 顔照合 1:1
登録済み
類似性
0.96
一致ライブ
Didit · 攻撃マトリックス
Didit · ステップアップトリガー
Didit · Webhook · X-Signature-V2
ペイロード
{
"session_id": "<uuid>",
"vendor_data": "user-42",
"status": "Approved",
"face": {
"status": "Approved",
"similarity_score": 0.96
}
}Didit · 経済学
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_bio_2fa",
"workflow_type": "biometric_authentication",
"vendor_data": "user-42",
// base64 reference selfie, ≤ 1MB (omit for liveness-only)
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'portrait_imageに対してLIVENESS + FACE_MATCHを実行します。ドキュメント →$ curl -X POST https://verification.didit.me/v3/face-match/ \
-H "x-api-key: $DIDIT_API_KEY" \
-F "image_a=@live.jpg" \
-F "image_b=@enrolled.jpg"You are integrating Didit's Biometric 2FA into <my_stack>. Replace SMS one-time-password (OTP) on sensitive flows — login from a new device, large-value transfer, settings change, account recovery — with a sub-2-second face match against the user's enrolled portrait. Cheaper than SMS. Phishing-resistant. SIM-swap-proof.
1. Enrol the user's portrait ONCE at sign-up via the standard Know Your Customer (KYC) session.
2. On every sensitive action, open a Biometric Authentication session that runs Passive Liveness + Face Match 1:1 against the stored portrait. Verdict in sub-2-seconds.
Pricing (public):
- Biometric Authentication: $0.10 per authentication (Sessions API)
- Standalone Face Match 1:1: $0.05 per match (server-to-server)
- First 500 verifications free every month, forever
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60s, no card).
- Webhook endpoint with Hash-based Message Authentication Code (HMAC) SHA-256 verification using the X-Signature-V2 header.
- The user has previously enrolled — either via a full KYC session (recommended; the portrait is stored automatically and never leaves Didit) or via a portrait you supply on each re-auth.
- A workflow_id from the Workflow Builder. The workflow MUST contain LIVENESS, and the session must be opened with workflow_type = "biometric_authentication" (or use a workflow that has FACE_MATCH and pass a portrait_image at session creation).
STEP 1 — Enrolment (one-time, at user sign-up)
Run a standard KYC session at sign-up. Didit stores the portrait (the face captured during the liveness step) as the user's enrolled template, bound to vendor_data.
POST https://verification.didit.me/v3/session/
Body:
{
"workflow_id": "<your KYC workflow>",
"vendor_data": "<your user id>"
}
No additional code — once the user passes KYC, their enrolled portrait is ready for every future re-auth.
STEP 2 — Re-authentication (on every sensitive action)
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<your biometric_authentication workflow>",
"workflow_type": "biometric_authentication",
"vendor_data": "<the same user id used at enrolment>",
"callback": "https://<your-app>/2fa/callback",
"metadata": {
"reason": "<login_new_device | high_value_txn | settings_change | account_recovery>",
"amount": "<optional, for large-value transfers>"
},
"portrait_image": "<base64 JPEG of the user's enrolment selfie, ≤ 1 MB — REQUIRED when the workflow has FACE_MATCH active; OMIT for liveness-only mode>"
}
Response: 201 Created with the hosted session_url. Redirect the user to it. The hosted UI:
- Opens the front camera
- Captures one passive frame
- Runs Liveness + Face Match 1:1 against the user's enrolled portrait
- Returns the verdict in sub-2-seconds
STEP 3 — Read the signed verdict on the webhook
Body (excerpted for a passing re-auth):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved", "method": "PASSIVE", "score": 96 },
"face": {
"status": "Approved",
"similarity_score": 0.96
}
}
Verify X-Signature-V2 BEFORE trusting the body — HMAC SHA-256 of the raw bytes with your webhook secret.
Session status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.
Branch your application:
Approved → execute the action (sign in, release the transfer, save settings).
Declined → block the action, re-prompt with a higher-friction recovery path (support contact / KYC re-do).
In Review → hold; route to your operations queue.
Not Finished → user abandoned the capture; safe to re-prompt or fall back.
STEP 4 — Alternate path (server-to-server, when you already have the selfie)
If you already captured the selfie locally (native mobile SDK, in-app camera):
POST https://verification.didit.me/v3/face-match/
Headers:
x-api-key: <your api key>
Body (multipart/form-data):
image_a <the live selfie>
image_b <the enrolled portrait>
Response: similarity_score (0-1), status (Approved | Declined | In Review).
Use the standalone path only when you trust your client-side capture pipeline. For browser flows or any surface where the SDK is not embedded, always prefer the hosted session — Didit's liveness check is harder to defeat than a raw camera grab.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Always verify X-Signature-V2 on every payload.
CONSTRAINTS
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: LIVENESS, FACE_MATCH, ID_VERIFICATION, AML, IP_ANALYSIS, AGE_ESTIMATION.
- Method enum is UPPERCASE: PASSIVE, FLASHING, ACTIVE_3D.
- Auth header is x-api-key (lowercase, hyphenated).
- Webhook signature header is X-Signature-V2 (NOT X-Signature).
- Status casing matches exactly: Approved, Declined, In Review, Expired, Not Finished, Resubmitted, Kyc Expired, Abandoned.
- The biometric template is irreversible (a one-way hash) and stored on Didit's infrastructure. You never receive the raw template. Standard data-subject-deletion rules apply.
PRO TIPS
- Pair Biometric 2FA with Device & IP Analysis (bundled into the 200+ fraud-signal stack). A re-auth that originates from a brand-new device + a brand-new IP should always step up to face.
- For the strongest possible surface, swap method PASSIVE for ACTIVE_3D — a short motion challenge — on transfers above your operational risk threshold.
Read the docs:
- https://docs.didit.me/core-technology/biometric-auth/overview
- https://docs.didit.me/sessions-api/create-session
- 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.月額$0。クレジットカード不要。
使用した分だけお支払いください。25以上のモジュール。モジュールごとの公開価格、月額最低料金なし。
カスタムMSA & SLA。大量の取引と規制プログラム向け。
無料で開始 → チェック実行時のみ支払い → カスタム契約、SLA、またはデータレジデンシーのためにエンタープライズをアンロック。
DiditはIDと詐欺のためのインフラストラクチャです。私たちが自分で製品を構築していたときに存在してほしいと願っていたプラットフォームです。オープンで柔軟性があり、開発者に優しいため、統合するブラックボックスではなく、スタックの真の構成要素として機能します。
1つのAPIで、人々の検証(KYC、顧客確認)、企業の検証(KYB、企業確認)、暗号ウォレットのスクリーニング(KYT、取引確認)、およびリアルタイムでの取引監視をカバーします。このスタックは、以下の目的で構築されています。
その基盤となるフットプリント:48以上の言語で14,000以上のドキュメントタイプ、1,000以上のデータソース、およびすべてのセッションで200以上の詐欺信号。Diditインフラストラクチャは、すべてのセッションから動的に学習し、日々改善されています。
ネットワーク経由で送信されるコードではなく、ユーザーの顔を使用した第二要素認証です。第一要素はユーザーが知っているもの(パスワード、パスキー、マジックリンク)です。第二要素はユーザーがであるもの、つまり、ユーザーが以前に登録したポートレートと1対1で照合されるライブセルフィーです。
これは、アプリケーションフローにおけるSMSワンタイムパスワード(OTP)と同じ位置にありますが、コスト、セキュリティ、およびコンバージョンプロファイルが異なります。
4つのよく知られた攻撃クラスによって破られます。米国連邦捜査局(FBI)と英国国家サイバーセキュリティセンター(NCSC)は、機密性の高いフローにSMSを使用しないよう組織に指導するガイダンスを公開しています。
フルフローは通常、エンドツーエンドで30秒未満で完了します — IDを手に取り、書類を撮影し、セルフィーを撮影して完了です。これは市場で最速です。従来のKYCプロバイダーは、同じフローで通常90秒以上かかります。
バックエンドでは、Diditはユーザーがセルフィーを完了した瞬間からウェブフックが発火する瞬間まで、p99で2秒未満で結果を返します。モバイルキャプチャは、低速の電話や低速のネットワーク向けに調整されています。プログレッシブ画像圧縮、遅延ソフトウェア開発キットのロード、およびユーザーがウェブから開始した場合のQRコードを介したデスクトップから電話へのワンタップハンドオフが含まれます。
ほとんどのチームは、ユーザーの最初のKnow Your Customer (KYC) セッション中に登録を行います。ライブネスステップでキャプチャされたポートレートは、vendor_dataに紐付けられて保存され、その後のすべての再認証のテンプレートとして使用されます。
サインアップ時にKYCを実行しない場合でも、LIVENESS + FACE_MATCHのみを含むDiditワークフローに対して1回限りの登録セッションを実行できます。どちらのパスも1回あたり$0.10の費用がかかり、結果として得られるテンプレートは将来のすべての認証で再利用可能です。
すべてのセッションは7つの明確なステータスのいずれかに分類されるため、コードは常に何をすべきかを知っています。
Approved — すべてのチェックに合格しました。ユーザーを先に進めます。Declined — 1つ以上のチェックに失敗しました。ユーザーは、フロー全体を再実行することなく、特定の失敗したステップ(例:セルフィーの再撮影)を再提出できます。In Review — コンプライアンスレビューのためにフラグが立てられました。コンソールでケースを開き、すべての信号を確認し、承認または拒否を決定します。In Progress — ユーザーはフローの途中にいます。Not Started — リンクが送信されましたが、ユーザーはまだ開いていません。長期間放置されている場合はリマインダーを送信します。Abandoned — ユーザーはリンクを開きましたが、時間内に完了しませんでした。再エンゲージまたは期限切れにします。Expired — セッションリンクの有効期限が切れました。新しいセッションを作成します。署名付きウェブフックはすべてのステータス変更時に発火するため、データベースは常に同期されます。放棄されたセッションと拒否されたセッションは無料です。
本番データは、デフォルトでAmazon Web Services上の欧州連合で処理および保存されます。規制当局が要求する管轄区域については、エンタープライズ契約で代替リージョンを要求できます。
あらゆる場所での暗号化。 すべてのデータベース、オブジェクトストレージ、バックアップでAES-256による保存時暗号化。すべてのAPIコール、ウェブフック、Business ConsoleセッションでTransport Layer Security 1.3による転送時暗号化。生体認証データは、個別のCustomer Master Keyで暗号化されます。
保持期間は自由に管理できます。 デフォルトの保持期間は無期限(無制限)ですが、アプリケーションごとに30日から10年の間で短く設定することもできます。ダッシュボードまたはAPIからいつでも個々のセッションを削除できます。
認証:SOC 2 Type 1(Type 2監査進行中)、ISO/IEC 27001:2022、iBeta Level 1 PAD、およびスペインのTesoro / SEPBLAC / CNMVからの公式証明書により、Diditのリモート本人確認は対面での本人確認よりも安全であることが示されています。完全なレポートは/security-complianceでご覧いただけます。
Diditは、IDインフラストラクチャにとって重要な規制当局にデフォルトで準拠しています。
詳細なメモ、すべての証明書、すべての規制当局からの書簡:/security-compliance。
3つの統合パス — スタックに合ったものをお選びください。
同じダッシュボード、同じ請求、3つすべてで成功ごとの同じ料金。ステップバイステップガイドはdocs.didit.me/integration/integration-promptでご覧いただけます。
既存のワンタイムパスワードコールバック契約にドロップインできます。
workflow_type: "biometric_authentication"と、登録時に使用したのと同じvendor_dataを使用してPOST /v3/session/を呼び出します。session_urlにユーザーをリダイレクトします。X-Signature-V2ヘッダーを検証します。statusに基づいて分岐します — Approved(アクションを実行)、Declined(ブロック)、In Review(キューに入れる)、Not Finished(再プロンプト)。ほとんどのチームは、週末でSMSを顔認証に置き換えます。完全なエージェントが貼り付け可能なプロンプトは上記にあります。Model Context Protocol (MCP) サーバーは両方のインターフェースに対応しています。
顔照合1:1は、中程度の外見の変化(顔の毛、眼鏡、髪の色、照明)に対して堅牢です。認証ごとに返される類似度スコアは、モデルの信頼度を反映しています。
自動承認のしきい値を超えるユーザー(典型的なケース:劇的な体重変化、手術、長年の加齢)の場合、判定結果はIn Reviewを返し、運用キューにルーティングされます。標準的な回復パスは再登録セッションです。1回のKYC呼び出しでポートレートが更新され、次の認証では新しいテンプレートが使用されます。
固有性のカテゴリについてははい。欧州銀行監督機構の強力な顧客認証に関する規制技術基準は、生体認証属性(あなた自身であるもの)を、他の2つのカテゴリ(知識または所有)のいずれかと組み合わせた場合に有効な第二要素として認識しています。
完全なPSD2強力な顧客認証フローの場合、生体認証2FAをユーザーのパスワード(知識)またはデバイスに紐付けられたセッション(所有)と組み合わせます。署名されたDiditの判定結果は、固有性要素の監査証拠となります。