무료
월 $0. 신용카드 정보가 필요 없습니다.
- 무료 KYC 번들 (신분증 확인 + 패시브 라이브니스 + 얼굴 매칭 + 기기 및 IP 분석), 매월 500건 제공
- 차단된 사용자
- 중복 감지
- 모든 세션에서 200개 이상의 사기 신호 감지
- Didit 네트워크 전반에 걸쳐 재사용 가능한 KYC
- 사례 관리 플랫폼
- 워크플로 빌더
- 공개 문서, 샌드박스, SDK, MCP(Model Context Protocol) 서버
- 커뮤니티 지원


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

피싱 방지 · SIM 스왑 방지
두 번째 인증 요소는 사용자의 얼굴이며, 가입 시 등록한 얼굴과 1:1로 매칭됩니다. 라이브니스(Liveness) 기술은 동일 프레임에 대한 인쇄물 / 재생 / 마스크 / 생성적 적대 신경망(GAN) 공격을 차단합니다. 보급형 Android 기기에서도 2초 이내에 인증 결과를 제공합니다. 인증당 $0.10, 매월 500회 무료 인증을 제공합니다.
원하는 검사 항목(ID, 라이브니스, 얼굴 매칭, 제재 목록, 주소, 연령, 전화, 이메일, 맞춤 질문)을 선택하세요. 대시보드에서 플로우로 드래그하거나, 동일한 플로우를 API에 게시하세요. 조건에 따라 분기하고 A/B 테스트를 실행할 수 있으며, 코드가 필요 없습니다.
Web, iOS, Android, React Native, Flutter SDK를 사용하여 네이티브로 임베드하세요. 호스팅된 페이지로 리디렉션하거나, 이메일, SMS, WhatsApp 등 어디든 사용자에게 링크를 보내세요. 스택에 맞는 방식을 선택하세요.
Didit은 카메라, 조명 안내, 모바일 핸드오프 및 접근성을 호스팅합니다. 사용자가 플로우를 진행하는 동안, 200개 이상의 사기 신호를 실시간으로 분석하고 모든 필드를 신뢰할 수 있는 데이터 소스와 대조하여 확인합니다. 2초 이내에 결과를 제공합니다.
실시간 서명된 웹훅은 사용자가 승인, 거부 또는 검토 대상으로 지정되는 즉시 데이터베이스를 동기화합니다. 필요에 따라 API를 폴링하거나, 콘솔을 열어 모든 세션, 모든 신호를 검사하고 케이스를 관리할 수 있습니다.
Didit · 생체 인증
송금 확인
얼굴 인증으로 승인
Didit · 얼굴 매칭 1:1
등록됨
유사성
0.96
일치실시간
Didit · 공격 매트릭스
Didit · 스텝업 트리거
Didit · 웹훅 · X-Signature-V2
페이로드
{
"session_id": "<uuid>",
"vendor_data": "user-42",
"status": "Approved",
"face": {
"status": "Approved",
"similarity_score": 0.96
}
}Didit · 경제학
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_bio_2fa",
"workflow_type": "biometric_authentication",
"vendor_data": "user-42",
// base64 reference selfie, ≤ 1MB (omit for liveness-only)
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'{ "session_url": "verify.didit.me/..." }$ curl -X POST https://verification.didit.me/v3/face-match/ \
-H "x-api-key: $DIDIT_API_KEY" \
-F "image_a=@live.jpg" \
-F "image_b=@enrolled.jpg"{ "status": "승인됨", "similarity_score": 0.96 }You are integrating Didit's Biometric 2FA into <my_stack>. Replace SMS one-time-password (OTP) on sensitive flows — login from a new device, large-value transfer, settings change, account recovery — with a sub-2-second face match against the user's enrolled portrait. Cheaper than SMS. Phishing-resistant. SIM-swap-proof.
1. Enrol the user's portrait ONCE at sign-up via the standard Know Your Customer (KYC) session.
2. On every sensitive action, open a Biometric Authentication session that runs Passive Liveness + Face Match 1:1 against the stored portrait. Verdict in sub-2-seconds.
Pricing (public):
- Biometric Authentication: $0.10 per authentication (Sessions API)
- Standalone Face Match 1:1: $0.05 per match (server-to-server)
- 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.
- The user has previously enrolled — either via a full KYC session (recommended; the portrait is stored automatically and never leaves Didit) or via a portrait you supply on each re-auth.
- A workflow_id from the Workflow Builder. The workflow MUST contain LIVENESS, and the session must be opened with workflow_type = "biometric_authentication" (or use a workflow that has FACE_MATCH and pass a portrait_image at session creation).
STEP 1 — Enrolment (one-time, at user sign-up)
Run a standard KYC session at sign-up. Didit stores the portrait (the face captured during the liveness step) as the user's enrolled template, bound to vendor_data.
POST https://verification.didit.me/v3/session/
Body:
{
"workflow_id": "<your KYC workflow>",
"vendor_data": "<your user id>"
}
No additional code — once the user passes KYC, their enrolled portrait is ready for every future re-auth.
STEP 2 — Re-authentication (on every sensitive action)
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<your biometric_authentication workflow>",
"workflow_type": "biometric_authentication",
"vendor_data": "<the same user id used at enrolment>",
"callback": "https://<your-app>/2fa/callback",
"metadata": {
"reason": "<login_new_device | high_value_txn | settings_change | account_recovery>",
"amount": "<optional, for large-value transfers>"
},
"portrait_image": "<base64 JPEG of the user's enrolment selfie, ≤ 1 MB — REQUIRED when the workflow has FACE_MATCH active; OMIT for liveness-only mode>"
}
Response: 201 Created with the hosted session_url. Redirect the user to it. The hosted UI:
- Opens the front camera
- Captures one passive frame
- Runs Liveness + Face Match 1:1 against the user's enrolled portrait
- Returns the verdict in sub-2-seconds
STEP 3 — Read the signed verdict on the webhook
Body (excerpted for a passing re-auth):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved", "method": "PASSIVE", "score": 96 },
"face": {
"status": "Approved",
"similarity_score": 0.96
}
}
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.
Branch your application:
Approved → execute the action (sign in, release the transfer, save settings).
Declined → block the action, re-prompt with a higher-friction recovery path (support contact / KYC re-do).
In Review → hold; route to your operations queue.
Not Finished → user abandoned the capture; safe to re-prompt or fall back.
STEP 4 — Alternate path (server-to-server, when you already have the selfie)
If you already captured the selfie locally (native mobile SDK, in-app camera):
POST https://verification.didit.me/v3/face-match/
Headers:
x-api-key: <your api key>
Body (multipart/form-data):
image_a <the live selfie>
image_b <the enrolled portrait>
Response: similarity_score (0-1), status (Approved | Declined | In Review).
Use the standalone path only when you trust your client-side capture pipeline. For browser flows or any surface where the SDK is not embedded, always prefer the hosted session — Didit's liveness check is harder to defeat than a raw camera grab.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Always verify X-Signature-V2 on every payload.
CONSTRAINTS
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: LIVENESS, FACE_MATCH, ID_VERIFICATION, AML, IP_ANALYSIS, AGE_ESTIMATION.
- 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.
- The biometric template is irreversible (a one-way hash) and stored on Didit's infrastructure. You never receive the raw template. Standard data-subject-deletion rules apply.
PRO TIPS
- Pair Biometric 2FA with Device & IP Analysis (bundled into the 200+ fraud-signal stack). A re-auth that originates from a brand-new device + a brand-new IP should always step up to face.
- For the strongest possible surface, swap method PASSIVE for ACTIVE_3D — a short motion challenge — on transfers above your operational risk threshold.
Read the docs:
- https://docs.didit.me/core-technology/biometric-auth/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 또는 데이터 상주를 위해 엔터프라이즈 잠금 해제.
Didit은 신원 및 사기 방지를 위한 인프라입니다. 저희가 직접 제품을 만들 때 있었으면 했던 플랫폼으로, 개방적이고 유연하며 개발자 친화적이어서 블랙박스처럼 통합하는 대신 개발자님의 스택의 실제 부분으로 작동합니다.
하나의 API로 사람 확인(KYC, 고객 알기), 기업 확인(KYB, 기업 알기), 암호화폐 지갑 심사(KYT, 거래 알기), 실시간 거래 모니터링을 처리하며, 다음과 같은 스택으로 구축되었습니다:
기반 기술: 48개 이상의 언어로 된 14,000개 이상의 문서 유형, 1,000개 이상의 데이터 소스, 모든 세션에서 200개 이상의 사기 신호를 분석합니다. Didit 인프라는 모든 세션에서 동적으로 학습하며 매일 개선됩니다.
네트워크를 통해 전송되는 코드가 아닌, 사용자의 얼굴을 이용한 2단계 인증입니다. 첫 번째 요소는 사용자가 아는 것(비밀번호, 패스키, 매직 링크)이고, 두 번째 요소는 사용자가 누구인지, 즉, 사용자가 이전에 등록한 인물 사진과 1:1로 매칭되는 라이브 셀카입니다.
이는 애플리케이션 플로우에서 SMS 일회용 비밀번호(OTP)와 동일한 위치에 있지만, 비용, 보안 및 전환 프로필이 다릅니다.
네 가지 잘 알려진 공격 유형이 이를 무력화합니다. 미국 연방수사국(FBI)과 영국 국립사이버보안센터(NCSC)는 모두 민감한 플로우에 SMS 사용을 피하도록 조직에 지침을 발표했습니다.
전체 플로우는 일반적으로 처음부터 끝까지 30초 미만이 소요됩니다., 신분증을 들고, 문서를 촬영하고, 셀카를 촬영하면 끝입니다. 이는 시장에서 가장 빠른 속도입니다. 기존 KYC 제공업체는 동일한 플로우에 90초 이상이 소요되는 경우가 많습니다.
백엔드에서 Didit은 사용자가 셀카를 완료한 순간부터 웹훅이 실행되는 순간까지 p99 기준 2초 미만으로 결과를 반환합니다. 모바일 캡처는 느린 휴대폰과 느린 네트워크에 최적화되어 있습니다: 점진적 이미지 압축, 지연 소프트웨어 개발 키트 로드, 그리고 사용자가 웹에서 시작하는 경우 QR 코드를 통해 데스크톱에서 휴대폰으로 원탭 핸드오프가 가능합니다.
대부분의 팀은 사용자의 초기 KYC(Know Your Customer) 세션 중에 등록을 진행합니다. 라이브니스 단계에서 캡처된 인물 사진은 개발자님의 vendor_data에 바인딩되어 저장되며, 이후 모든 재인증을 위한 템플릿으로 사용됩니다.
가입 시 KYC를 실행하지 않는 경우, LIVENESS + FACE_MATCH만 포함된 Didit 워크플로우에 대해 일회성 등록 세션을 실행할 수 있습니다. 두 경로 모두 한 번에 $0.10의 비용이 들며, 생성된 템플릿은 향후 모든 인증에 재사용할 수 있습니다.
모든 세션은 7가지 명확한 상태 중 하나로 처리되므로, 개발자님의 코드는 항상 다음 단계를 알 수 있습니다:
Approved, 모든 검사를 통과했습니다. 사용자를 다음 단계로 진행하세요.Declined, 하나 이상의 검사에 실패했습니다. 전체 플로우를 다시 실행할 필요 없이, 사용자가 특정 실패 단계를 재시도하도록 허용할 수 있습니다(예: 셀카 재촬영).In Review, 규정 준수 검토를 위해 플래그가 지정되었습니다. 콘솔에서 케이스를 열어 모든 신호를 확인하고, 승인 또는 거부를 결정하세요.In Progress, 사용자가 플로우를 진행 중입니다.Not Started, 링크가 전송되었지만, 사용자가 아직 열지 않았습니다. 너무 오래 방치되면 알림을 보내세요.Abandoned, 사용자가 링크를 열었지만, 시간 내에 완료하지 못했습니다. 다시 참여를 유도하거나 만료시키세요.Expired, 세션 링크가 만료되었습니다. 새 세션을 생성하세요.모든 상태 변경 시 서명된 웹훅이 실행되므로, 개발자님의 데이터베이스는 항상 동기화 상태를 유지합니다. 중단되거나 거부된 세션은 무료입니다.
프로덕션 데이터는 기본적으로 Amazon Web Services에서 유럽 연합 내에서 처리 및 저장됩니다. 규제 기관의 요구 사항에 따라 대체 지역을 요청할 수 있는 엔터프라이즈 계약도 가능합니다.
모든 곳에서 암호화됩니다. 모든 데이터베이스, 객체 스토어 및 백업에 AES-256 암호화가 적용됩니다. 모든 API 호출, 웹훅 및 비즈니스 콘솔 세션에는 전송 중 Transport Layer Security 1.3이 적용됩니다. 생체 인식 데이터는 별도의 고객 마스터 키로 암호화됩니다.
데이터 보존 기간은 개발자님이 직접 제어할 수 있습니다. 기본 보존 기간은 무기한(무제한)이며, 애플리케이션별로 30일에서 10년 사이로 더 짧게 구성할 수 있습니다. 또한, 대시보드 또는 API를 통해 언제든지 개별 세션을 삭제할 수 있습니다.
인증: SOC 2 Type 1 (Type 2 감사 진행 중), ISO/IEC 27001:2022, iBeta Level 1 PAD, 그리고 Didit의 원격 신원 확인이 대면 확인보다 안전하다는 스페인 Tesoro / SEPBLAC / CNMV의 공식 인증을 받았습니다. 전체 보고서는 /security-compliance에서 확인하세요.
Didit은 신원 인프라에 중요한 규제 기관에 대해 기본적으로 규정을 준수합니다:
자세한 메모, 모든 인증서, 모든 규제 기관 서신은 /security-compliance에서 확인하세요.
세 가지 통합 경로 중 스택에 가장 적합한 것을 선택하세요:
세 가지 모두 동일한 대시보드, 동일한 청구, 동일한 성공 기반 가격이 적용됩니다. 단계별 가이드는 docs.didit.me/integration/integration-prompt에서 확인하세요.
기존 일회용 비밀번호 콜백 계약에 바로 적용할 수 있습니다.
workflow_type: "biometric_authentication" 및 등록 시 사용한 동일한 vendor_data와 함께 POST /v3/session/을 호출합니다.session_url로 사용자를 리디렉션합니다.X-Signature-V2 헤더를 확인합니다.status에 따라 분기합니다, Approved (액션 실행), Declined (차단), In Review (큐에 추가), Not Finished (재요청).대부분의 팀은 주말 안에 SMS를 얼굴 인증으로 교체합니다. 전체 에이전트 붙여넣기 가능한 프롬프트는 위에 있으며, Model Context Protocol (MCP) 서버는 두 인터페이스 모두 지원합니다.
얼굴 매치 1:1은 적당한 외모 변화 (수염, 안경, 머리 색깔, 조명)에도 강합니다. 인증 시 반환되는 유사성 점수는 모델의 신뢰도를 나타냅니다.
자동 승인 임계값을 벗어나는 사용자 (일반적인 경우: 급격한 체중 변화, 수술, 오랜 기간에 걸친 노화)의 경우, 판정은 In Review로 반환되어 운영 큐로 라우팅됩니다. 표준 복구 경로는 재등록 세션입니다. 한 번의 KYC 호출로 초상화를 새로 고치고, 다음 인증에는 새 템플릿이 사용됩니다.
고유성(inherence) 범주에 대해서는 준수합니다. 유럽 은행 감독청(EBA)의 강력한 고객 인증에 대한 규제 기술 표준은 생체 인식 속성(사용자의 신체적 특성)을 다른 두 범주(지식 또는 소유) 중 하나와 결합할 경우 유효한 두 번째 요소로 인정합니다.
완전한 PSD2 강력한 고객 인증 흐름을 위해서는 생체 인식 2FA를 사용자의 비밀번호(지식) 또는 기기 바인딩 세션(소유)과 결합하세요. 서명된 Didit 판정은 고유성 요소에 대한 감사 증거가 됩니다.