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


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

同一人物チェック
2秒未満で類似度スコアを算出。アンチスプーフィング機能も搭載。1回$0.05と、 市場で最も安価な顔認証比較サービスです。
本人確認書類、生体認証、顔認証、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェック項目を選択します。ダッシュボードでドラッグ&ドロップしてフローを作成するか、同じフローをAPIにPOSTすることも可能です。条件分岐やA/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込むか、ホストされたページにリダイレクトします。または、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送信するだけです。あなたのスタックに合った方法を選んでください。
Diditがカメラ、照明の指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行中に、200以上の不正信号をリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。結果は2秒未満で提供されます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべての信号を検査し、ケースを自由に管理できます。
source_image・target_image
POST /v3/face-match/
エッジ提供・埋め込みモデル
LOW_FACE_MATCH_SIMILARITY
wf_face_match_kyc
成功ごとに課金・最低料金なし
$ 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_face_match_kyc",
"vendor_data": "user-42"
}'{ "session_url": "verify.didit.me/..." }$ curl -X POST https://verification.didit.me/v3/face-match/ \
-H "x-api-key: $DIDIT_API_KEY" \
-F "source_image=@selfie.jpg" \
-F "target_image=@portrait.jpg"{ "status": "承認済み", "score": 87 }# Didit Face Match 1:1 — integrate in 5 minutes
You are integrating Didit's Face Match 1:1 (selfie vs. reference image)
module into <my_stack>. Follow these steps exactly. Every URL, header,
and enum value below is canonical — do not paraphrase or "improve" them.
## 1. Provision an account
- Sign up: https://business.didit.me (no credit card required).
- Or provision programmatically: POST https://apx.didit.me/auth/v2/programmatic/register/
(returns an API key bound to the workspace + application).
## 2. Two integration paths — pick one
### Path A — Workflow Builder (hosted UI)
Best when you want Didit to handle selfie capture, real-time framing,
mobile handoff, and accessibility for you. Inside a Know Your Customer (KYC) workflow,
Face Match runs automatically against the portrait extracted from the
ID document the user uploads in the same session.
1. Create a workflow that contains the FACE_MATCH feature:
POST https://verification.didit.me/v3/workflows/
Authorization header: x-api-key: <your-api-key>
Body: workflow_label, features array with FACE_MATCH plus any
other features the same session needs (typically
ID_VERIFICATION and LIVENESS for full KYC). Feature names
are UPPERCASE — strict enum.
Optional config: review_threshold and decline_threshold for the
LOW_FACE_MATCH_SIMILARITY warning (numbers 0–100).
2. Create a verification session for an end user:
POST https://verification.didit.me/v3/session/
Body: workflow_id (from step 1), vendor_data (your own user id).
Response: session_url — redirect the user to it.
3. Listen for webhook callbacks (see "Webhooks" below).
### Path B — Standalone server-to-server API
Best when you already have two face images and just need a similarity
score (re-auth at sensitive actions, employee badge access, cross-app
identity binding, periodic re-verification).
POST https://verification.didit.me/v3/face-match/
Content-Type: multipart/form-data
Body fields:
- source_image (required, file — the live selfie)
- target_image (required, file — the reference image, e.g. ID portrait
or a stored enrollment frame)
- vendor_data (optional string, your user id)
Response: synchronous JSON report with the similarity score and warnings
array. No webhook needed.
## 3. Webhooks (Path A only — Path B returns synchronously)
- Register a webhook destination once via
POST https://verification.didit.me/v3/webhook/destinations/
Body: url, subscribed_events: ["session.verified",
"session.review_started",
"session.declined"]
- Response includes secret_shared_key — store it.
- Every webhook delivery carries an X-Signature-V2 header you MUST verify
before trusting the payload. 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.Algorithm:
1. sortKeys(payload) recursively
2. shortenFloats (truncate trailing zeros after the decimal point)
3. JSON.stringify the result
4. HMAC-SHA256 with the secret_shared_key
5. Hex-encode, compare to the X-Signature-V2 header.
## 4. Reading the report (both paths return the same shape)
The face_match object includes:
- status: "Approved" | "Declined" | "In Review" | "Not Finished"
- score: number 0-100 (normalized similarity score)
- source_image_session_id: the verification session that produced the
live selfie (Path A) or null (Path B)
- source_image: signed URL to the live selfie (expires in 1 hour)
- target_image: signed URL to the reference image (expires in 1 hour)
- warnings: Array<{ risk, log_type, short_description, long_description }>
Auto-decline risks (always enforced by Didit, not configurable):
- NO_REFERENCE_IMAGE (no reference image available to compare against)
Configurable risks (action per workflow — Decline, Review, or Approve):
- LOW_FACE_MATCH_SIMILARITY
Tune two thresholds per application:
review_threshold → score below this goes to "In Review"
decline_threshold → score below this is auto-declined
## 5. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: FACE_MATCH, ID_VERIFICATION, LIVENESS, AML, IP_ANALYSIS.
- Auth header is x-api-key (lowercase, hyphenated).
- Webhook signature header is X-Signature-V2 (NOT X-Signature).
- Always verify webhook signatures before trusting payload data.
- Status casing matches exactly: "Approved", "Declined", "In Review",
"Not Finished" (title-cased, space-separated).
- Reference and source image URLs in the response expire in 60 minutes.
Persist only the score and status; re-fetch images on demand if your
audit policy needs them.
## 6. Pricing reference (public)
- Standalone POST /v3/face-match/: $0.05 per match.
- Bundled inside a full KYC workflow with ID Verification + Passive
Liveness + Device & IP Analysis: $0.33 per session (Face Match included).
- 500 free checks every month, forever, on every account.
## 7. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Test images: deterministic synthetic faces returned in sandbox
(Approved by default; trigger Declined by sending a mismatched pair).
- Switch to live: flip the application's environment toggle in console.
When in doubt: https://docs.didit.me/core-technology/face-match/overview
月額$0。クレジットカード不要。
使った分だけお支払い。25以上のモジュール。モジュールごとの公開価格、月額最低料金なし。
カスタムMSA & SLA。大量利用や規制対象プログラム向け。
無料で開始 → チェック実行時のみ支払い → カスタム契約、SLA、データレジデンシーが必要な場合はエンタープライズプランへ。
Diditは本人確認と不正対策のためのインフラです。私たちが自社でプロダクトを開発していたときに「こんなプラットフォームがあれば」と願ったものを実現しました。オープンで柔軟、そして開発者に優しいため、単なるブラックボックスとしてではなく、あなたのスタックの真の構成要素として機能します。
1つのAPIで、個人の本人確認(KYC、顧客確認)、企業の本人確認(KYB、企業確認)、暗号資産ウォレットのスクリーニング(KYT、取引確認)、およびリアルタイムでの取引監視をカバーします。このスタックは以下の特徴を備えています。
基盤となるフットプリント: 48以上の言語で14,000以上の書類タイプ、1,000以上のデータソース、そしてすべてのセッションで200以上の不正シグナル。Diditのインフラは、すべてのセッションから動的に学習し、日々改善されています。
POST /v3/face-match/のマルチパートリクエストで、source_imageとtarget_imageとして両方の画像を自分で渡します。対応フォーマットはJPG、JPEG、PNGで、各画像最大5MBです。どちらのパスも同じface_match JSON形式を返します。face_matchオブジェクトには、status(Approved、Declined、In Review、またはNot Finished)、0-100のscore、ライブセルフィーを生成した本人確認セッションに結果を紐付けるsource_image_session_id、60分後に期限切れとなる署名付きsource_imageおよびtarget_imageのURL、そしてwarnings配列が含まれます。各警告にはrisk、log_type(information、warning、またはerror)、short_description、long_descriptionが含まれます。ワークフロービルダーとスタンドアロンAPIのどちらを呼び出した場合でも、同じ形式です。通常、エンドツーエンドの全フローは30秒未満で完了します, IDを手に取り、書類を撮影し、セルフィーを撮影すれば完了です。これは市場で最速です。従来のKYCプロバイダーでは、同じフローに90秒以上かかることが一般的です。
バックエンドでは、Diditはユーザーがセルフィーを完了した瞬間からWebhookが発火するまでの時間を測定し、p99で2秒未満で結果を返します。モバイルキャプチャは、低速なスマートフォンやネットワーク向けに最適化されています。プログレッシブ画像圧縮、遅延SDKロード、そしてユーザーがウェブで開始した場合のQRコードによるデスクトップからスマートフォンへのワンタップ連携などです。
LIVENESSと組み合わせて使用されるため、ソース画像は常に検証済みの生きた人間であり、プレゼンテーション攻撃ではありません。Livenessは、印刷された写真、画面のリプレイ、マスク、モーフィング攻撃、AIディープフェイクに対してiBeta Level 1 Presentation Attack Detection (PAD)認証を受けています。さらに、顔埋め込みモデルは、姿勢、照明、髪型、眼鏡、および通常の範囲内の加齢に対して堅牢であるように訓練されているため、書類の顔写真が何年も前のものだとしても、本物の顔は一致します。すべてのセッションは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をご覧ください。