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




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

피싱 방지 · SIM 스왑 방지
두 번째 요소는 사용자가 가입 시 등록한 초상화와 1:1로 매칭되는 사용자 얼굴입니다. 라이브니스(Liveness)는 동일한 프레임에 대한 인쇄/재생/마스크/생성적 적대 신경망(GAN) 공격을 차단합니다. 엔트리 레벨 Android에서 2초 미만의 판정. 인증당 $0.10. 매월 500회 무료 인증.
원하는 검사(ID, 라이브니스, 얼굴 매칭, 제재, 주소, 연령, 전화, 이메일, 맞춤 질문)를 선택하세요. 대시보드에서 흐름으로 드래그하거나 동일한 흐름을 API에 게시하세요. 조건에 따라 분기하고 A/B 테스트를 실행하며 코드가 필요 없습니다.
당사의 웹, 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..."
}'portrait_image에 대해 LIVENESS + FACE_MATCH를 실행합니다.문서 →$ 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"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 호출, 웹훅 및 Business Console 세션에서 전송 중 Transport Layer Security 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에서 확인할 수 있습니다.
기존 일회용 비밀번호 콜백 계약에 바로 적용할 수 있습니다.
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) 서버는 두 가지 표면을 모두 제공합니다.
Face Match 1:1은 적당한 외모 변화(수염, 안경, 머리 색깔, 조명)에도 강합니다. 인증마다 반환되는 유사성 점수는 모델의 신뢰도를 반영합니다.
자동 승인 임계값을 벗어나는 사용자(일반적인 경우: 극적인 체중 변화, 수술, 오랜 기간 동안의 노화)의 경우, 결과는 In Review로 반환되어 운영 대기열로 라우팅됩니다. 표준 복구 경로는 재등록 세션입니다. 한 번의 KYC 호출로 인물 사진을 새로 고치고, 다음 인증에서는 새 템플릿을 사용합니다.
고유성(inherence) 범주에 대해서는 그렇습니다. 유럽 은행 감독청(EBA)의 강력한 고객 인증에 대한 규제 기술 표준은 생체 속성(사용자가 가진 것)을 다른 두 범주(지식 또는 소유) 중 하나와 결합할 때 유효한 두 번째 요소로 인정합니다.
완전한 PSD2 강력한 고객 인증 흐름을 위해서는 생체 2단계 인증을 사용자의 비밀번호(지식) 또는 기기 바인딩 세션(소유)과 결합하십시오. 서명된 Didit 결과는 고유성 요소에 대한 감사 증거입니다.