免费
每月 $0。无需信用卡。
- 免费 KYC 套件(身份验证 + 被动活体检测 + 人脸匹配 + 设备与 IP 分析), 每月 500 次,永久有效
- 黑名单用户
- 重复检测
- 每次会话 200+ 欺诈信号
- Didit 网络中可重复使用的 KYC
- 案件管理平台
- 工作流构建器
- 公开文档、沙盒、SDK、MCP(模型上下文协议)服务器
- 社区支持


全球2,000多家组织信赖。
英国 Ofcom · 法国 SREN · 欧盟 DSA
强制每位访客上传文档会使完成率下降25-40%。 Didit 的自适应流程首先运行年龄估算,仅将临界情况 路由到文档回退。自拍验证结果不到2秒,每次检查 $0.10, 每位用户的综合成本接近 $0.115。每月免费500次验证。
选择您需要的检查项, 身份、活体、人脸匹配、制裁、地址、年龄、电话、电子邮件、自定义问题。在仪表盘中将它们拖入流程,或将相同的流程发布到我们的 API。根据条件进行分支,运行 A/B 测试,无需代码。
使用我们的 Web、iOS、Android、React Native 或 Flutter SDK 进行原生嵌入。重定向到托管页面。或者直接通过电子邮件、短信、WhatsApp 等任何方式向您的用户发送链接。选择适合您技术栈的方式。
Didit 负责托管摄像头、灯光提示、移动设备切换和辅助功能。当用户在流程中时,我们实时评估200多个欺诈信号,并根据权威数据源验证每个字段。结果在两秒内得出。
实时签名 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,了解您的交易)以及实时交易监控, 所有这些都建立在以下技术栈之上:
其底层支持:14,000 多种文档类型,支持 48 种以上语言,1,000 多个数据源,以及每次会话的 200 多个欺诈信号。Didit 基础设施通过每次会话动态学习,并日益完善。
大多数监管机构要求对成人内容、在线赌博、酒精以及有时社交平台进行高效的年龄验证。这意味着验证方法必须足够好,以至于普通未成年人无法轻易通过, 而不是一个自我声明出生日期的复选框。
几乎所有监管机构都接受的两种方法是年龄估算(通过模型对自拍照进行评分)和文件年龄验证(用户上传护照或身份证)。大多数团队会同时提供这两种方法,其中估算步骤作为更便宜、摩擦更小的自拍路径的门槛。
推动团队采用新规则的两项法律是英国在线安全法案(Ofcom于2025年7月开始对任何允许英国用户接触色情内容的平台强制执行)和法国SREN法案(CNIL + Arcom规则对法国境内的网站生效)。
此外,欧盟数字服务法案要求超大型平台降低对未成年人的风险,美国几个州(犹他州、德克萨斯州、路易斯安那州)也针对成人内容制定了年龄门槛法规。它们都接受相同的工具包:自拍年龄估算、政府身份文件上传或第三方身份钱包。
整个流程通常在30秒内完成, 拿起身份证,拍下文件,拍下自拍,完成。这是市场上最快的速度。传统的KYC提供商完成相同流程通常需要90秒以上。
在后端,Didit在p99下两秒内返回结果,从用户完成自拍到您的webhook触发。移动端捕获针对慢速手机和慢速网络进行了优化:渐进式图像压缩、延迟加载SDK,以及如果用户从网页端开始,通过二维码一键从桌面端切换到手机端。
有两个原因。首先,监管机构关注的是极端情况,而不是中位数。模型在17岁和19岁之间的统计数据可能很好,但监管机构希望您对看起来像20岁的16岁青少年有信心。文件检查是您在这些情况下的证据。
其次,转化率。强制每个访客上传护照会使完成率下降25-40%。自拍优先、文件回退的流程通常会将90%的用户引导到更便宜、无摩擦的路径,10%的用户引导到文件步骤, 这带来了更好的业务成果,同时保持了相同的合规性。
每个会话都会落入七种明确状态之一,因此您的代码始终知道该怎么做:
Approved, 所有检查通过。让用户继续。Declined, 一项或多项检查失败。您可以允许用户重新提交特定的失败步骤(例如,重新拍摄自拍),而无需重新运行整个流程。In Review, 标记为合规审查。在控制台中打开案例,查看所有信号,决定批准或拒绝。In Progress, 用户正在进行中。Not Started, 链接已发送,用户尚未打开。如果长时间未打开,发送提醒。Abandoned, 用户打开了链接但未及时完成。重新激活或使其过期。Expired, 会话链接已过期。创建新会话。每次状态更改都会触发一个签名的webhook,因此您的数据库始终保持同步。放弃和拒绝的会话是免费的。
生产数据默认在欧盟的Amazon Web Services上处理和存储。企业合同可以根据监管机构要求,申请在其他区域存储。
全面加密。 所有数据库、对象存储和备份中的静态数据均采用AES-256加密。所有API调用、webhook和业务控制台会话中的传输数据均采用传输层安全协议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。
三种集成路径, 选择最适合您技术栈的:
相同的仪表板、相同的计费、相同的按成功付费价格适用于所有三种方式。分步指南请访问docs.didit.me/integration/integration-prompt。
Didit默认提供英国Ofcom和CNIL在供应商问卷中最常要求查看的认证:
所有四项都包含在审计包中,可随时附在平台的透明度通知中。
默认数据最小化。 自拍在内存中处理,年龄判断和活体分数被持久化,原始图像被删除,除非明确启用保留以进行欺诈防御。保留窗口是按工作流和区域划分的,终端用户可以通过标准数据主体请求路径请求删除。
我们绝不会出售、共享或使用客户的生物识别数据训练第三方模型。完整的数据处理条款请访问didit.me/terms/business。
自拍会返回三种结果之一:
每次状态更改都会触发一个签名的webhook,因此您只需根据最新判断结果渲染门槛,而不是猜测。