跳到主要内容
Didit 融资 750 万美元,打造身份与欺诈基础设施
Didit
自定义问卷

收集任何数据
融入任何验证流程。

提出合规团队所需的任何问题, 资金来源、职业、预期交易量、PEP(政治公众人物)自我声明, 并在同一会话中获取经审计的答案。无代码构建器、条件分支、文件上传。每次提交 $0.10,每月前 500 次免费。

投资方
Y CombinatorRobinhood Ventures
Firecrawl
Slash
Crnogorski Telekom
UCSF Neuroscape
Bit2Me
Shiply

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

Didit 自定义问卷, 在同一验证会话中收集的分支表单。

资金来源、PEP 自我披露

尽管提问。
锁定审计追踪。

将自定义问卷嵌入工作流程, 资金来源、PEP 自我披露、职业、预期交易量。答案将显示在会话报告中。 每次提交 $0.10。

工作原理

从注册到验证用户,仅需四步。

  1. 步骤 01

    创建工作流程

    选择您需要的检查项, 身份、活体、人脸匹配、制裁、地址、年龄、电话、邮箱、自定义问题。在控制台中拖拽它们到流程中,或通过我们的 API 发布相同的流程。支持条件分支、A/B 测试,无需代码。

  2. 步骤 02

    集成

    通过我们的 Web、iOS、Android、React Native 或 Flutter SDK 进行原生嵌入。重定向到托管页面。或者直接通过电子邮件、短信、WhatsApp 等任何方式向用户发送链接。选择适合您技术栈的方式。

  3. 步骤 03

    用户完成流程

    Didit 负责托管摄像头、灯光提示、移动设备切换和辅助功能。在用户进行流程时,我们实时评估 200 多个欺诈信号,并根据权威数据源验证每个字段。两秒内即可获得结果。

  4. 步骤 04

    接收结果

    实时签名的 webhook 在用户被批准、拒绝或发送审核时,立即同步您的数据库。按需轮询 API。或者打开控制台,检查每个会话、每个信号,并按您的方式管理案例。

专为开发者打造 · 抵御欺诈 · 开放式设计

六大功能。一个功能标志。QUESTIONNAIRE

以下所有功能都是同一模块中的一个开关。没有升级套餐,没有单独的 SKU,没有附加调用。您可以根据工作流程开启它们,或者在单个工作流程中将问卷步骤置于身份验证和活体检测之后。
01 · 可视化构建器

模式驱动表单。无需代码。无需 SDK。无需构建步骤。

两种模式。简单模式适用于快速的单语言拖放表单, 最适合内部调查和快速证明。高级模式是基于节点的视觉编辑器, 当您需要条件分支、多语言支持、基于选择的后续文本或强制人工审核时,此模式是必需的。两者都可在不到一分钟内发布。
02 · 条件分支

仅向需要回答的用户展示相应问题。

高级模式编辑器中的分支节点会检查任何先前的答案,并引导用户沿着匹配的路径。向美国居民询问 W-9 后续问题,向欧盟居民询问 PEP(政治公众人物)自我声明,并在不适用时跳过两者。从任何节点句柄拖动到空白区域以创建新的连接节点。包含撤消、重做、键盘快捷键、缩放和平移功能。
03 · AML 级模板

资金来源。税务居住地。UBO 声明。

控制台中提供六个预构建的合规模板, 资金来源、就业详情、账户目的、受益所有权、税务居住地、风险评估。每个模板都编码了审计师的期望(收入来源、细分、证明上传、第三方资金、虚拟资产声明)。克隆一个并自定义,或从空白开始。
04 · 结构化响应

所有答案均以可审计的 JSON 格式返回。

会话报告包含一个 `responses` 数组, 每个问卷步骤一个条目。每个条目都包含元素类型、必填标志、本地化标题、选项、上传限制以及包含值、文本或文件的答案对象。API 和每个 webhook 上的形状相同, 一次持久化,无需重复解析。
05 · 响应 + 审计追踪

强制人工审核。人工参与。审计就绪。

开启强制人工审核后,每次提交都会被标记为“待审核”,直到合规人员批准。控制台会显示所有答案、上传的文件和本地化的问题文本。一键批准会触发一个已验证会话的 webhook,并附带最终报告。监管机构可进行端到端审计。
06 · 工作流原生

内嵌于 KYC 流程。或作为独立验证运行。

在身份验证和活体检测后,将问卷调查作为完整 KYC(了解您的客户)入职流程的一部分,用于收集资金来源信息, 一次会话、一个 Webhook、一份存储报告。或者,您也可以发布一个仅包含问卷调查功能的流程,用于持续尽职调查、入职后声明和定期重新认证。两种方式每次提交费用均为 $0.10。
集成

两种模式。相同的 JSON。相同的价格。

在将 QUESTIONNAIRE 与 ID_VERIFICATION 和 LIVENESS 串联起来的工作流程上使用 POST /v3/session/,以在完整的 KYC 中收集数据;或者在唯一功能是 QUESTIONNAIRE 的工作流程上使用,以将其作为独立的问卷验证运行。两者都返回相同的 questionnaire_responses 结构。
POST /v3/session/工作流内
$ 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_kyc_sof",
    "vendor_data": "user-42"
  }'
201已创建{ "session_url": "verify.didit.me/..." }
在同一工作流中,将 QUESTIONNAIRE 链接到 ID_VERIFICATION 之后。文档 →
POST /v3/questionnaires/创建模式
$ curl -X POST https://verification.didit.me/v3/questionnaires/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "客户入职",
    "languages": ["en"],
    "default_language": "en",
    "form_elements": [
      { "id": "occupation", "element_type": "short_text", "label": { "en": "您的职业是什么?" } }
    ]
  }'
201已创建{ "questionnaire_id": "q_…" }
构建一次,将 questionnaire_uuid 附加到每个需要收集问卷的工作流中。文档 →
代理就绪集成

一键部署自定义问卷。

将以下代码块粘贴到 Claude Code、Cursor、Codex、Devin、Aider 或 Replit Agent 中。用您的框架 + 语言 + 用例填充 my_stack 占位符。Agent 将配置 Didit,构建问卷,使用 QUESTIONNAIRE 功能创建工作流,连接 webhook,并完成部署。
didit-integration-prompt.md
# Didit Custom Questionnaires — integrate in 5 minutes

You are integrating Didit's Custom Questionnaires 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. Build the questionnaire — Console OR API

### 2a. Visual builder in the Console (no code)
Questionnaires are authored visually — no schema upload, no SDK required.
1. Open https://business.didit.me, go to Questionnaires, click New.
2. Pick a mode:
   - Simple Mode — single-language drag-and-drop builder. Best for fast
     forms, internal surveys, single-locale flows.
   - Advanced Mode — visual node-based graph editor. Required for
     conditional branching, multi-language translations, choice-driven
     follow-up text, and forced manual review.
3. Drag elements onto the canvas (input, choice, upload, layout — full
   element catalog in section 5 below).
4. Optionally start from a pre-built template (Source of Funds,
   Employment Details, Purpose of Account, Beneficial Ownership, Tax
   Residency, Risk Assessment).
5. Localize titles, descriptions, placeholders, and choice labels for
   every supported language; set a default_language.
6. Publish — the questionnaire is now addressable by its questionnaire_id.

### 2b. Create the questionnaire programmatically (Management API)
Use this path when you want the form to live in code, ship via CI, or be
authored by an LLM. Endpoint:

  POST https://verification.didit.me/v3/questionnaires/
  Headers:  x-api-key: <your-api-key>
            Content-Type: application/json

Required body:
- title              — internal questionnaire name (string).
- languages          — array of locale codes; MUST include "en".
- default_language   — the default locale (string, e.g. "en").
- form_elements      — ordered array of questions (≥1 entry).

Each form element requires id, element_type (lowercase OR uppercase enum
— "short_text", "multiple_choice", "email", "file_upload", "date_picker",
etc.), and a translated label keyed by locale. For dropdown,
single_choice, and multiple_choice add options: [{ value, label }].

Hard constraints:
- This endpoint supports SIMPLE LINEAR questionnaires only. Do NOT send
  graph, branches, next, required_if, or conditional rules — use the
  Console (section 2a) for those.

Example body:
{
  "title": "Customer Onboarding",
  "languages": ["en"],
  "default_language": "en",
  "form_elements": [
    {
      "id": "occupation",
      "element_type": "short_text",
      "label": { "en": "What is your occupation?" },
      "is_required": true
    },
    {
      "id": "source_of_funds",
      "element_type": "multiple_choice",
      "label": { "en": "Source of funds" },
      "is_required": true,
      "options": [
        { "value": "employment", "label": { "en": "Employment" } },
        { "value": "business", "label": { "en": "Business" } },
        { "value": "investments", "label": { "en": "Investments" } }
      ]
    }
  ]
}

Response includes questionnaire_id — store it; you'll use it as
questionnaire_uuid when you wire the questionnaire into a workflow in
section 3 below. Full reference:
https://docs.didit.me/management-api/questionnaires/create

## 3. Two integration paths — pick one

### Path A — Workflow Builder (hosted UI, recommended)
Best when you want Didit to host the form, the file-upload UX, the
multi-language routing, the keyboard handling, and the mobile responsive
layout.

1. Create a workflow that contains the QUESTIONNAIRE feature:
   POST https://verification.didit.me/v3/workflows/
   Authorization header:  x-api-key: <your-api-key>
   Body: workflow_label, features array with the entry
         { feature: "QUESTIONNAIRE", questionnaire_id: "<id>" }
         (UPPERCASE — strict enum)
   Optional: chain QUESTIONNAIRE after ID_VERIFICATION + LIVENESS in the
   same workflow to collect Source of Funds as part of a full Know Your Customer (KYC).

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 Questionnaire Verification
Run a questionnaire as its own verification — no KYC required.
Use a workflow whose only feature is QUESTIONNAIRE. Everything else is
identical to Path A. Useful for ongoing-due-diligence pulses,
post-onboarding declarations, periodic re-attestations.

## 4. Webhooks
- 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"]
- 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.

## 5. Element catalog (use these in the builder)
Input elements:
  SHORT_TEXT, LONG_TEXT, NUMBER, EMAIL, PHONE, ADDRESS, DATE_PICKER, TIME
Choice elements:
  DROPDOWN, SINGLE_CHOICE, MULTIPLE_CHOICE, COUNTRY, CONSENT
  - DROPDOWN and SINGLE_CHOICE support per-option requires_text_input —
    selecting "Other" can demand a free-text follow-up.
Upload elements:
  IMAGE, FILE_UPLOAD
  - max_files (1-5) per element.
Layout elements:
  PARAGRAPH, SECTION_HEADER, SEPARATOR (read-only, not answerable).

## 6. Reading the report
The session report contains a questionnaire_responses array (one entry
per questionnaire step in the workflow graph). Each entry has:
- node_id: identifies the questionnaire step in the workflow graph
- questionnaire_id: which questionnaire this response is for
- title, description, languages, default_language, is_active
- sections: array of { title, description, items[] }
- each item: { uuid, order, element_type, is_required, title,
              description, placeholder, choices, max_files, answer }
- answer: { value, text, files[] } — only the fields relevant to the
  element_type are present.
- status: "Approved" | "In Review" | "Not Finished"

Status semantics:
- Not Finished — user has not completed the questionnaire yet.
- In Review — submitted, pending manual review. The Console flag
  "force manual review" pins every response to this state until a human
  approves it.
- Approved — reviewed and accepted.

Note: questionnaires do NOT emit risk warnings. Governance is achieved
through required fields, validation, manual review, and the workflow
graph (branching nodes route compliance-sensitive answers to In Review).

## 7. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: QUESTIONNAIRE, ID_VERIFICATION, LIVENESS,
  FACE_MATCH, AML, IP_ANALYSIS.
- Element type enums are UPPERCASE + underscored: SHORT_TEXT, LONG_TEXT,
  FILE_UPLOAD, SINGLE_CHOICE, etc.
- 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", "In Review", "Not Finished"
  (title-cased, space-separated).

## 8. Pricing reference (public)
- $0.10 per questionnaire submission (Path A or Path B).
- No minimums. No per-language surcharge. No per-element surcharge.
  Conditional branching, file uploads, manual review — all included at
  the same per-submission price.

## 9. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Use one of the pre-built templates (Source of Funds, Employment
  Details, Purpose of Account, Beneficial Ownership, Tax Residency, Risk
  Assessment) to ship a draft in under a minute, then customise.
- Switch to live: flip the application's environment toggle in console.

When in doubt: https://docs.didit.me/core-technology/questionnaires/overview
合规性设计

一键开启新国家/地区业务。 我们为您解决难题。

我们负责设立当地子公司、获取许可证、进行渗透测试、获得认证,并与所有新法规保持一致。要在新国家/地区发布验证服务,只需轻点开关。已覆盖220多个国家/地区,每个季度进行审计和渗透测试, 是唯一一个被欧盟成员国政府正式认定比线下验证更安全的身份提供商。
阅读安全与合规性档案
欧盟金融沙盒
Tesoro · SEPBLAC · BdE
ISO/IEC 27001
信息安全 · 2026
SOC 2 · Type I
AICPA · 2026
iBeta Level 1 PAD
NIST / NIAP · 2026
GDPR
EU 2016/679
DORA
EU 2022/2554
MiCA
EU 2023/1114
AMLD6 · eIDAS 2.0
原生符合欧盟标准

数据证明

数据证明
  • 0
    元素类型, 输入、选择、上传、布局。
  • 0
    包含资金来源等预设模板。
  • $0.00
    每次问卷提交,支持任意模式。
  • 0
    每月免费验证,永久有效。
三个层级,一份价目表

免费开始。按使用量付费。可扩展至企业级。

每月 500 次免费验证,永久有效。生产环境按量付费。企业版提供定制合约、数据驻留和 SLA (Service Level Agreements)。
免费

免费

每月 $0。无需信用卡。

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

按用量计费

按实际用量付费。25+模块。公开的模块定价,无每月最低费用。

  • 完整KYC $0.33(身份+生物识别+IP/设备)
  • 10,000+ AML数据集, 制裁、PEP、负面媒体
  • 1,000+ 政府数据源用于数据库验证
  • 交易监控 $0.02/笔交易
  • 实时KYB $2.00/家企业
  • 钱包筛选 $0.15/次检查
  • 白标验证流程, 您的品牌,我们的基础设施
企业版

企业版

定制MSA和SLA。适用于大批量和受监管项目。

  • 年度合同
  • 定制MSA、DPA和SLA
  • 专属Slack和WhatsApp频道
  • 按需人工审核员
  • 经销商和白标条款
  • 独家功能和合作伙伴集成
  • 指定CSM、安全审查、合规支持

免费开始 → 仅在检查运行时付费 → 解锁企业版以获取定制合约、SLA 或数据驻留。

FAQ

常见问题

Didit 是什么?

Didit 身份和欺诈基础设施, 这是我们在自己构建产品时希望拥有的平台:开放、灵活且对开发者友好,因此它可以作为您技术栈的真正一部分,而不是一个需要您围绕其进行集成的黑盒。

一个 API 涵盖了人员验证(KYC了解您的客户)、企业验证(KYB了解您的业务)、加密钱包筛选(KYT了解您的交易)以及实时交易监控, 构建在以下技术栈之上:

  • 快速, 每次会话 p99 低于 2
  • 可靠, 已在 220 多个国家/地区 1,500 多家公司投入生产
  • 安全, SOC 2 Type 1、ISO 27001、GDPR 原生,并经西班牙金融监管机构正式证明比亲自验证更安全

底层支持:14,000 多种文档类型,支持 48 种以上语言1,000 多个数据源,以及每次会话的 200 多个欺诈信号。Didit 基础设施从每次会话中动态学习并日益完善。

什么是自定义问卷?

自定义问卷是基于模式的表单,您可以在与身份文档验证和自拍相同的验证会话中收集这些表单, 资金来源、职业、预期交易量、政治公众人物 (PEP) 自我声明、税务居住地、受益所有权。

无代码可视化构建器让合规负责人可以在不到 5 分钟内发布新问卷,支持条件分支、多语言翻译、文件上传和强制手动审核。所有回复都与了解您的客户 (KYC) 数据一起记录在相同的审计追踪中。

每次提交 $0.10。完整参考:docs.didit.me/core-technology/questionnaires/overview

费用是多少?

每次问卷提交 $0.10,无论采用哪种集成路径(工作流内或独立)。

无最低消费,无每语言附加费,无每元素附加费,条件分支、文件上传或强制手动审核均无额外费用, 所有功能均以相同的每次提交价格包含在内。公开定价:didit.me/pricing

我的终端用户验证速度有多快?

整个流程通常在 30 秒内完成, 拿起身份证,拍摄文档,拍摄自拍,完成。这是市场上最快的速度。传统的 KYC 提供商完成相同流程通常需要超过 90

在后端,Didit p99 下两秒内返回结果,从用户完成自拍到您的 webhook 触发。移动端捕获针对慢速手机和慢速网络进行了优化:渐进式图像压缩、延迟加载软件开发工具包,以及如果用户从网页开始,通过二维码从桌面到手机的一键切换。

响应格式是什么?

会话报告包含一个 questionnaire_responses 数组, 工作流图中每个问卷步骤一个条目。每个条目包括 questionnaire_idtitlelanguagesdefault_languageis_active、一个 sections 数组,以及一个顶层 status,可以是 ApprovedIn Review Not Finished

每个 items[] 行包含 uuidorderelement_typeis_requiredtitledescriptionplaceholderchoicesmax_files,以及一个 answer 对象,其中包含 valuetext files,具体取决于元素类型。

会话应用程序编程接口 (API) 和每次 webhook 交付的格式相同。

如果用户失败、放弃或过期会怎样?

每个会话都会进入七种明确状态之一,因此您的代码始终知道该怎么做:

  • 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:2022iBeta Level 1 PAD,以及西班牙财政部/SEPBLAC/CNMV 的公开证明,表明 Didit 的远程身份验证比亲自验证更安全。完整报告请访问 /security-compliance

Didit 是否符合我所在行业的合规要求?

Didit 默认符合身份基础设施相关监管机构的合规要求:

  • GDPR + UK GDPR, 控制者/处理者分离,发布完整的《数据处理协议》,指定主要监管机构(西班牙数据保护局 AEPD)。
  • AMLD6 + 欧盟 AML 单一规则手册, 实时筛选 1,300 多个制裁、政治公众人物和负面媒体名单。
  • eIDAS 2.0, 符合欧盟数字身份钱包标准;支持可复用身份。
  • MiCA (Markets in Crypto-Assets), 适用于加密货币入口、交易所和托管机构。
  • DORA, 《数字运营韧性法案》,欧盟金融服务运营韧性。
  • BIPA, CUBI, Washington HB 1493, CCPA / CPRA, 美国生物识别隐私(伊利诺伊州、德克萨斯州、华盛顿州)和加利福尼亚州消费者隐私。
  • UK Online Safety Act, 年龄门控和儿童安全义务。
  • FATF Travel Rule, 加密货币转账的发起人和受益人数据,IVMS-101 互操作。

详细备忘录、所有证书、所有监管机构函件:/security-compliance

我能多快完成集成并开始验证用户?
  • 60 即可在 business.didit.me 获得沙盒账户, 无需信用卡。
  • 5 分钟即可通过 Claude Code、Cursor 或任何编码代理,通过我们的模型上下文协议 (MCP) 服务器完成工作验证。
  • 一个周末即可完成生产就绪的集成,包括签名 webhook 验证、重试和用户被拒绝时的补救流程。

三种集成路径, 选择最适合您技术栈的方式:

  • 使用我们的 Web、iOS、Android、React Native Flutter SDK 原生嵌入
  • 将用户重定向到托管验证页面, 无需 SDK。
  • 通过电子邮件、短信、WhatsApp 或任何渠道发送链接, 无需前端工作。

所有三种方式都使用相同的仪表板、相同的计费和相同的按成功付费价格。分步指南请访问 docs.didit.me/integration/integration-prompt

身份与欺诈基础设施。

一个 API 即可实现 KYC、KYB、交易监控和钱包筛选。5 分钟即可集成。

让 AI 总结此页面