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


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

規制対象プラットフォームが負う義務
自己申告された住所は監査に通りません。IDと相互参照されていないスキャンされた公共料金の請求書も監査に通りません。Diditは、キャプチャ、OCR、IDとの氏名+住所の一致、さらに18以上の管轄区域での国別登録検証を含む、完全な住所証明のレシピを、1チェックあたり$0.20で、署名付きの証拠パックとして提供します。
本人確認、生体認証、顔照合、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェック項目を選択します。ダッシュボードでフローにドラッグ&ドロップするか、同じフローをAPIにポストするだけです。条件分岐やA/Bテストも、コード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込むことも、ホストされたページにリダイレクトすることも可能です。あるいは、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送るだけでもOK。あなたのスタックに最適な方法を選んでください。
Diditがカメラ、ライティングの指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正シグナルをリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。2秒以内に結果が出ます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべてのシグナルを検査し、ケースを独自の方法で管理することもできます。
Didit · 住所証明
ステップ 4 / 5
住所証明をアップロードしてください
Didit · OCR + 住所正規化
解析された住所
Didit · 本人確認 + 住所証明
Didit · データベース検証
Didit · グローバル対応
Didit · コンプライアンス
$ 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_proof_of_address",
"vendor_data": "user-42",
"expected_country": "ES"
}'ホストされたURL · ユーザーが本人確認書類 + セルフィー + 住所証明をアップロード。$ curl https://verification.didit.me/v3/session/$SESSION/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
# Decision payload (excerpted):
{ "proof_of_address": { "status": "承認済み", "address": { ... } },
"database_validation": { "service": "es_catastro_address", "result": { "registry_match": true } } }registry_match true → 信頼性の高い居住証明。You are integrating Didit's Proof of Address into a regulated onboarding flow (bank, fintech, lender, crypto exchange, EU payment institution). Regulators want a current address on every customer file; the legacy "ask the user to type it" approach fails audit because the typed address is unverified.
Four obligations on every Proof of Address:
1. Capture an acceptable document — utility bill, bank statement, government letter, lease, mortgage, mobile / internet contract — dated within the last 90 days.
2. Read the address fields with Optical Character Recognition (OCR) and parse them into the canonical address envelope (line 1, line 2, city, postal code, country).
3. Cross-check the address against the address on the underlying ID document AND against the name on both — a mismatched address or a mismatched name fails the check.
4. Where the country supports it, validate the parsed address against the authoritative address registry (UK Royal Mail PAF, Spain Catastro / Padrón, France BAN, Germany DATEV, US USPS).
Pricing (verified live):
- Proof of Address: $0.20 per check
- ID Verification (required as the cross-check anchor): $0.15 per check
- Database Validation (per-country registry validation, optional): variable per service
- Combined bundle (ID + Liveness + Face Match + Proof of Address): $0.55 per user
- 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 bundling ID Verification + Passive Liveness + Face Match 1:1 + Proof of Address. Add a Database Validation node for the country-specific address registry where available.
STEP 1 — Create the session
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<your proof-of-address workflow id>",
"vendor_data": "<your user id, max 256 chars>",
"callback_url": "https://<your-app>/onboarding/poa/callback",
"expected_country": "ES",
"metadata": {
"purpose": "regulatory_address_capture",
"user_id": "<your internal id>"
}
}
Response: 201 Created with the hosted session URL. SMS or email the URL to the user; they complete ID capture + selfie + Proof of Address upload on their phone in under five minutes.
STEP 2 — Read the signed webhook on completion
Didit POSTs to your callback. Session statuses are Title Case With Spaces:
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"id_verification": { "status": "Approved", "document_type": "passport", "country_code": "ES" },
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"proof_of_address": {
"status": "Approved",
"document_type": "utility_bill",
"issuer": "Iberdrola",
"issued_at": "2026-04-12",
"address": {
"line1": "C. Diagonal 612",
"line2": "3a",
"city": "Barcelona",
"postal_code": "08021",
"country": "ES"
},
"cross_check": {
"name_match": true,
"address_match_with_id": true,
"within_90_day_window": true
}
},
"database_validation": {
"status": "Approved",
"service": "es_catastro_address",
"result": { "registry_match": true }
}
}
Session 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.
STEP 3 — Decide
Branch logic:
Approved → file the canonical address payload on the customer record.
In Review → hold the onboarding, wait for analyst webhook update.
Declined → refuse onboarding, log the decline reason (typically: document over 90 days old, name mismatch, address mismatch with the ID).
Resubmitted → user updated the upload; re-read the decision.
The Proof of Address sub-result is independent of the parent session — even if the parent session is Approved, the proof_of_address.status might be In Review if the cross-check flagged a different city. Switch on proof_of_address.status when you persist the address.
STEP 4 — Persist the canonical address envelope
When proof_of_address.status === "Approved", save the entire address object to your customer record as the regulatory current address. Use the canonical fields (line1, line2, city, postal_code, country) — Didit normalises across document layouts so the same shape works for an English utility bill, a Spanish bank statement, and a German Anmeldung.
Keep the issuer + issued_at fields for your audit log — they prove the document type and the recency window the regulator audited.
STEP 5 — Registry validation result
When the workflow includes a Database Validation node, the database_validation block returns the per-country registry-validation outcome:
- es_catastro_address — Spanish Catastro property registry
- uk_royal_mail_paf — UK Postcode Address File
- fr_ban — France Base Adresse Nationale
- de_anmeldung — German municipal registration check
- us_usps — US Postal Service address validation
A registry-match-false result on a country that supports validation is a signal worth manual review even if the OCR pass succeeded — most fake addresses fail registry validation immediately.
STEP 6 — Refresh on a cadence (optional)
Most regulators ask for the address on file to be re-confirmed every 1-3 years (longer for low-risk customers, shorter for high-risk). Add a periodic Proof of Address session to your account-refresh cadence — same workflow, same hosted URL flow.
WEBHOOK EVENT NAMES
- status.updated — session status changed.
- data.updated — session data changed (resubmission, document re-upload).
Verify X-Signature-V2 on every payload. The webhook secret is per-environment — sandbox key is separate from production.
CONSTRAINTS
- Session statuses use Title Case With Spaces (Approved, In Review).
- Acceptable documents must be dated within the last 90 days by default; some workflows extend to 180 days for low-risk customer segments.
- The address on the Proof of Address document MUST cross-check against the address on the underlying ID OR against a previously-Approved address on file. If neither match, the proof flips to In Review automatically.
- Default record retention is 5 years post-relationship per the EU AML package.
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/proof-of-address/overview
- https://docs.didit.me/core-technology/database-validation/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、取引確認)、およびリアルタイムでの取引監視をカバーします。このスタックは以下の特長を備えています。
基盤となるフットプリントは、48以上の言語に対応した14,000以上のドキュメントタイプ、1,000以上のデータソース、そしてすべてのセッションで200以上の不正シグナルです。Diditのインフラは、すべてのセッションから動的に学習し、日々改善されています。
住所証明とは、その名の通り、オンボーディングする人物が主張する住所に実際に居住していることを示す証拠です。一般的な書類は以下の通りです。
規制当局が重視する理由:登録された住所は、マネーロンダリング対策の記録保持、税務上の居住地報告(FATCA / CRS)、および将来の執行における法的管轄の基準となります。自己申告された入力形式の住所は検証できません。最近の書類と身分証明書との相互参照によって裏付けられた住所証明が標準です。Diditは、この完全なプロセスを1回の確認につき$0.20で提供します。
規制当局が自己申告された住所を一貫して拒否する理由は3つあります。
住所証明のプロセス, 取得、OCR、相互参照、登録情報の検証, は、ユーザーのスマートフォンで5分以内に規制当局が認める証拠を生成します。エンドツーエンドで1回の確認につき$0.20です。
通常、エンドツーエンドの全フローは30秒未満で完了します, 身分証明書を手に取り、書類を撮影し、セルフィーを撮影すれば完了です。これは市場で最速です。従来のKYCプロバイダーでは、同じフローに90秒以上かかることがよくあります。
バックエンドでは、Diditはユーザーがセルフィーを完了した瞬間からウェブフックが発火するまでの時間を測定し、p99で2秒未満で結果を返します。モバイルキャプチャは、低速なスマートフォンやネットワーク向けに調整されています。プログレッシブ画像圧縮、遅延SDKロード、ユーザーがウェブから開始した場合のQRコードによるデスクトップからスマートフォンへのワンタップ引き継ぎなどに対応しています。
「公共料金の請求書をアップロードしてください」で止めてしまうと、悪意のある攻撃者は以下のことが可能です。
Diditのプロセスは、OCRの上に3層の検証を重ねることで、これら4つすべてを検出します。
これら3つはすべてサーバー側で実行されます。エージェントが未加工のアップロードを見ることはなく、検証済みの結果のみを確認します。
すべてのセッションは7つの明確なステータスのいずれかに分類されるため、お客様のコードは常に何をすべきかを知ることができます。
Approved, すべてのチェックに合格しました。ユーザーを次のステップに進めます。Declined, 1つ以上のチェックに失敗しました。ユーザーに特定の失敗したステップ(例:セルフィーの再撮影)を再提出させることができます。全フローを再実行する必要はありません。In Review, コンプライアンスレビューのためにフラグが立てられました。コンソールでケースを開き、すべてのシグナルを確認し、承認または拒否を決定します。In Progress, ユーザーはフローの途中にいます。Not Started, リンクは送信されましたが、ユーザーはまだ開いていません。長時間放置されている場合はリマインダーを送信します。Abandoned, ユーザーはリンクを開きましたが、時間内に完了しませんでした。再エンゲージするか、期限切れにします。Expired, セッションリンクの有効期限が切れました。新しいセッションを作成します。すべてのステータス変更時に署名付きウェブフックが発火するため、お客様のデータベースは常に同期されます。中断および拒否されたセッションは無料です。
本番データは、デフォルトで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つの統合パス, お客様のスタックに合ったものをお選びください。
すべてのパスで同じダッシュボード、同じ請求、同じ成功報酬型料金が適用されます。ステップバイステップのガイドはdocs.didit.me/integration/integration-promptでご覧いただけます。
ほとんどの規制当局は、住所証明書類が検証時点で過去90日以内に発行されたものであることを求めています。それより古いものは、ユーザーが引っ越した可能性があるという仮定のもと、古くなったものとして扱われます。
DiditのOCRは、書類の日付を読み取り、検証タイムスタンプと自動的に照合します。
within_90_day_window: true → 証明は最新性チェックに合格within_90_day_window: false → セッションは「In Review」に移行し、ユーザーにはより新しい書類のアップロードが促されます低リスクの顧客セグメントでは、ワークフローを設定して期間を180日に延長したり、高リスクのセグメントでは60日に短縮したりできます。設定はセッションごとではなくワークフローごとに行われるため、変更は一律に適用されます。英国のRight to Rentでは90日を使用し、EUのAMLガイダンスでは監督機関によって90〜180日が一般的に許容されます。
ほとんどの規制当局は、登録されている住所を定期的に再確認することを求めています。
Diditの更新は、既存顧客のvendor_dataを使用して、住所証明ワークフローに対して同じPOST /v3/session/を実行するだけです。新しい書類は顧客ファイル内の以前の書類に優先し、両方とも監査証跡として保持されます。更新の頻度はお客様のリスクポリシーに属するため、Diditは自動的に更新をトリガーしません。お客様の顧客データパイプラインから更新をスケジュールしてください。
ほとんどのKYCプロバイダーは、住所証明を1回の確認につき$0.50から$2.00で提供しています。多くの場合、より高額なKYC基本料金に加えて別途項目として請求され、登録情報の検証には国ごとの追加料金がかかります。Onfido / Jumio / Veriffのような典型的なモデルです。
Diditの公表価格は、住所証明1件につき$0.20 + 基盤となる本人確認(相互参照の基準として必須)に$0.15 = 組み合わせたプロセスで$0.35です。データベース検証には国ごとに変動する費用がかかり、通常$0.05〜$0.20です。最低料金や国ごとの追加料金はありません。
これは、同じ規制要件を満たす既存のスタックと比較して、およそ3〜5倍安価です。月間50,000ユーザーの場合、1件あたり$1.50の住所証明を提供する既存プロバイダーと比較して、年間約$65,000の節約になります。全料金は/pricingでご覧いただけます。