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


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

SMS OTPが廃止される理由
PSD3では、強力な顧客認証(SCA)要素としてのSMSワンタイムパスワードが段階的に廃止されます。 Diditのデバイスに紐付けられた生体認証SCAは、SIMスワップ、リアルタイムフィッシング、SS7傍受を阻止します。 認証あたり$0.13、2秒未満の判定時間、ダイナミックリンク対応。毎月500回まで無料で検証できます。
ID、生体検知、顔照合、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェックを選択します。それらをダッシュボードでフローにドラッグするか、同じフローをAPIにポストします。条件分岐やA/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込むか、ホストされたページにリダイレクトします。または、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送信するだけです。お使いのスタックに最適な方法をお選びください。
Diditは、カメラ、照明の指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。結果は2秒未満で得られます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべての信号を検査し、ケースを管理できます。
Didit · SCA要素
知識
パスワード · PIN
任意
所持
紐付けられたデバイス
Didit ✓
生体情報
顔認証 · ライブネス
Didit ✓
Didit · 動的リンク
Didit · 攻撃マトリックス
Didit · 免除エンジン
Didit · デバイス&IP分析
Didit · 認証ごとのコスト
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_sca_biometric",
"vendor_data": "user-42",
"metadata": { "purpose": "login" },
// base64 KYC enrolment selfie, ≤ 1MB
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'ステータス:承認済み・拒否済み・審査中$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_sca_biometric",
"vendor_data": "user-42",
"metadata": { "amount": "247.50", "payee_account": "ES91…1332" },
// base64 KYC enrolment selfie, ≤ 1MB
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'検証のため、金額と受取人をウェブフックでエコーYou are integrating Didit's Strong Customer Authentication into a payment service provider, bank, EMI, or wallet to satisfy PSD3 / the Payment Services Regulation (PSR). Two factors in one prompt:
1. Inherence — Biometric Authentication: Passive Liveness + Face Match 1:1 against the user's previously-enrolled KYC selfie.
2. Possession — Device & IP Analysis: 200+ real-time fraud signals binding the auth to the user's known device.
Pricing (verified live 2026-05-16):
- Biometric Authentication: $0.10 per auth
- Device & IP Analysis: $0.03 per auth
- Total: $0.13 per Strong Customer Authentication
- First 500 verifications free every month, forever
- Re-uses the enrolled selfie from the original KYC — no re-enrolment
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60 seconds, no credit card).
- Webhook endpoint with HMAC SHA-256 verification of the X-Signature-V2 header.
- A workflow_id from the no-code Workflow Builder configured as a Biometric Authentication workflow (Passive Liveness + Face Match 1:1 + Device & IP Analysis).
- The user has previously completed a Didit KYC (the same enrolled selfie backs every subsequent auth).
STEP 1 — Open an authentication session
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body (for login auth):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/auth/callback",
"metadata": {
"purpose": "login",
"session_id": "<your front-end session id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor; OMIT only if the workflow is liveness-only>"
}
Body (for payment with dynamic linking):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/payment/callback",
"metadata": {
"purpose": "payment",
"amount": "247.50",
"currency": "EUR",
"payee_account": "ES9121000418450200051332",
"payee_name": "<merchant or recipient>",
"transaction_reference": "<your internal transaction id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor>"
}
Response: 201 Created with the hosted session URL. Push the URL to the user via deep-link / push notification / in-app sheet.
STEP 2 — User completes the biometric auth
The user sees one prompt on their phone (or via the Didit SDK in your native app). Three things happen on the same screen:
1. The amount + payee are displayed (dynamic linking — the user explicitly approves THIS amount to THIS payee for payments).
2. Passive Liveness defeats screen replay, printed photo, mask, deepfake.
3. Face Match 1:1 matches the new selfie against the enrolled KYC selfie.
Device & IP Analysis runs server-side on the session. Sub-2-second median verdict.
STEP 3 — Read the signed webhook on the auth verdict
Didit POSTs to your callback. Session statuses (Title Case With Spaces):
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"ip_analysis": { "status": "Approved", "vpn_detected": false, "datacenter_ip": false },
"metadata_echo": {
"amount": "247.50",
"payee_account": "ES9121000418450200051332"
}
}
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.
For payments, verify that metadata_echo.amount and metadata_echo.payee_account match the values you passed in. If they do not, REJECT the payment — it's a dynamic-linking violation.
STEP 4 — Branch on verdict
Approved → unlock the action (login, payment, account change).
In Review → hold the action, route to manual review queue.
Declined → block, log the attempt, surface a friendly "try again" to the user.
Resubmitted → the user re-submitted after a soft fail (poor lighting, occlusion); proceed if the latest status is Approved.
STEP 5 — Retrieve the full decision later
GET https://verification.didit.me/v3/session/{sessionId}/decision/
Headers:
x-api-key: <your api key>
Returns the full payload: liveness verdict (iBeta Level 1 anti-spoof certified), Face Match similarity score, device fingerprint, IP geolocation, VPN / proxy / datacenter flags, 200+ fraud-signal score, dynamic-linking echo, HMAC signature.
Use this for the audit-trail surface a regulator examines on Strong Customer Authentication coverage.
STEP 6 — Step up on risk
When Device & IP Analysis surfaces a high-risk signal (new device + high-value payment, VPN/proxy on a login, geolocation jump), your workflow can step up to:
- A separate hardware-key challenge (FIDO2 / WebAuthn)
- A trusted-beneficiary whitelist confirmation
- A manual-review hold
Encode the step-up policy in the no-code Workflow Builder — no redeploy required.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
Verify X-Signature-V2 on every payload.
CONSTRAINTS
- Session statuses use Title Case With Spaces. Never UPPER_SNAKE_CASE on a session.
- Dynamic linking is REQUIRED for payments — pass amount + payee in metadata, verify the echo on the webhook.
- The enrolled selfie that backs every SCA is the one captured during the user's original KYC — no separate enrolment step.
- PSD3 / PSR exemptions (low-value remote < EUR 30, contactless point-of-sale < EUR 50, recurring identical, trusted beneficiary, Transaction Risk Analysis tiers) are configured per workflow in the Business Console.
- Default record retention is 5 years per the EU AML and payments rules.
Read the docs:
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/sessions-api/retrieve-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は本人確認と不正対策のためのインフラです。私たちが製品を構築していたときに「こんなプラットフォームがあれば」と願ったものを実現しました。オープンで柔軟、そして開発者に優しいため、ブラックボックスとしてではなく、スタックの真の構成要素として機能します。
1つのAPIで、個人の確認(KYC、顧客確認)、企業の確認(KYB、企業確認)、暗号資産ウォレットのスクリーニング(KYT、取引確認)、およびリアルタイムでの取引監視をカバーします。このスタックは以下の特徴を備えています。
基盤となるフットプリント:48以上の言語で14,000以上の書類タイプ、1,000以上のデータソース、そしてすべてのセッションで200以上の不正シグナル。Diditのインフラは、すべてのセッションから動的に学習し、日々改善されています。
強力な顧客認証(SCA)は、EUの決済サービス規制によるルールで、顧客がアカウントにログインしたり、支払いを開始したりする際に、3つの独立した要素カテゴリのうち少なくとも2つを使用して本人確認を行う必要があると定めています。
3つのカテゴリは以下の通りです。
2つの要素は異なるカテゴリから取得する必要があります。パスワードとセキュリティの質問は両方とも知識であるためSCAではありません。パスワードと指紋はカテゴリが異なるためSCAです。
3つ目の要件である動的リンクは、支払いに対する2番目の要素が取引金額と受取人に一意に紐付けられている必要があると定めています。これにより、盗まれたコードが別の取引に対して再利用されることを防ぎます。
PSD3, Payment Services Directive 3の略, は、EUが2018年に導入されたPSD2のルールブックを2026年に改訂するものです。これと並行して、加盟国で国内法制化なしに直接適用されるPayment Services Regulation (PSR)があります。
PSD2からの主な変更点:
移行は段階的に進められており、ほとんどのSCA変更は最終採択後18〜24ヶ月で発効する見込みです。
フルフローは通常、エンドツーエンドで30秒未満で完了します, IDを手に取り、書類を撮影し、セルフィーを撮影すれば完了です。これは市場で最速です。 従来のKYCプロバイダーでは、同じフローで90秒以上かかることがよくあります。
バックエンドでは、Diditはユーザーがセルフィーを完了した瞬間からウェブフックが発火するまでの結果を、p99で2秒未満で返します。モバイルキャプチャは、低速な電話やネットワーク向けに最適化されています。プログレッシブ画像圧縮、遅延SDKロード、そしてユーザーがウェブから開始した場合のQRコードによるデスクトップから電話へのワンタップハンドオフなどです。
SCAが必要な取引(デフォルト):
免除される取引(PSD3はPSD2の免除のほとんどを維持しますが、しきい値を厳格化します):
免除の計算を正しく行うことは、ほとんどのチームが行うSCA最適化作業の中で最も効果が高いものです。適切に適用すれば、不正を増加させることなく認証の摩擦を減らすことができます。
すべてのセッションは7つの明確なステータスのいずれかに分類されるため、コードは常に何をすべきか把握できます。
Approved, すべてのチェックに合格しました。ユーザーを次のステップに進めます。Declined, 1つ以上のチェックに失敗しました。ユーザーは、フロー全体を再実行することなく、特定の失敗したステップ(例:セルフィーの再撮影)を再提出できます。In Review, コンプライアンスレビューのためにフラグが立てられました。コンソールでケースを開き、すべてのシグナルを確認し、承認または却下を決定します。In Progress, ユーザーはフローの途中にいます。Not Started, リンクは送信されましたが、ユーザーはまだ開いていません。長時間放置されている場合はリマインダーを送信します。Abandoned, ユーザーはリンクを開きましたが、時間内に完了しませんでした。再エンゲージするか、期限切れにします。Expired, セッションリンクの有効期限が切れました。新しいセッションを作成します。署名付きウェブフックはすべてのステータス変更時に発火するため、データベースは常に同期されます。AbandonedおよびDeclinedセッションは無料です。
本番データは、デフォルトでAmazon Web Services上の欧州連合内で処理および保存されます。 企業契約では、規制当局が要求する管轄区域のために代替リージョンをリクエストできます。
あらゆる場所で暗号化。 すべてのデータベース、オブジェクトストレージ、バックアップにおいて、保存データはAES-256で暗号化されます。すべてのAPIコール、ウェブフック、ビジネスコンソールセッションにおいて、転送データはTransport Layer Security 1.3で暗号化されます。生体認証データは、個別のカスタマーマスターキーで暗号化されます。
保持期間は自由に管理できます。 デフォルトの保持期間は無期限(無制限)ですが、アプリケーションごとに30日から10年の間で短く設定することも可能です。また、ダッシュボードまたはAPIからいつでも個々のセッションを削除できます。
認証:SOC 2 Type 1(Type 2監査進行中)、ISO/IEC 27001:2022、iBeta Level 1 PAD、およびスペインのTesoro / SEPBLAC / CNMVからの公式証明書により、Diditのリモート本人確認は対面での確認よりも安全であることが示されています。詳細レポートは/security-complianceをご覧ください。
Diditは、本人確認インフラストラクチャにとって重要な規制当局の要件にデフォルトで準拠しています。
詳細なメモ、すべての証明書、すべての規制当局からの書簡は/security-complianceをご覧ください。
3つの統合パスがあります。お使いのスタックに合うものをお選びください。
3つすべてで同じダッシュボード、同じ請求、同じ成功報酬型料金です。ステップバイステップガイドはdocs.didit.me/integration/integration-promptをご覧ください。
どのプラットフォームでも同じPOST /v3/session/ APIを使用しますが、ユーザー向けのキャプチャ方法が異なります。
ユーザーがKYC時に登録した同じ生体認証テンプレートが、すべての認証をサポートします。再登録や個別のフローは不要です。
はい、同じ認証バンドルで、ほとんどの同等のグローバル規制に対応しています。
1つのAPI、1つの認証バンドルで、すべての管轄区域に対応します。免除の計算は変わりますが、技術的な契約は変わりません。
すべての認証は、ビジネスコンソールからエクスポート可能な署名付き証拠記録を生成します。
PendingからApprovedまたはDeclinedまでのすべてのステップの状態遷移、エスカレーションされた場合はレビュー担当者のメモを含むすべての記録は欧州連合(EUデータセンター)に保存され、サブスクリプションが有効な間は無期限に保持されます。デフォルトの記録保持期間は、EUのAMLおよび決済規則に基づき5年間ですが、監督者の指示により延長可能です。