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


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

为何短信验证码(OTP)即将退出历史舞台
PSD3 正在逐步淘汰短信一次性密码(OTP)作为强客户认证(SCA)因素。 Didit 的设备绑定生物识别 SCA 能有效阻止 SIM 卡劫持、实时网络钓鱼和 SS7 拦截。 每次认证仅需 $0.13,两秒内即可完成验证,并支持动态链接。每月免费提供 500 次验证。
选择您需要的验证项, 身份、活体、人脸匹配、制裁名单、地址、年龄、电话、邮箱、自定义问题。在控制面板中拖拽构建流程,或通过 API 发布。支持条件分支、A/B 测试,无需代码。
通过我们的 Web、iOS、Android、React Native 或 Flutter SDK 进行原生嵌入。也可重定向到托管页面,或直接通过邮件、短信、WhatsApp 等方式向用户发送链接。选择最适合您技术栈的方案。
Didit 负责托管摄像头、光线提示、移动设备切换和无障碍功能。在用户进行流程时,我们实时分析 200 多个欺诈信号,并根据权威数据源验证所有字段。两秒内即可获得结果。
实时签名的 Webhook 可确保用户通过、拒绝或需要审核时,您的数据库即时同步。您也可以按需轮询 API,或打开控制台检查每个会话、每个信号,并按您的方式管理案例。
Didit · SCA 要素
认知
密码 · PIN
可选
持有
绑定设备
Didit ✓
固有
人脸 · 活体
Didit ✓
Didit · 动态链接
Didit · 攻击矩阵
Didit · 豁免引擎
Didit · 设备与 IP 分析
Didit · 单次认证成本
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_sca_biometric",
"vendor_data": "user-42",
"metadata": { "purpose": "login" },
// base64 KYC enrolment selfie, ≤ 1MB
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'状态:已批准 · 已拒绝 · 审核中$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_sca_biometric",
"vendor_data": "user-42",
"metadata": { "amount": "247.50", "payee_account": "ES91…1332" },
// base64 KYC enrolment selfie, ≤ 1MB
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'webhook 回显金额 + 收款人以供验证You are integrating Didit's Strong Customer Authentication into a payment service provider, bank, EMI, or wallet to satisfy PSD3 / the Payment Services Regulation (PSR). Two factors in one prompt:
1. Inherence — Biometric Authentication: Passive Liveness + Face Match 1:1 against the user's previously-enrolled KYC selfie.
2. Possession — Device & IP Analysis: 200+ real-time fraud signals binding the auth to the user's known device.
Pricing (verified live 2026-05-16):
- Biometric Authentication: $0.10 per auth
- Device & IP Analysis: $0.03 per auth
- Total: $0.13 per Strong Customer Authentication
- First 500 verifications free every month, forever
- Re-uses the enrolled selfie from the original KYC — no re-enrolment
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60 seconds, no credit card).
- Webhook endpoint with HMAC SHA-256 verification of the X-Signature-V2 header.
- A workflow_id from the no-code Workflow Builder configured as a Biometric Authentication workflow (Passive Liveness + Face Match 1:1 + Device & IP Analysis).
- The user has previously completed a Didit KYC (the same enrolled selfie backs every subsequent auth).
STEP 1 — Open an authentication session
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body (for login auth):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/auth/callback",
"metadata": {
"purpose": "login",
"session_id": "<your front-end session id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor; OMIT only if the workflow is liveness-only>"
}
Body (for payment with dynamic linking):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/payment/callback",
"metadata": {
"purpose": "payment",
"amount": "247.50",
"currency": "EUR",
"payee_account": "ES9121000418450200051332",
"payee_name": "<merchant or recipient>",
"transaction_reference": "<your internal transaction id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor>"
}
Response: 201 Created with the hosted session URL. Push the URL to the user via deep-link / push notification / in-app sheet.
STEP 2 — User completes the biometric auth
The user sees one prompt on their phone (or via the Didit SDK in your native app). Three things happen on the same screen:
1. The amount + payee are displayed (dynamic linking — the user explicitly approves THIS amount to THIS payee for payments).
2. Passive Liveness defeats screen replay, printed photo, mask, deepfake.
3. Face Match 1:1 matches the new selfie against the enrolled KYC selfie.
Device & IP Analysis runs server-side on the session. Sub-2-second median verdict.
STEP 3 — Read the signed webhook on the auth verdict
Didit POSTs to your callback. Session statuses (Title Case With Spaces):
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"ip_analysis": { "status": "Approved", "vpn_detected": false, "datacenter_ip": false },
"metadata_echo": {
"amount": "247.50",
"payee_account": "ES9121000418450200051332"
}
}
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.
For payments, verify that metadata_echo.amount and metadata_echo.payee_account match the values you passed in. If they do not, REJECT the payment — it's a dynamic-linking violation.
STEP 4 — Branch on verdict
Approved → unlock the action (login, payment, account change).
In Review → hold the action, route to manual review queue.
Declined → block, log the attempt, surface a friendly "try again" to the user.
Resubmitted → the user re-submitted after a soft fail (poor lighting, occlusion); proceed if the latest status is Approved.
STEP 5 — Retrieve the full decision later
GET https://verification.didit.me/v3/session/{sessionId}/decision/
Headers:
x-api-key: <your api key>
Returns the full payload: liveness verdict (iBeta Level 1 anti-spoof certified), Face Match similarity score, device fingerprint, IP geolocation, VPN / proxy / datacenter flags, 200+ fraud-signal score, dynamic-linking echo, HMAC signature.
Use this for the audit-trail surface a regulator examines on Strong Customer Authentication coverage.
STEP 6 — Step up on risk
When Device & IP Analysis surfaces a high-risk signal (new device + high-value payment, VPN/proxy on a login, geolocation jump), your workflow can step up to:
- A separate hardware-key challenge (FIDO2 / WebAuthn)
- A trusted-beneficiary whitelist confirmation
- A manual-review hold
Encode the step-up policy in the no-code Workflow Builder — no redeploy required.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
Verify X-Signature-V2 on every payload.
CONSTRAINTS
- Session statuses use Title Case With Spaces. Never UPPER_SNAKE_CASE on a session.
- Dynamic linking is REQUIRED for payments — pass amount + payee in metadata, verify the echo on the webhook.
- The enrolled selfie that backs every SCA is the one captured during the user's original KYC — no separate enrolment step.
- PSD3 / PSR exemptions (low-value remote < EUR 30, contactless point-of-sale < EUR 50, recurring identical, trusted beneficiary, Transaction Risk Analysis tiers) are configured per workflow in the Business Console.
- Default record retention is 5 years per the EU AML and payments rules.
Read the docs:
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/sessions-api/retrieve-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 基础设施从每个会话中动态学习,并日益完善。
强客户认证 (SCA) 是欧盟支付服务法规中的一项规定,它指出:当客户登录其账户或发起支付时,您必须使用三种独立因素类别中的至少两种来验证他们。
这三种类别是:
这两个因素必须来自不同的类别, 密码加上安全问题不是 SCA,因为两者都属于知识。密码加上指纹是,因为它们跨越了类别。
第三个要求是动态链接,它规定支付的第二个因素必须与交易金额和收款人唯一绑定, 这样被盗的代码就不能用于不同的交易。
PSD3, 支付服务指令 3 的简称, 是欧盟对 2018 年引入的 PSD2 规则手册的 2026 年修订版。与此同时,支付服务条例 (PSR) 将直接适用于成员国,无需进行国家转换。
与 PSD2 相比的主要变化:
过渡正在进行中, 大多数 SCA 变更预计将在最终通过后 18 到 24 个月内生效。
整个流程通常在 30 秒内端到端完成, 拿起身份证,拍摄证件,拍摄自拍,完成。这是市场上最快的速度。传统的 KYC 提供商通常需要超过 90 秒才能完成相同的流程。
在后端,Didit 在 p99 情况下两秒内返回结果,从用户完成自拍到您的 webhook 触发的那一刻开始计算。移动端捕获针对慢速手机和慢速网络进行了优化:渐进式图像压缩、延迟软件开发工具包加载,以及如果用户从网页端开始,通过二维码从桌面到手机的一键切换。
默认情况下需要 SCA 的情况:
豁免(PSD3 保留了大部分 PSD2 豁免,但收紧了门槛):
正确计算豁免是大多数团队在 SCA 优化工作中杠杆率最高的部分, 运用得当,它可以在不增加欺诈的情况下降低认证摩擦。
每个会话都有七种明确状态之一,因此您的代码始终知道如何处理:
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。
所有平台都使用相同的POST /v3/session/ API,只是用户界面的捕获方式有所不同:
用户在KYC时注册的相同生物识别模板支持每次认证, 无需重新注册,也无需单独的流程。
是的, 相同的认证包符合大多数等效的全球规则:
一个API,一个认证包,适用于所有司法管辖区。豁免计算方式可能不同;但技术合同不变。
每次认证都会生成一份可从业务控制台导出的签名证据记录:
Pending到Approved或Declined的每个步骤状态机,如果升级,则包含审查员备注。所有记录都存储在欧盟(欧盟数据中心),在您的订阅有效期间无限期保留。根据欧盟AML和支付规则,默认记录保留期为5年,可根据您的监管机构指导进行扩展。