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


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

BNPLが負うべきもの
BNPLプランは一度の決定ではなく、一連のプロセスです。Diditは、 チェックアウト時に借り手を審査し、すべての分割払いをTransactions APIに記録します。 さらに、プランの期間中、制裁対象者やPEP(政治的要人)に該当しないかを 自動的に再スクリーニングします。申し込み時に$0.33、分割払いごとに$0.02で、 継続的なAMLが含まれます。毎月500件の検証が無料です。
本人確認、生体認証、顔照合、制裁対象者スクリーニング、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェック項目を選択します。ダッシュボードでフローにドラッグ&ドロップするか、同じフローをAPIにポストするだけです。条件分岐やA/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込むことができます。ホストされたページにリダイレクトすることも可能です。あるいは、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送るだけでも構いません。お使いのスタックに合った方法をお選びください。
Diditは、カメラ、照明の指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正シグナルをリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。結果は2秒以内に得られます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、却下、または審査に送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべてのシグナルを検査し、ケースを管理することもできます。
Didit · BNPLオンボーディング
ステップ 3 / 5
本人確認
Didit · デバイス + IP
Didit · 継続的AML + TM
Didit · 引受監査
借主
引受
Didit · FPDシグナル
Didit · クロスボーダーBNPL
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_bnpl_apply",
"vendor_data": "borrower-42",
"metadata": { "plan_id": "plan-9182" }
}'{ ホストされたセッションURLを返します。 }$ curl -X POST https://verification.didit.me/v3/transactions/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"transaction_id": "plan-9182-inst-1",
"transaction_details": { "direction": "INBOUND", "amount": 125.00, "currency": "GBP", "currency_kind": "fiat" },
"subject": { "vendor_data": "borrower-42", "full_name": 「ジェイミー・エグザンプル」 },
「取引先」: { 「full_name」: 「マーチャント株式会社」 }
}'{ ステータス:承認済み · レビュー中 · 却下済み · ユーザー待ち · $0.02 }You are integrating Didit into a Buy-Now-Pay-Later (BNPL) checkout flow — Klarna / Affirm / Clearpay / Tabby / Tamara / Kueski archetype. The recipe handles three obligations on every BNPL plan:
1. Verify the borrower at checkout — identity, liveness, face match, device + IP, AML against 1,300+ sanctions / PEP / adverse-media lists. ONE call to the Sessions API.
2. Log every instalment charge — Transaction Monitoring catches velocity, structuring, and chargeback patterns. ONE call to the Transactions API per instalment.
3. Continuous AML — the borrower is rescreened automatically across the lifetime of the plan. NO separate endpoint to call.
Cost:
- Borrower Know Your Customer (KYC) bundle: $0.33 per application (Sessions API)
- Transaction monitoring per instalment charge: $0.02 (Transactions API)
- Ongoing AML monitoring: $0.07 per user per year (automatic on any session with AML enabled)
- 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 HMAC SHA-256 verification using the X-Signature-V2 header and your webhook secret.
- A workflow_id from the Workflow Builder that bundles ID Verification + Passive Liveness + Face Match 1:1 + Device & IP Analysis + AML Screening.
- Transaction Monitoring enabled in the Business Console (Transactions > Settings).
STEP 1 — Underwrite the borrower at checkout
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<wf id with KYC + AML bundle>",
"vendor_data": "<your borrower id, max 256 chars>",
"callback": "https://<your-app>/bnpl/apply/callback",
"metadata": {
"purpose": "bnpl_application",
"plan_id": "<your internal plan reference>",
"merchant_id": "<merchant id>",
"principal_amount": "500.00",
"currency": "GBP"
}
}
Response: 201 Created with the hosted session URL. Embed the URL inline in the BNPL widget at checkout. Sub-2-second median verdict on completion.
STEP 2 — Read the signed webhook on application completion
Didit POSTs to your callback. Session statuses are Title Case With Spaces:
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your borrower 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": [] }
}
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.
On Approved + clean AML + acceptable Device & IP, approve the plan and schedule the instalments. On Declined or AML hit, decline. On In Review or AWAITING_USER, hold the plan and route to your underwriting analyst queue.
STEP 3 — Log every instalment charge
POST https://verification.didit.me/v3/transactions/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body (required fields verified live 2026-05-16):
{
"transaction_id": "<plan-id>-instalment-1",
"transaction_category": "finance",
"transaction_details": {
"direction": "INBOUND",
"amount": "125.00",
"currency": "GBP",
"currency_kind": "fiat",
"action_type": "deposit"
},
"subject": {
"entity_type": "individual",
"vendor_data": "<your borrower id>",
"full_name": "<borrower full name>"
},
"counterparty": {
"entity_type": "individual",
"full_name": "<merchant or BNPL settlement counterparty>"
}
}
REQUIRED fields the API rejects if missing:
- subject.vendor_data + subject.full_name
- counterparty.full_name
- transaction_details.direction + currency + currency_kind + amount
Response shape (excerpted from a real successful 201):
{
"uuid": "<server transaction uuid>",
"txn_id": "<your transaction_id echoed back>",
"status": "APPROVED",
"score": 0,
"severity": null,
"cost_breakdown": {
"total_price": 0.02,
"items": [{ "usage_type": "transaction_monitoring", "price": 0.02 }]
}
}
Transaction status enum (exact case, UPPER_SNAKE_CASE): APPROVED | IN_REVIEW | DECLINED | AWAITING_USER.
When a transaction enters AWAITING_USER, Didit creates a linked remediation session automatically and returns a verification URL on the response.
Per-instalment cost: $0.02 (transaction-monitoring base).
Branch logic:
APPROVED → charge the card / pull the bank transfer.
IN_REVIEW → hold the instalment, route to analyst queue.
DECLINED → hard-fail the instalment, mark the plan delinquent.
AWAITING_USER → redirect the borrower to the remediation session URL.
STEP 4 — Continuous AML monitoring is automatic
Any session with AML enabled is rescreened DAILY by Didit's continuous monitoring at $0.07 per user per year. There is NO separate endpoint to call.
When a previously-approved borrower crosses an AML threshold, the session status changes to "In Review" or "Declined" automatically and your webhook fires the update. Hold the remaining instalments and route the case to your collections / fraud team.
STEP 5 — Returning borrowers re-use the verified identity
When a borrower comes back for a second plan, open a new session against their existing vendor_data — Didit reuses the previously verified document and face match where policy allows, and you avoid paying for the full bundle again. Pair with Reusable KYC for the lightest path.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Transactions: transaction.created · transaction.updated · transaction.status.changed · transaction.alert.generated.
- Verify X-Signature-V2 on every payload.
CONSTRAINTS
- Session statuses use Title Case With Spaces (Approved, In Review). Transaction statuses use UPPER_SNAKE_CASE (APPROVED, IN_REVIEW). They live in different APIs — don't mix them in the same code path.
- Never approve a BNPL plan before the X-Signature-V2 webhook lands with status Approved + AML clear.
- 200+ fraud signals are evaluated on every session at no extra cost — surface the score via the session decision payload, don't re-query.
- Default record retention is 5 years post-relationship per the EU AML package; UK FCA rules and similar national rules sit on top.
Read the docs:
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/transaction-monitoring/overview
- https://docs.didit.me/transaction-monitoring/transactions
- https://docs.didit.me/core-technology/aml-screening/continuous-monitoring-aml-screening
- 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のインフラは、すべてのセッションから動的に学習し、日々改善されています。
BNPLは、購入者が商品を今日持ち帰り、後で分割払いできるサービスです。通常は6週間で4回の支払いですが、より長い期間で利息が発生する場合もあります。
業界の状況:
規制の動向:BNPLはこれまで、緩やかな消費者信用規制のグレーゾーンに位置していました。2025年から2026年にかけて、英国FCA(金融行動監視機構)はBNPLを正式な規制下に置き、EU消費者信用指令II(CCD II)はBNPLに適用範囲を拡大し、米国の州貸付業者は既存のライセンス法を適用します。コンプライアンスの基準は現在、真の本人確認、真の与信審査、真の監視、真の監査パッケージとなっています。
BNPLは単なるカード処理ではなく、信用を供与するからです。
真の本人確認(ID + 顔 + AML)は、初回支払い不履行(FPD)を根本から削減します。購入者が本物の書類と本物の顔を提示することで、Diditは申請を単一の人間と結びつけ、単なるトークンではありません。
通常、IDの選択、書類の撮影、セルフィー撮影までの一連のプロセスは30秒以内に完了します。これは市場最速です。従来のKYCプロバイダーでは、同じプロセスに90秒以上かかるのが一般的です。
バックエンドでは、ユーザーがセルフィーを完了してからWebhookが起動するまでの時間を計測した結果、Diditはp99で2秒以内に結果を返します。モバイルでのキャプチャは、低速なスマートフォンやネットワーク向けに最適化されており、プログレッシブ画像圧縮、遅延SDKロード、そしてユーザーがWebから開始した場合のQRコードによるデスクトップからスマートフォンへのワンタップ連携が可能です。
もはやそうではありません。2026年頃の規制状況は以下の通りです。
コンプライアンスの基準はどの地域でも同じです。借り手の本人確認、制裁対象者およびPEPのスクリーニング、支払い計画全体の監視、5年以上の監査証跡の保持。Diditはこれらの基準をグローバルに提供します。
すべてのセッションは7つの明確なステータスのいずれかに分類されるため、お客様のコードは常に適切な処理を実行できます。
Approved, すべてのチェックに合格しました。ユーザーを次のステップに進めます。Declined, 1つ以上のチェックに失敗しました。ユーザーは、フロー全体を再実行することなく、特定の失敗したステップ(例:セルフィーの再撮影)を再提出できます。In Review, コンプライアンス審査のためにフラグが立てられました。コンソールでケースを開き、すべてのシグナルを確認し、承認または却下を決定します。In Progress, ユーザーはフローの途中にいます。Not Started, リンクは送信されましたが、ユーザーはまだ開いていません。長時間放置されている場合はリマインダーを送信します。Abandoned, ユーザーはリンクを開きましたが、時間内に完了しませんでした。再エンゲージするか、期限切れにします。Expired, セッションリンクの有効期限が切れました。新しいセッションを作成します。ステータス変更時には署名付きWebhookが起動するため、お客様のデータベースは常に同期されます。中断および却下されたセッションは無料です。
本番環境のデータは、デフォルトでAmazon Web Services上の欧州連合内で処理・保存されます。 規制当局の要件により、エンタープライズ契約では別の地域をリクエストできます。
あらゆる場所で暗号化。 すべてのデータベース、オブジェクトストレージ、バックアップにおいて、保存データはAES-256で暗号化されます。すべてのAPIコール、Webhook、ビジネスコンソールセッションでは、転送中に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つの連携パス, スタックに合うものを選択してください。
すべてのパスで同じダッシュボード、同じ請求、同じ成功報酬型料金です。ステップバイステップガイドはdocs.didit.me/integration/integration-promptをご覧ください。
すべての借り手に対してエクスポート可能なパックが生成されます。
borrower_pid, 借り手の仮名IDkyc_status, 承認済み / 拒否 / レビュー中 (Title Case With Spaces)aml_status, クリア / ヒット / 手動レビューdevice_risk, スコア + 主要な寄与シグナルplan_parameters, 分割回数、合計金額、通貨、マーチャントIDsignature, X-Signature-V2 HMAC SHA-256これをコレクション+コンプライアンスシステム、および規制当局向けレポートレイヤーにパイプします。EU AMLパッケージに基づき、デフォルトの保持期間は関係終了後5年間です。英国FCAのBNPL規則がこれに上乗せされます。Diditが取得しているSOC 2 Type 1、ISO/IEC 27001、および一般データ保護規則に準拠しています。
はい。同じ/v3/ APIがすべての市場をカバーします。
1つの契約、1つのAPIキー、1つのワークフロービルダー。ワークフローごとに地域別のルールを調整, Diditは220以上の国で14,000以上の文書タイプを処理し、エントリーレベルのAndroidで2秒未満の判定、ホストされたUIで48以上の言語に対応しています。
4つの接続で、午後のうちに完了します。
business.didit.meを開く, 60秒でサンドボックスキーを取得、クレジットカード不要POST /v3/session/を適用ステップに、署名付きWebhookを意思決定エンジンに接続POST /v3/transactions/をすべての分割払い請求に接続し、4つの値を持つステータスenumを処理Didit MCP (Model Context Protocol) サーバーは無料で含まれています, 上記の連携プロンプトをClaude Code、Cursor、Codex、Replit Agent、Devin、またはAiderに貼り付けると、エージェントがライブの/v3/ APIに対して全体をスキャフォールドします。