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


世界中の2,000以上の組織から信頼されています。
英国Ofcom · フランスSREN · EU DSA
すべての訪問者にドキュメントアップロードを強制すると、完了率は25〜40%低下します。 Diditのアダプティブフローは、まず年齢推定を実行し、境界ケースのみを ドキュメントフォールバックにルーティングします。セルフィー判定は2秒未満、$0.10/チェックで、 ユーザーあたりの平均コストは約$0.115です。毎月500件の検証が無料です。
ID、ライブネス、顔照合、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェックを選択します。ダッシュボードでフローにドラッグするか、同じフローをAPIに投稿します。条件分岐やA/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKを使用してネイティブに組み込むことができます。ホストされたページにリダイレクトすることも、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送信することも可能です。お使いのスタックに合った方法を選択してください。
Diditは、カメラ、照明の指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。結果は2秒未満で得られます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべての信号を検査し、ケースを管理することもできます。
$ 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_age_gate_uk_fr",
"vendor_data": "user-42",
"callback": "https://app/age-gate/cb"
}'{ "session_url": "verify.didit.me/..." }$ curl https://verification.didit.me/v3/session/<id>/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
# Returns the path taken
{
"status": "Approved",
"liveness": { "age_estimation": 27.3 }
}ステータス:承認済み・審査中・却下・未完了You are integrating Didit's Age Verification recipe into <my_stack>. Selfie-first age estimation with an adaptive document fallback for the borderline tail. One Didit workflow. Two real endpoints.
1. Verify age on a selfie. ONE call to the Sessions API runs Age Estimation + Passive Liveness on the same passive frame.
2. Fall back to a document check ONLY when the estimate sits in the borderline band you define. Same Sessions API workflow handles the fallback automatically.
Bundle pricing (public):
- Age Estimation: $0.10 per check (Sessions API or standalone)
- ID Verification fallback: $0.15 per check, only when triggered
- Typical blended cost lands near $0.115 per user (~90% finish on the selfie, ~10% touch the document fallback)
- 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 and your webhook secret.
- A workflow_id from the Workflow Builder. The workflow must contain the AGE_ESTIMATION feature, and (recommended) the ID_VERIFICATION feature with adaptive_id_verification enabled so the borderline tail routes through automatically.
STEP 1 — Build the adaptive workflow once
POST https://verification.didit.me/v3/workflows/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_label": "age_gate_uk_fr",
"features": [
{ "feature": "AGE_ESTIMATION" },
{ "feature": "ID_VERIFICATION" }
],
"age_estimation_decline_threshold": 18,
"face_liveness_score_decline_threshold": 30,
"adaptive_id_verification": true
}
Notes:
- "AGE_ESTIMATION" and "ID_VERIFICATION" are exact, case-sensitive feature names.
- age_estimation_decline_threshold defaults to 18; set 21 for US alcohol, 19 for South Korea, etc.
- adaptive_id_verification = true tells Didit to invoke the document fallback automatically when the estimate sits inside the borderline band.
STEP 2 — Open an age-verification session per user
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<the workflow_id from step 1>",
"vendor_data": "<your internal user id>",
"callback": "https://<your-app>/age-gate/callback",
"metadata": {
"purpose": "age_gate",
"surface": "<the page or feature being gated>"
}
}
Response: 201 Created with the hosted session_url. Redirect the user to it. The hosted flow opens the front camera, captures one passive frame, runs Age Estimation + Passive Liveness in sub-2-seconds, and either returns a verdict or routes the user into the document fallback automatically.
STEP 3 — Read the signed webhook on session completion
Didit POSTs to your callback. Session statuses are exact Title Case With Spaces.
Body (excerpted for an Age Estimation only finish):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": {
"status": "Approved",
"method": "PASSIVE",
"score": 92,
"age_estimation": 27.3,
"warnings": []
}
}
Body (excerpted when the document fallback fired):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved", "age_estimation": 17.9, "warnings": [{ "code": "AGE_NOT_DETECTED" }] },
"id_verification": {
"status": "Approved",
"date_of_birth": "1998-03-21",
"age": 27,
"document_type": "Passport",
"issuing_state": "GBR"
}
}
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.
Warning catalog:
- AGE_BELOW_MINIMUM estimated or computed age below the threshold
- AGE_NOT_DETECTED unable to estimate age (lighting / quality)
- LOW_LIVENESS_SCORE passive-liveness score below threshold
- NO_FACE_DETECTED no face in the capture
- LIVENESS_FACE_ATTACK presentation attack suspected
- POSSIBLE_DUPLICATED_FACE same face previously verified
STEP 4 — Branch your surface on the final verdict
Approved → grant access to the gated surface.
Declined → render the regulator-required age-gate notice.
In Review → hold; an analyst case is open in the Business Console.
Not Finished → user abandoned; safe to re-prompt.
STEP 5 — Alternate path (server-to-server, when you already have the selfie)
POST https://verification.didit.me/v3/age-estimation/
Headers:
x-api-key: <your api key>
Body (multipart/form-data):
user_image <single passive selfie>
age_estimation_decline_threshold 18 (optional, integer)
face_liveness_score_decline_threshold 30 (optional, integer)
Branch on the borderline band yourself, then optionally call:
POST https://verification.didit.me/v3/id-verification/
Body (multipart/form-data):
front_image <required>
back_image <optional>
vendor_data <optional, your user id>
This path is useful for native onboarding apps that capture the selfie locally.
CONSTRAINTS
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: AGE_ESTIMATION, ID_VERIFICATION, LIVENESS, FACE_MATCH, AML, IP_ANALYSIS.
- 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.
- Reference image URLs are signed and expire in 60 minutes. Store only the verdict + score; never the biometric media unless retention is explicitly enabled for fraud defence.
- 200+ fraud signals are evaluated on every session at no extra cost — surface the score via the session decision payload, do not re-query.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Verify X-Signature-V2 on every payload.
Read the docs:
- https://docs.didit.me/core-technology/age-estimation/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は、本人確認と不正対策のためのインフラです。私たちが自社でプロダクトを開発していた時に「こんなプラットフォームがあれば」と願ったものを実現しました。オープンで柔軟、そして開発者に優しいため、単なるブラックボックスとしてではなく、お客様のスタックの真の構成要素として機能します。
単一のAPIで、個人の確認(KYC、顧客確認)、企業の確認(KYB、企業確認)、暗号資産ウォレットのスクリーニング(KYT、取引確認)、およびリアルタイムでの取引監視をカバーします。このスタックは以下の特長を備えています。
基盤となるフットプリントは、48以上の言語に対応した14,000以上のドキュメントタイプ、1,000以上のデータソース、そしてすべてのセッションで200以上の不正シグナルです。Diditのインフラは、すべてのセッションから動的に学習し、日々改善されています。
ほとんどの規制当局は、アダルトコンテンツ、オンラインギャンブル、アルコール、そして時にはソーシャルプラットフォームにおいて、非常に効果的な年齢確認を求めています。これは、平均的な未成年者が簡単に通過できないような、十分な精度を持つ方法を意味します。自己申告の生年月日チェックボックスでは不十分です。
ほとんどすべての規制当局が認める2つの方法は、年齢推定(モデルが顔写真を分析)と書類による年齢確認(パスポートや国民IDカードのアップロード)です。多くのチームは両方を導入し、より安価で摩擦の少ない顔写真によるパスを、年齢推定ステップでゲートしています。
現在、チームが対応を迫られている2つの新しい規制は、英国オンライン安全法(Ofcomが2025年7月に、英国のユーザーがポルノにアクセスできるすべてのサービスに対して施行を開始)とフランスのSREN法(CNILとArcomの規則がフランスからアクセスされるサイトに適用)です。
これらに加えて、EUデジタルサービス法は、大規模プラットフォームに対し未成年者へのリスク軽減を求めており、米国の一部の州(ユタ州、テキサス州、ルイジアナ州)ではアダルトコンテンツに対する年齢ゲート法が制定されています。これらはすべて、顔写真による年齢推定、政府発行の身分証明書アップロード、または第三者のIDウォレットという同じツールキットを認めています。
通常、エンドツーエンドの全フローは30秒未満で完了します。IDを手に取り、書類を撮影し、顔写真を撮影すれば完了です。これは市場で最速です。従来のKYCプロバイダーでは、同じフローに90秒以上かかることが一般的です。
バックエンドでは、Diditはユーザーが顔写真の撮影を終えてからwebhookが発火するまでの時間を測定し、p99で2秒未満で結果を返します。モバイルでのキャプチャは、低速なスマートフォンやネットワーク向けに最適化されています。プログレッシブ画像圧縮、遅延SDKロード、そしてユーザーがウェブから開始した場合でもQRコードを介してデスクトップからスマートフォンへワンタップで引き継ぎが可能です。
理由は2つあります。まず、規制当局は中央値ではなく、外れ値を重視します。モデルは17歳と19歳の区別には統計的に問題ありませんが、規制当局は20歳に見える16歳に対しても確実な確認を求めます。このようなケースでは、書類チェックがその証拠となります。
次に、コンバージョンです。すべての訪問者にパスポートのアップロードを強制すると、完了率は25〜40%低下します。顔写真優先で書類フォールバックのフローは、通常、ユーザーの90%をより安価で摩擦のないパスに誘導し、10%を書類ステップに誘導します。これにより、コンプライアンス体制を維持しつつ、はるかに優れたビジネス成果が得られます。
すべてのセッションは7つの明確なステータスのいずれかに分類されるため、お客様のコードは常に何をすべきかを知ることができます。
Approved, すべてのチェックに合格しました。ユーザーを先に進めます。Declined, 1つ以上のチェックに失敗しました。ユーザーは、フロー全体を再実行することなく、特定の失敗したステップ(例:顔写真を再撮影)を再提出できます。In Review, コンプライアンスレビューのためにフラグが立てられました。コンソールでケースを開き、すべてのシグナルを確認し、承認または却下を決定します。In Progress, ユーザーはフローの途中にいます。Not Started, リンクが送信されましたが、ユーザーはまだ開いていません。長時間放置されている場合はリマインダーを送信します。Abandoned, ユーザーはリンクを開きましたが、時間内に完了しませんでした。再エンゲージするか、期限切れにします。Expired, セッションリンクの有効期限が切れました。新しいセッションを作成します。ステータスが変更されるたびに署名付きwebhookが発火するため、お客様のデータベースは常に同期されます。AbandonedおよびDeclinedのセッションは無料です。
本番データは、デフォルトでAmazon Web Services上の欧州連合内で処理および保存されます。エンタープライズ契約では、規制当局が要求する管轄区域のために代替リージョンをリクエストできます。
あらゆる場所で暗号化。すべてのデータベース、オブジェクトストレージ、バックアップでAES-256による保存時暗号化。すべてのAPIコール、webhook、ビジネスコンソールセッションで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は、本人確認インフラにとって重要な規制当局の要件にデフォルトで準拠しています。
詳細なメモ、すべての証明書、すべての規制当局からの書簡は/security-complianceをご覧ください。
3つの統合パスがあります。お客様のスタックに合うものをお選びください。
すべてのパスで同じダッシュボード、同じ請求、同じ成功報酬型料金が適用されます。ステップバイステップガイドはdocs.didit.me/integration/integration-promptをご覧ください。
Diditは、英国OfcomとCNILがベンダーアンケートで最も頻繁に要求する認証を標準で提供しています。
これら4つはすべて監査パックに含まれており、プラットフォームの透明性通知に添付する準備ができています。
デフォルトでデータ最小化。顔写真はメモリ内で処理され、年齢判定とライブネススコアが永続化されます。不正対策のために保持が明示的に有効化されていない限り、元の画像は削除されます。保持期間はワークフローごと、リージョンごとに設定可能で、エンドユーザーは標準のデータ主体要求パスを通じて削除を要求できます。
当社は、お客様の生体認証データを販売、共有、または第三者のモデルのトレーニングに使用することはありません。完全なデータ処理条件はdidit.me/terms/businessでご確認いただけます。
顔写真の判定結果は3つのうちいずれかになります。
ステータスが変更されるたびに署名付きwebhookが送信されるため、最新の判定結果に基づいてゲートを表示し、推測に頼る必要はありません。