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


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

遠隔医療プラットフォームが提供すべきもの
臨床上の安全性と薬物乱用防止は、どちらも信頼できる患者の本人確認に依存します。 Diditは、オンボーディング時のKYCと処方箋補充ごとの生体認証による再認証を、2つの短いホスト型フローとして提供します。 オンボーディングは$0.33、補充ごとは$0.10です。毎月500回まで無料で検証、SOC 2 Type 1およびISO/IEC 27001認証済み、 生体認証テンプレートのみを使用します。
本人確認、ライブネス、顔認証、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェックを選択します。ダッシュボードでフローにドラッグするか、同じフローをAPIにポストします。条件分岐、A/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込みます。ホストされたページにリダイレクトすることも、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送信することも可能です。あなたのスタックに合った方法を選んでください。
Diditがカメラ、照明のキュー、モバイル連携、アクセシビリティをホストします。ユーザーがフローを進む間、200以上の不正シグナルをリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。2秒以内に結果が出ます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングしたり、コンソールを開いてすべてのセッション、すべてのシグナルを検査し、ケースを管理したりできます。
Didit · 患者KYC
ステップ 3 / 5
静止してライブネス判定
Didit · 年齢推定
Didit · データベース検証
Didit · DEA / スケジュールIIポリシー
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_patient_onboarding",
"vendor_data": "patient-42"
}'{ バインディングテンプレートは承認済みとして保存されました。 }$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_biometric_reauth",
"vendor_data": "patient-42",
"metadata": { "context": "controlled_substance_refill" },
// base64 enrolment selfie, ≤ 1MB
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'{ ステータス承認済み → 電子処方箋を発行します。 }You are integrating Didit into a telehealth platform (Doctolib / Teladoc / Hims & Hers / Ro / Tessa Health archetype). You owe the clinical and pharmacy layers a trustworthy patient identity at onboarding and at every refill of a controlled prescription.
Three obligations at onboarding:
1. Verify the patient's identity — government ID + liveness + face match.
2. Confirm age — adult, adolescent, or pediatric — to route to the correct clinical pathway without surfacing date of birth on every downstream call.
3. Capture consent — HIPAA Notice of Privacy Practices acknowledgement, clinical consent (telemedicine + electronic health record + e-prescription), intake history.
One obligation at every refill or new appointment:
4. Biometric reauthentication — a 1-second selfie matched to the binding template established at onboarding. Anti-diversion control for US Drug Enforcement Administration (DEA) Schedule II-V medications.
Optional but recommended:
5. Insurance card capture + payer validation — OCR the card, look up the payer, ping eligibility if your stack supports 270/271 EDI.
Pricing (verified live):
- Onboarding Know Your Customer (KYC) bundle (ID + Liveness + Face Match + IP + AML): $0.33 per patient
- Age Estimation: $0.10 per patient
- Custom Questionnaire (HIPAA + clinical consent): $0.10 per submission
- Biometric Authentication (refill / new visit): $0.10 per auth
- First 500 KYC 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 for patient onboarding that bundles ID Verification + Passive Liveness + Face Match 1:1 + Age Estimation + Custom Questionnaire.
- A workflow_id for biometric reauthentication (selfie + liveness + 1:1 face match against the binding template).
STEP 1 — Create the patient onboarding session
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<your patient onboarding workflow id>",
"vendor_data": "<your patient id, max 256 chars>",
"callback_url": "https://<your-app>/patients/kyc/callback",
"metadata": {
"patient_id": "<your internal id>",
"scheduling_context": "new_visit"
}
}
Response: 201 Created with the hosted session URL. Send it to the patient through your booking flow; they complete identity + consent on their phone in under five minutes.
STEP 2 — Read the signed webhook on onboarding completion
Didit POSTs to your callback. Session statuses are Title Case With Spaces:
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your patient id>",
"status": "Approved",
"id_verification": { "status": "Approved", "document_type": "drivers_license", "country_code": "US" },
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"age_estimation": { "status": "Approved", "estimated_age_bucket": "ADULT" },
"questionnaire": { "status": "Approved", "responses": { "hipaa_ack": true, "telehealth_consent": 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 — Persist the binding biometric template
When the onboarding session is Approved, Didit stores a biometric template under the patient's vendor_data automatically. You don't need to fetch or store the raw selfie — it's discarded after the template is generated. The template lives in EU data centres and is used for every future face-match against this patient.
STEP 4 — Biometric reauthentication at refill / new appointment
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<your biometric reauth workflow id>",
"vendor_data": "<the same patient id as onboarding>",
"callback_url": "https://<your-app>/patients/reauth/callback",
"metadata": {
"context": "controlled_substance_refill",
"prescription_id": "<your rx reference>"
}
}
The reauth workflow runs Passive Liveness + Face Match 1:1 against the binding template. Sub-1-second median verdict. $0.10 per auth. Use this BEFORE every controlled-substance e-prescription fires.
STEP 5 — Decide
Branch logic on the parent session status:
Approved → onboard the patient, allow scheduling.
In Review → hold the visit, wait for analyst webhook update.
Declined → refuse onboarding, log the decline reason.
Resubmitted → patient updated something; re-read the decision.
On the reauth session:
Approved → fire the e-prescription / book the visit.
Declined → refuse the refill, require in-person identity check.
STEP 6 — Insurance card capture (optional)
Add a Database Validation node to your onboarding workflow against the US payer database (Aetna, BCBS, UnitedHealthcare, Cigna, Kaiser) or the EU national health-insurance system (ES Seguridad Social, DE GKV, FR CPAM, IT SSN). The patient uploads the card; Didit OCRs the member id, group, and payer name, then validates against the payer database. The card image is discarded after parse — only the validated payload is retained.
WEBHOOK EVENT NAMES
- status.updated — session status changed.
- data.updated — session data changed (resubmission, consent re-collection).
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).
- The biometric template is the binding identity — once a patient is onboarded, every future reauth references it. If you delete the patient, delete the template too via the Business Console (GDPR / HIPAA right-to-deletion compliance).
- HIPAA-protected information (PHI) and biometric templates are stored in EU data centres for EU patients; US-specific deployments can request a US tenant.
- For controlled-substance dispense, run a fresh biometric reauth on every refill — this is the anti-diversion control US DEA Schedule II / III requires under the SUPPORT Act.
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/face-match/overview
- https://docs.didit.me/core-technology/age-estimation/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のインフラは、すべてのセッションから動的に学習し、日々進化しています。
対面診療では当たり前のことが、遠隔医療では以下の3つの理由で課題となります。
対面診療では、受付で運転免許証の提示を求めます。遠隔医療では、これと同等以上の強力なリモート本人確認が必要です。Diditは、患者が自身のスマートフォンで5分以内に完了できるホスト型フローを提供し、患者1人あたり$0.33で利用できます。
HIPAAは、米国の医療保険の携行性と説明責任に関する法律です。プライバシー規則とセキュリティ規則により、保護対象医療情報(PHI)は管理上、物理的、技術的な保護措置を講じて取り扱うことが義務付けられています。
本人確認に関して具体的には、以下の点が挙げられます。
Diditは、すべての有料プランにBAAを付帯し、生体認証テンプレートのみを保存します。元の自撮り画像はテンプレート生成後に破棄されます。SOC 2 Type 1およびISO/IEC 27001の認証は、セキュリティの基本要件をカバーしています。EUの患者様はEU内のみでのデータ保存を、米国固有の展開では米国テナントをリクエストできます。
フルフローは通常、エンドツーエンドで30秒未満で完了します。IDを手に取り、書類を撮影し、自撮りをして、完了です。これは市場で最速です。従来のKYCプロバイダーでは、同じフローで通常90秒以上かかります。
バックエンドでは、Diditはユーザーが自撮りを完了した瞬間からWebhookが発火するまでの時間を測定し、p99で2秒未満で結果を返します。モバイルキャプチャは、低速なスマートフォンやネットワーク向けに最適化されています。プログレッシブ画像圧縮、遅延SDKロード、そしてユーザーがWebから開始した場合でもQRコードを介してデスクトップからスマートフォンへのワンタップ連携が可能です。
年齢はケアの経路を決定します。14歳が避妊相談を求める場合と、28歳が求める場合では、臨床的および同意の経路が異なります。70歳が認知機能低下のスクリーニングを求める場合もまた異なります。すべての下流の呼び出しで患者の生年月日を表示することは、経路決定に必要な情報以上に漏洩することになります。
年齢推定は、生体認証の自撮り画像から、生年月日を公開することなく、患者のコホート(成人、若年成人、思春期、小児)を返します。臨床層はコホートに基づいて経路を決定し、監査証跡は生年月日を患者記録に適切に保持します。
1チェックあたり$0.10です。推定が境界線上の場合はIDフォールバックで対応します。小児患者の場合、ワークフローは自動的に保護者の同意フローに分岐できます。
すべてのセッションは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をご覧ください。
はい、再利用可能なKYCは、本人確認スタックの上に構築された無料の分散レイヤーです。患者が一度オンボーディングされると、そのIDは患者の同意を得て、Diditと統合された他のプロバイダーに提示でき、再確認の負担を軽減します。
医療分野でこれが重要となる場面は以下の通りです。
再利用可能なKYCは永久に無料です。患者は同意を所有し、DiditのIDウォレットを通じていつでもプロバイダーごとの共有を取り消すことができます。
ほとんどの医療向け本人確認プロバイダーは、1チェックあたり$3から$8で、多くの場合、月額数千ドルの最低料金や、HIPAAテナンシーに対する州ごとの追加料金が発生します。生体認証の再認証にはさらに$0.30〜$1.00が加算されます。
Diditの公開価格は、オンボーディングKYCバンドルあたり$0.33 + 生体認証再認証あたり$0.10です。最低料金や州ごとの追加料金はありません。毎月最初の500回の本人確認は無料で、ほとんどのパイロット運用や小規模な診療所はこれで完全にカバーされます。
これは、同じ規制要件を満たす既存のスタックと比較して、およそ10倍安価です。年間2回処方箋を補充する5,000人の患者を抱える遠隔医療施設の場合、年間約$12,000の節約になります。しかも、患者体験はより迅速になり、同じ自撮り画像がすべての補充で機能します。全料金は/pricingでご覧いただけます。
医療分野の記録保持期間は、他のどの業界よりも長いです。
Diditの対応は以下の通りです。
ISO 27001、SOC 2 Type 1、iBeta Level 1のアンチスプーフィング認証はすべて/security-complianceからダウンロードできます。ビジネスアソシエイト契約(BAA)はすべての有料プランに含まれています。