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


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

CAPTCHAが機能しなくなった理由
商用CAPTCHAソルバーファームは、hCaptchaやreCAPTCHA Enterpriseを わずかな費用で突破します。パッシブライブネスは、スクリプトにはないもの、つまり 実際のカメラの前にいる本物の人間を要求します。1ゲートあたり$0.10、2秒未満で判定、 毎月500回まで無料です。
ID、ライブネス、顔照合、制裁、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェックを選択します。ダッシュボードでフローにドラッグ&ドロップするか、同じフローをAPIにPOSTします。条件分岐やA/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込みます。ホストされたページにリダイレクトすることも、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送信するだけでも可能です。お使いのスタックに合った方法を選択してください。
Diditは、カメラ、照明キュー、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。2秒以内に結果が出ます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべての信号を検査し、ケースを管理することもできます。
Didit · サーフェスマップ
Didit · パッシブ・ライブネス
静止してください · 1/1
カメラを見てください
Didit · ボットベクトル防御
Didit · デバイス&IP分析
Didit · 再利用可能なKYC
初回パス
リプレイ
Didit · Webhook · X-Signature-V2
{
"session_id": "abc-…",
"vendor_data": "signup-918",
"status": "Approved",
"liveness": { "status": "Approved" }
}$ 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_bot_gate",
"vendor_data": "signup-918",
"metadata": { "surface": "signup_form" }
}'{ "session_url": "verify.didit.me/..." }// X-Signature-V2 verified upstream
if (payload.status === "Approved") {
allowSignup(payload.vendor_data);
} else if (payload.status === "却下") {
throttleIP(payload.ip_analysis.ip);
blockAndLog(payload.vendor_data);
}ステータス:承認済み・却下・審査中・未完了You are integrating Didit Passive Liveness as a bot-gate on a high-value action — sign-up, leaderboard submission, airdrop / token claim, referral payout, comment, or ticket queue. Bots cannot pass Passive Liveness because they have no face to present to the camera. One API call. One signed webhook. One decision.
WHY THIS SHAPE
- Bots scale because they cost nothing per attempt. CAPTCHA stops the dumbest ones but commercial solver farms beat hCaptcha and reCAPTCHA Enterprise at fractions of a cent per solve.
- Passive Liveness asks for something a script does not have: a live human face in front of a real camera. The model decides on one frame, in under two seconds, with no user interaction beyond "hold still".
- $0.10 per check (Passive Liveness module). 500 verifications free every month. Combine with $0.03 IP / device pre-screen to keep the camera off the obvious bots and the budget on real candidates.
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60 seconds, no credit card).
- A webhook endpoint with HMAC SHA-256 verification of the X-Signature-V2 header using your webhook secret.
- A Workflow Builder workflow containing the Passive Liveness module — optionally Device & IP Analysis pre-step.
- The high-value action wrapped in a server-side gate that defaults to BLOCK and only unblocks on a verified webhook with status: Approved.
STEP 1 — (Optional) Cheap IP / device pre-screen
Before opening a camera, score the network with Device & IP Analysis ($0.03 / call, under 100ms).
If the score is low and no datacenter / VPN / scripted-user-agent flags fire, run Step 2.
If the score is high or any of those flags fire, skip the liveness call and decline up-front — this saves the camera budget for plausible humans.
STEP 2 — Open a Passive Liveness session
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<wf id with the Passive Liveness module>",
"vendor_data": "<your action / user id, max 256 chars>",
"callback": "https://<your-app>/bot-gate/callback",
"metadata": {
"surface": "signup_form",
"action_id": "<your internal reference>"
}
}
Response: 201 Created with a hosted session URL. Redirect inline (web) or open in a Software Development Kit (SDK) webview (mobile). The action stays BLOCKED on your side until the signed webhook lands.
STEP 3 — Read the signed webhook
Didit POSTs the verdict. Verify X-Signature-V2 (HMAC SHA-256 of the raw body using your webhook secret) BEFORE reading the JSON.
Payload (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your action / user id>",
"status": "Approved",
"liveness": { "status": "Approved" }
}
Session status enum (exact case, Title Case With Spaces): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.
STEP 4 — Branch the action
Approved → allow the sign-up / claim / submission.
Declined → block the action. Log liveness warnings (image-only / virtual-cam / replay / deepfake) and throttle the source IP.
Not Finished → invite the user to retry with a fresh session URL.
Expired → session timed out. Resend the link.
Abandoned → the user closed the flow before completing. Resend the link.
STEP 5 — (Optional) Replay Reusable Know Your Customer (KYC) for known humans
If a user has previously completed a Didit-verified session, a fresh liveness check is not required for re-entry — they can replay their verified credential at no cost via Didit Reusable KYC. Use the user's existing session_id to confirm enrollment and skip Step 2. Free forever.
WEBHOOK EVENT NAMES
- Sessions: standard session webhook. One endpoint, status field tells you where in the lifecycle.
- Verify X-Signature-V2 (HMAC SHA-256) on every payload.
WHAT GETS BLOCKED
- Headless Chrome with scripted form submission
- Browser-automation farms (Puppeteer, Playwright, Selenium)
- Image-only submissions (no camera attached)
- Virtual-camera AI face injectors
- Pre-recorded screen replays
- Print or paper attacks
- Silicone / latex masks
- AI-generated deepfake faces
All independently tested at iBeta and certified at Level 1 Presentation Attack Detection (PAD) against the full ISO/IEC 30107-3 catalogue. Re-tested every year.
CONSTRAINTS
- Session statuses use Title Case With Spaces. Never use UPPER_SNAKE_CASE for session verdicts — that's the Transactions API.
- Default to BLOCK on the server. Only unblock when the verified webhook says Approved.
- 200+ fraud signals are evaluated on every session at no extra cost — read them off the decision payload, don't re-query.
Read the docs:
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/core-technology/liveness/overview
- https://docs.didit.me/core-technology/ip-analysis/overview
- 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は、本人確認と不正対策のためのインフラです。私たちが自社製品を開発していた時に「こんなプラットフォームがあれば」と願ったものを形にしました。オープンで柔軟、そして開発者に優しいため、単なるブラックボックスとしてではなく、お客様のスタックの真の構成要素として機能します。
単一のAPIで、個人の本人確認(KYC、顧客確認)、企業の本人確認(KYB、企業確認)、仮想通貨ウォレットのスクリーニング(KYT、取引確認)、およびリアルタイムでの取引監視をカバーします。このスタックは、以下の特長を備えています。
その基盤となるのは、14,000以上のドキュメントタイプ、48以上の言語、1,000以上のデータソース、そして全セッションにおける200以上の不正シグナルです。Diditのインフラは、すべてのセッションから動的に学習し、日々進化しています。
実際の人間が関与せずに、フォームを送信したり、支払いを受け取ったり、コメントを投稿したり、チケットを購入したりするあらゆるものを指します。一般的な形態は以下の通りです。
共通する特徴は、誰も画面を見ておらず、カメラの前に誰もいないということです。
CAPTCHAソルバーファームは、hCaptchaやreCAPTCHA Enterpriseを1解決あたりわずかな費用で突破します。経済的な状況は数年前に逆転しました, 1,000アカウントへの攻撃は、攻撃者にとってCAPTCHA自体の月額SaaS(Software-as-a-Service)料金よりも安価です。
より根深い問題は、CAPTCHAがテストするスキル(画像認識、文字認識、クリックパターン)が、現在では人間よりも機械の方が優れていることです。ボットゲートは、機械が持たないものをテストする必要があります。まさにそれが、実際のカメラの前にいる生身の人間の顔なのです。
エンドツーエンドの全プロセスは通常30秒未満で完了します。IDを手に取り、書類を撮影し、セルフィーを撮れば完了です。これは市場最速です。従来のKYCプロバイダーでは、同じフローで通常90秒以上かかります。
バックエンドでは、ユーザーがセルフィーを完了してからWebhookが起動するまでの時間を測定した結果、Diditはp99で2秒未満で結果を返します。モバイルキャプチャは、低速なスマートフォンやネットワーク向けに最適化されており、プログレッシブ画像圧縮、遅延SDKロード、ユーザーがWebから開始した場合のQRコードによるデスクトップからスマートフォンへのワンタップハンドオフが可能です。
一般的なあらゆるボット攻撃ベクトルに対応しています。
これらはすべてパッシブ・ライブネス層で検出されます。ボットが情報を供給する余地はありません。
すべてのセッションは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つの統合パスがあります。お客様のスタックに合ったものをお選びください。
3つのパスすべてで、同じダッシュボード、同じ請求、成功ごとの同じ料金体系です。ステップバイステップガイドはdocs.didit.me/integration/integration-promptをご覧ください。
いいえ。Diditで認証済みのセッションを通過したユーザーは、再利用可能なKYCを介して無料で認証情報を再利用できます。これは永続的に無料です。ユーザーの以前のsession_idを検索し、認証情報が有効であれば、ライブゲートをスキップします。
これにより、これまで認識していなかったトラフィックに対する摩擦(およびコスト)を抑えることができます。再訪する人間は即座に通過します。
2つの項目があります。
すべてのアカウントで毎月500回の認証が無料です。ほとんどのチームは数週間、無料枠内で利用しています。再利用可能なKYCを介した再訪ユーザーは永続的に無料です。最低利用料金、年間契約、シートごとの料金はありません。
単一のボットによる送信がチームの金銭的または評判上の損失につながるあらゆる場面で活用されています。
1つのワークフローで、あらゆるサービスに対応します。