무료
월 $0. 신용 카드 필요 없음.
- 무료 KYC 번들 (ID 확인 + 수동 라이브니스 + 얼굴 매칭 + 장치 및 IP 분석) — 매월 500회
- 차단된 사용자
- 중복 감지
- 모든 세션에서 200개 이상의 사기 신호
- Didit 네트워크 전반에 걸쳐 재사용 가능한 KYC
- 사례 관리 플랫폼
- 워크플로우 빌더
- 공개 문서, 샌드박스, SDK, MCP(모델 컨텍스트 프로토콜) 서버
- 커뮤니티 지원




전 세계 2,000개 이상의 조직에서 신뢰합니다.

영국 Ofcom · 프랑스 SREN · EU DSA
모든 방문자에게 문서 업로드를 강요하면 완료율이 25-40% 감소합니다. Didit의 적응형 흐름은 연령 추정을 먼저 실행하고 경계선에 있는 사용자만 문서 대체 기능으로 보냅니다. 2초 미만의 셀카 판정, 확인당 $0.10, 사용자당 혼합 비용은 약 $0.115입니다. 매월 500회 무료 확인.
원하는 확인 사항을 선택하세요 — 신분증, 생체 인식, 얼굴 일치, 제재, 주소, 연령, 전화, 이메일, 맞춤 질문. 대시보드에서 흐름으로 드래그하거나 동일한 흐름을 API에 게시하세요. 조건에 따라 분기하고 A/B 테스트를 실행하며 코드가 필요 없습니다.
웹, iOS, Android, React Native 또는 Flutter SDK를 사용하여 기본적으로 임베드합니다. 호스팅된 페이지로 리디렉션합니다. 또는 이메일, SMS, WhatsApp 등 어디든 사용자에게 링크를 보내세요. 스택에 맞는 것을 선택하세요.
Didit은 카메라, 조명 신호, 모바일 핸드오프 및 접근성을 호스팅합니다. 사용자가 흐름을 진행하는 동안 실시간으로 200개 이상의 사기 신호를 채점하고 모든 필드를 신뢰할 수 있는 데이터 소스와 비교하여 확인합니다. 2초 이내에 결과가 나옵니다.
실시간 서명된 웹훅은 사용자가 승인, 거부 또는 검토를 위해 전송되는 즉시 데이터베이스를 동기화 상태로 유지합니다. 필요에 따라 API를 폴링합니다. 또는 콘솔을 열어 모든 세션, 모든 신호를 검사하고 원하는 방식으로 사례를 관리합니다.
Didit · 연령 추정
1단계 / 1
얼굴 중앙에 맞추기
Didit · 워크플로 빌더
Didit · 신분증 확인
Didit · 국가별 규칙
Didit · 규정 준수 매트릭스
Didit · 공개 가격
$ 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"
}'AGE_ESTIMATION 및 ID_VERIFICATION 워크플로를 연결합니다.문서 →$ curl https://verification.didit.me/v3/session/<id>/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
# Returns the path taken
{
"status": "승인됨",
"liveness": { "age_estimation": 27.3 }
}X-Signature-V2를 먼저 확인하십시오.문서 →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 또는 데이터 상주를 위해 엔터프라이즈 잠금 해제.