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


全球2,000多家组织信赖。

全球覆盖
西班牙 DNI、日本 My Number、英国护照。每月新增证件, 每次检查 $0.15,结果格式一致,2 秒内响应。
选择您需要的检查项, 身份、活体、人脸比对、制裁名单、地址、年龄、电话、邮箱、自定义问题。在控制台中将它们拖入流程,或通过 API 发布相同流程。支持条件分支、A/B 测试,无需代码。
通过我们的 Web、iOS、Android、React Native 或 Flutter SDK 进行原生嵌入。重定向到托管页面。或者直接通过电子邮件、短信、WhatsApp 等方式向用户发送链接。选择适合您技术栈的方式。
Didit 负责托管摄像头、光线提示、移动端切换和无障碍功能。在用户进行流程时,我们实时评估 200 多个欺诈信号,并根据权威数据源验证每个字段。两秒内出结果。
实时签名 Webhook 可在用户通过、拒绝或发送审核时立即同步您的数据库。可按需轮询 API。或打开控制台检查每个会话、每个信号,并按您的方式管理案例。
本月更新
国家
证件类型
语言
脚本
OCR · MRZ · 条形码
自动追踪有效期 · 状态变更时发送 webhook
$ 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_3daf4c64",
"vendor_data": "user-42"
}'{ "session_url": "verify.didit.me/..." }$ curl -X POST https://verification.didit.me/v3/id-verification/ \
-H "x-api-key: $DIDIT_API_KEY" \
-F "front_image=@front.jpg" \
-F "back_image=@back.jpg"{ "status": "已批准", "document_type": "护照" }# Didit ID Verification — integrate in 5 minutes
You are integrating Didit's ID Verification 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 camera, lighting cues, retries,
mobile handoff, and accessibility for you.
1. Create a workflow that contains the ID_VERIFICATION feature:
POST https://verification.didit.me/v3/workflows/
Authorization header: x-api-key: <your-api-key>
Body: workflow_label, features array with the single entry
{ feature: "ID_VERIFICATION" } (UPPERCASE — strict enum)
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 the document image (mobile SDK capture, native
onboarding app, reseller pipeline).
POST https://verification.didit.me/v3/id-verification/
Content-Type: multipart/form-data
Body fields:
- front_image (required, file)
- back_image (optional, file)
- vendor_data (optional string, your user id)
Response: JSON report with extracted fields, image quality scores,
warnings array, and the verdict.
## 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", "kyc_expired"]
- 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 id_verification object includes:
- status: "Approved" | "Declined" | "In Review" | "Expired" | "Not Finished"
- document_type: "Passport" | "Identity Card" | "Driver's License" | "Residence Permit" | null
- document_number, personal_number
- front_image, back_image, portrait_image (signed URLs, expire in 1 hour)
- date_of_birth (YYYY-MM-DD), age (number)
- expiration_date, date_of_issue (YYYY-MM-DD)
- issuing_state, issuing_state_name (ISO 3166-1 alpha-3 + display name)
- first_name, last_name, full_name
- gender ("M" | "F" | "U"), nationality (ISO 3166-1 alpha-3)
- address, formatted_address, parsed_address (street_1, street_2, city,
region, postal_code, geometry { lat, lng })
- front_image_quality_score / back_image_quality_score (focus, brightness,
resolution, overall, each 0-100)
- warnings: Array<{ risk, log_type, short_description, long_description }>
## 5. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: ID_VERIFICATION, LIVENESS, FACE_MATCH, 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",
"Expired", "Not Finished" (title-cased, space-separated).
## 6. Pricing reference (public)
- Path A bundled in a full KYC workflow: $0.33 per session
- Path B standalone /v3/id-verification/ call: $0.15 per call
- 500 free verifications every month, forever, on every account.
## 7. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Test docs: deterministic synthetic IDs returned in sandbox.
- Switch to live: flip the application's environment toggle in console.
When in doubt: https://docs.didit.me/core-technology/id-verification/overview
每月 $0。无需信用卡。
按实际用量付费。25+模块。公开的模块定价,无每月最低费用。
定制MSA和SLA。适用于大批量和受监管项目。
免费开始 → 仅在检查运行时付费 → 解锁企业版以获取定制合约、SLA 或数据驻留。
Didit 是身份和欺诈基础设施, 是我们自己构建产品时所期望的平台:开放、灵活、对开发者友好,因此它能真正融入您的技术栈,而不是一个需要您围绕其进行集成的黑盒。
一个API即可覆盖人员验证(KYC,了解您的客户)、企业验证(KYB,了解您的业务)、加密钱包筛选(KYT,了解您的交易)以及实时交易监控, 其技术栈旨在实现:
底层支持:14,000多种证件类型,支持48+种语言,1,000+个数据源,每个会话200+种欺诈信号。Didit 基础设施通过每个会话动态学习,并日益完善。
docs.didit.me/core-technology/id-verification/supported-documents-id-verification 浏览完整目录,相同的数据也用于本页面的可搜索表格。id_verification JSON 对象。顶层 status 字段为 Approved、Declined、In Review、Expired 或 Not Finished 之一。该对象还包括 document_type、document_number、full_name、first_name、last_name、date_of_birth (YYYY-MM-DD)、age、expiration_date、date_of_issue、issuing_state (ISO 3166-1 alpha-3)、nationality、gender、address,以及一个包含街道、城市、地区、邮政编码和几何坐标的结构化 parsed_address,用于 portrait_image / front_image / back_image / front_video / back_video 的签名 URL,图像质量分数(聚焦/亮度/分辨率/整体,各0-100),以及一个 warnings 数组。完整参考请查阅 docs.didit.me/core-technology/id-verification/report-id-verification。整个流程通常在30秒内完成, 拿起证件,拍摄证件,拍摄自拍,搞定。这是市场上最快的速度。传统的KYC提供商完成相同流程通常需要90秒以上。
在后端,Didit在用户完成自拍到您的webhook触发的瞬间,p99响应时间低于两秒。移动端捕获针对慢速手机和慢速网络进行了优化:渐进式图像压缩、延迟加载SDK,以及如果用户从网页端开始,可通过二维码一键从桌面端切换到手机端。
DOCUMENT_EXPIRED、MINIMUM_AGE_NOT_MET、DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION、ID_DOCUMENT_IN_BLOCKLIST、PORTRAIT_IMAGE_NOT_DETECTED, 无论您的风险策略如何,始终强制执行。每个会话都会落入七种明确状态之一,因此您的代码始终知道如何处理:
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。