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




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

无人零售的责任
无人便利店、自动售货亭、智能冰箱、无人加油站—— 它们都与有人值守的商店承担相同的合规责任:真实身份、真实年龄、真实 审计追踪。Didit 将其作为一个工作流程提供:首次访问 $0.33,每次 回访 $0.10,中位数判断时间不到 2 秒,支持 220 多个国家/地区的 14,000 多种证件。
选择您想要的检查项——身份、活体检测、人脸匹配、制裁名单、地址、年龄、电话、电子邮件、自定义问题。将它们拖入仪表板中的流程,或将相同的流程发布到我们的 API。根据条件进行分支,运行 A/B 测试,无需代码。
使用我们的 Web、iOS、Android、React Native 或 Flutter SDK 进行原生嵌入。重定向到托管页面。或者只需通过电子邮件、短信、WhatsApp 等任何方式向您的用户发送链接。选择适合您技术栈的方式。
Didit 负责托管摄像头、灯光提示、移动设备交接和可访问性。当用户在流程中时,我们实时评估 200 多个欺诈信号,并根据权威数据源验证每个字段。结果在两秒内得出。
实时签名网络钩子可在用户获批、被拒绝或送审时立即同步您的数据库。按需轮询 API。或者打开控制台,检查每个会话、每个信号,并按您的方式管理案例。
Didit · 入口流程
步骤 3 / 4
正在开门…
Didit · 年龄门槛
Didit · 生物识别认证
Didit · 尝试日志
购物者
入口
Didit · 类别策略
Didit · 生态系统
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_store_entry_kyc",
"vendor_data": "shopper-42",
"metadata": { "store_id": "store_sf_12" }
}'status: Approved。文档 →$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_store_entry_biometric",
"vendor_data": "shopper-42",
// base64 first-visit selfie, ≤ 1MB (omit for liveness-only)
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'You are integrating Didit into an autonomous-retail surface — an unstaffed convenience store, an age-gated vending machine, a smart fridge, an autonomous fuel station, or a self-checkout that handles restricted SKUs. The recipe verifies identity + age at entry and authenticates returning shoppers via face only.
Three pillars:
1. First visit — verify the shopper's identity and age with one POST /v3/session/ ($0.33 bundle).
2. Returning visit — Biometric Authentication at $0.10 per entry. Shopper holds their face to the door camera; door unlocks.
3. Per-SKU enforcement — block restricted categories (alcohol, tobacco, vapes, energy drinks, RX) at scan or checkout based on the verified age and the store's local rules.
Cost:
- First visit KYC bundle: $0.33 per shopper (Sessions API)
- Returning visit Biometric Auth: $0.10 per entry
- 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 HMAC SHA-256 verification using the X-Signature-V2 header and your webhook secret.
- Two workflows in the Workflow Builder:
wf_store_entry_kyc — ID Verification + Passive Liveness + Face Match 1:1 + age rules (first visit)
wf_store_entry_biometric — Biometric Auth-only (returning visit)
- A store-id + local-rule lookup so age thresholds vary per region (EU 18 vs US 21 for alcohol; state-by-state tobacco; dry counties; etc.).
STEP 1 — First visit: verify the shopper
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<wf_store_entry_kyc>",
"vendor_data": "<your shopper id, max 256 chars>",
"callback": "https://<your-app>/store/entry/callback",
"metadata": {
"purpose": "autonomous_store_entry",
"store_id": "<your store id>",
"region": "<US-CA | EU-ES | etc.>"
}
}
Response: 201 Created with the hosted session URL. Encode that URL in the QR sticker on the door (or push it to the shopper's phone via SMS / WhatsApp). Sub-2-second median verdict on completion.
STEP 2 — Read the signed webhook on entry-flow completion
Didit POSTs to your callback. Session statuses are Title Case With Spaces:
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your shopper id>",
"status": "Approved",
"id_verification": {
"status": "Approved",
"date_of_birth": "1991-04-22",
"country": "US"
},
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 }
}
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.
Compute the age from date_of_birth, look up the region's age thresholds (per category), and store the (shopper_id, age_band, region, kyc_status) tuple in your data layer.
STEP 3 — Open the door
When status is Approved, signal your store-OS / door-controller to unlock. Median wall-clock from QR scan to door open is around 1.4 seconds on entry-level Android, sub-2 seconds end to end.
Failure modes to handle:
Declined / In Review / Resubmitted — show a friendly UI on the kiosk and offer staff hand-off.
Expired / Abandoned — shopper walked away; do nothing, the session expires.
STEP 4 — Returning visit: Biometric Authentication
POST https://verification.didit.me/v3/session/
Body:
{
"workflow_id": "<wf_store_entry_biometric>",
"vendor_data": "<your shopper id>",
"metadata": {
"purpose": "autonomous_store_entry_return",
"store_id": "<your store id>"
}
}
The shopper just holds their face to the door camera. Cost is $0.10 per entry. Same webhook flow.
STEP 5 — Read the decision on demand
GET https://verification.didit.me/v3/session/{sessionId}/decision/
Headers:
x-api-key: <your api key>
Returns the full decision JSON. Use this from the POS / self-checkout when the shopper picks up a restricted SKU — confirm age + region match the SKU's rules before letting the basket close.
STEP 6 — Per-SKU enforcement at checkout
Inside your POS / store-OS, every restricted SKU carries a category tag (alcohol, tobacco, vape, energy-drink, sharp-tool, RX). Look up the shopper's verified age band + the store's region rules. Examples:
Alcohol US-21 / EU-18, blocked in dry counties, time-of-day windows
Tobacco / vapes US-21 (state by state) / EU-18, store-licence flag required
Energy drinks EU-16 in some regions, no restriction elsewhere
Sharp tools ≥ 18 in most regions
Prescription Pharmacy hand-off only (DEA Schedule II–V)
Tune the policy in the no-code Workflow Builder — no redeploy of your store-OS.
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 (Approved, In Review). Don't transform them.
- Don't store the raw document image in your store-OS — Didit holds it, the store-OS holds the shopper PID + age band only.
- Compute the age band server-side, not in the kiosk — kiosks can be tampered with.
- Log every entry attempt (Approved + Declined) signed with X-Signature-V2 for the loss-prevention dashboard. Default retention 5 years.
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
- https://docs.didit.me/console/workflows
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或数据驻留。