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


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

再利用可能なIDがもたらすもの
すべてのDidit KYCは、署名付きの再利用可能なIDクレデンシャルをユーザーのウォレットに発行します。 すべての受け入れプラットフォームは、選択的開示により無料で検証します。 一度の認証で、Diditを受け入れるすべてのビジネスで利用可能。毎月500件の認証が無料です。
ID、生体認証、顔照合、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェックを選択します。ダッシュボードでフローにドラッグ&ドロップするか、同じフローをAPIに投稿します。条件分岐やA/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込みます。ホストされたページにリダイレクトすることも、メール、SMS、WhatsAppなど、どこでもユーザーにリンクを送信するだけでも可能です。あなたのスタックに合った方法を選んでください。
Diditは、カメラ、照明の指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合します。結果は2秒未満で得られます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも、コンソールを開いてすべてのセッション、すべての信号を検査し、ケースを管理することもできます。
Didit · ワンタイム認証
ステップ 5 / 5
ウォレットに追加
Didit · 選択的開示
Didit · ARF相互運用
Didit · トラストトライアングル
01
発行者
KYC後に署名
02
保有者
ウォレットに保管
03
検証者
利用時に検証
フロー
発行者がクレデンシャルに署名 → ホルダーがウォレットに保存 → 検証者がフィールドを要求 → ホルダーが開示を承認 → 検証者が開示されたフィールドのみの署名を検証。
Didit · 継続的な更新
Didit · コストモデル
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_accept_reusable",
"vendor_data": "user-42",
"metadata": { "request_fields": ["full_name", "age_over_18"] }
}'ホスト型フローがクレデンシャルを検出、または完全なKYCを実行$ curl https://verification.didit.me/v3/session/$SID/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
# 開示されたフィールドと発行者チェーンを返します
# reusable_identity.presented が true の場合。
# 完全なKYCエビデンスパックを返します
# 新規KYCが実行された場合。ステータス:承認済み・審査中・却下・期限切れYou are integrating Didit's Reusable Identity / eIDAS 2.0 acceptance into your platform. Two flows:
1. Issue — when a new user runs a full KYC on your platform, they leave with a Didit-signed Reusable Identity credential in their wallet (the Didit app or any EU Digital Identity Wallet).
2. Accept — when a user arrives at your platform already holding a Didit-signed credential, the session detects it and short-circuits, returning Approved without re-running the full KYC.
Bundle pricing (verified live 2026-05-16):
- First verification (issuance side): $0.33 per user (Sessions API full KYC bundle)
- Issuance: free — the signed credential is included with every KYC
- Reuse on the verifying side: free, forever
- Selective disclosure: free
- Continuous Anti-Money Laundering (AML) refresh: $0.07 per user per year (automatic)
- First 500 verifications free every month, forever
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.
HMAC-SHA256 verification MUST run against the raw body bytes (the raw payload as Didit sent it) BEFORE any JSON parsing — re-serialising the parsed body changes whitespace and key order, which invalidates the signature. - A workflow_id from the no-code Workflow Builder with:
* ID Verification + Passive Liveness + Face Match 1:1 + Device & IP Analysis + AML Screening (for issuance)
* Reusable Identity acceptance turned on (for acceptance — toggle in the Workflow Builder)
- Optional: the Didit mobile SDK (iOS / Android / React Native / Flutter) for native deep-link wallet handoff.
STEP 1 — Open a session that accepts a Reusable Identity if presented
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<wf id with Reusable Identity acceptance on>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/onboarding/callback",
"metadata": {
"purpose": "platform_onboarding",
"request_fields": ["full_name", "age_over_18", "country_of_residence"]
}
}
Optional in body: declare the exact fields you need disclosed via metadata.request_fields. Didit's hosted flow will prompt the user to approve only those specific fields when they present a Reusable Identity credential.
Response: 201 Created with the hosted session URL. Redirect the user.
STEP 2 — The hosted flow detects (or runs) the verification
Two paths from this one endpoint:
Path A — User has a Didit-signed credential
- The hosted flow detects the credential via a wallet-handoff prompt (universal link on mobile, popup-bridge on desktop)
- The user approves the disclosure of the requested fields
- Didit validates the issuer signature + credential freshness server-side
- Session returns Approved with the disclosed fields populated on the decision payload
- Cost: $0 on the verifying side
Path B — User does NOT have a credential
- The hosted flow runs the full KYC bundle (ID + Liveness + Face Match + Device & IP + AML)
- At completion, Didit issues a Reusable Identity credential to the user's wallet
- Session returns Approved with the full decision payload
- Cost: $0.33 on the verifying-and-issuing side
Same endpoint, same webhook, same status enum. The path is transparent to your back-end.
STEP 3 — Read the signed webhook
Didit POSTs to your callback. Session statuses (Title Case With Spaces):
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"id_verification": { "status": "Approved" },
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"ip_analysis": { "status": "Approved" },
"aml": { "status": "Approved", "hits": [] },
"reusable_identity": {
"presented": true,
"issuer": "<issuing-platform name>",
"issued_at": "<timestamp>",
"disclosed_fields": ["full_name", "age_over_18", "country_of_residence"]
}
}
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.
When reusable_identity.presented is true, the user re-presented an existing credential and the verification was free; when false, a fresh KYC was run and billed at $0.33.
STEP 4 — 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 including: document scan + extracted Machine-Readable Zone (MRZ) data, biometric similarity, AML hits, device + IP risk signals, 200+ fraud signals, HMAC signature, and (if presented) the credential issuance chain.
Same evidence pack regardless of issuance vs reuse — the verifier never sees less than a fresh KYC would deliver.
STEP 5 — Continuous AML monitoring is automatic
Every approved user (issued OR presented) is re-screened daily against 1,300+ sanctions, PEP, and adverse-media lists at $0.07 per user per year on heavy-volume accounts. When a previously-clean user crosses an AML threshold, the credential's AML field is updated automatically; every receiving platform sees the refreshed status on next presentation.
When the user revokes a credential from their wallet, your receiving platform's webhook fires with status: Expired and the credential is dropped from the user's account.
STEP 6 — Selective disclosure at presentation time
Pass the exact fields you need via metadata.request_fields at session creation. Recommended minimum-disclosure patterns:
- Age-gate (UK Online Safety Act, France SREN): ["age_over_18"]
- Country-gate: ["country_of_residence"]
- Full name + verified-human: ["full_name", "verified_human"]
- AML-clear gate (lending): ["aml_clear", "full_name"]
- Full identity (banking, payments): ["full_name", "date_of_birth", "address", "document_number", "aml_clear"]
The user sees a single approval prompt listing the requested fields. Anything not listed is never disclosed to your platform.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook (verify X-Signature-V2 HMAC SHA-256).
- Credential lifecycle: status: Expired fires when a holder revokes the credential.
CONSTRAINTS
- Session statuses use Title Case With Spaces. Don't UPPER_SNAKE_CASE them.
- Reusable Identity acceptance is OFF by default; turn it on in the Workflow Builder.
- Selective disclosure is the privacy default — fields not in metadata.request_fields are never returned, even if the credential carries them.
- Default record retention is 5 years post-relationship per the EU AML package.
- 200+ fraud signals are evaluated on every session, issued or presented, at no extra cost.
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/reusable-kyc/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.月額$0。クレジットカード不要。
使った分だけお支払い。25以上のモジュール。モジュールごとの公開価格、月額最低料金なし。
カスタムMSA & SLA。大量利用や規制対象プログラム向け。
無料で開始 → チェック実行時のみ支払い → カスタム契約、SLA、データレジデンシーが必要な場合はエンタープライズプランへ。
DiditはIDと不正対策のためのインフラです。私たちが自社製品を開発していたときに「こんなプラットフォームがあれば」と願ったものを実現しました。オープンで柔軟、そして開発者に優しいため、ブラックボックスとしてではなく、お客様のスタックの真の構成要素として機能します。
1つのAPIで、個人の本人確認(KYC、顧客確認)、企業の本人確認(KYB、企業確認)、暗号資産ウォレットのスクリーニング(KYT、取引確認)、およびリアルタイムの取引監視をカバーします。このスタックは以下を念頭に構築されています。
基盤となるフットプリント:14,000以上の書類タイプを48以上の言語で、1,000以上のデータソース、そしてすべてのセッションで200以上の不正シグナルを処理します。Diditのインフラは、すべてのセッションから動的に学習し、日々改善されています。
eIDAS 2.0, electronic IDentification, Authentication and trust Services の略, は、EUのID規則を2024年に更新したものです。主な変更点は「欧州デジタルIDウォレット」(EUDIウォレットと略されることが多い)です。これは、2026年末までにすべてのEU市民および居住者が利用できるようになるスマートフォンアプリです。
このウォレットには、信頼できる機関によって発行され、暗号学的証明を伴って依拠当事者に提示される検証可能なクレデンシャル(デジタル運転免許証、検証済みID証明、学術卒業証書など)が格納されます。オプションで選択的開示(生年月日全体を明かすことなく18歳以上であることを証明するなど)も可能です。
企業にとって、eIDAS 2.0は、ウォレットで提示されたクレデンシャルを受け入れることと、ユーザーが携帯するクレデンシャルを発行することの両方に関わります。
義務的な受け入れは、セクターごとに順次導入されています。
義務リスト以外でも、すべてのEU企業はウォレットクレデンシャルを任意で発行および受け入れる選択肢があります。ほとんどの規制対象企業は、ユーザーエクスペリエンスが完全なKYCを再実行するよりも劇的に優れているため、これを選択するでしょう。
通常、エンドツーエンドで30秒以内に完了します。IDを手に取り、書類を撮影し、セルフィーを撮影すれば完了です。これは市場で最速です。従来のKYCプロバイダーでは、同じフローで90秒以上かかることが一般的です。
バックエンドでは、ユーザーがセルフィーを完了した瞬間からWebhookが発火するまで、Diditはp99で2秒未満で結果を返します。モバイルキャプチャは、低速な電話やネットワーク向けに最適化されています。プログレッシブ画像圧縮、遅延SDKロード、そしてユーザーがウェブから開始した場合のQRコードによるデスクトップから電話へのワンタップハンドオフなどが含まれます。
フェデレーテッドログインは、IDプロバイダーにアカウントが存在することを証明するもので、受け入れ側のビジネスはメールアドレスと名前を取得できます。これは規制要件を満たすレベルの本人確認ではありません。
再利用可能な本人確認には、以下の情報が含まれます。
検証側は、独自のKYCを実行するのと同等の規制上の安心感を得られます。しかも、コスト、手間、コンバージョン率の低下を伴いません。
すべてのセッションは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をご覧ください。
再利用可能な本人確認は、従来のKYCスタックに対するプライバシーのアップグレードです。
受け入れ側での処理の法的根拠は、GDPRにおける正当な利益です。ユーザーはサービスにアクセスするために明示的に資格情報を提示しています。Diditの標準データ処理契約(DPA)は、共同管理者関係をカバーしています。
3つのトリガータイプがあります。
受け入れプラットフォームは、ユーザーに更新を求める必要はありません。資格情報自体が鮮度シグナルを保持しており、古い資格情報は提示時に拒否されます。
検証者(受け入れ側のプラットフォーム)は、元の検証者が取得したのと同じ提示ごとの証拠パックと、発行の連鎖を取得します。
Diditは、EU加盟国の政府から正式な証明書を取得している唯一のKYCプラットフォームです。スペイン財務省、スペイン銀行、SEPBLACは共同で、このサービスが対面での検証よりも安全であると証明しました。この証明は、再利用されたすべての提示に適用されます。