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


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

SMS OTP가 사라지는 이유
PSD3는 SMS 일회용 비밀번호(OTP)를 강력한 고객 인증(SCA) 요소에서 단계적으로 제외하고 있습니다. Didit의 기기 기반 생체 인식 SCA는 SIM 스왑, 실시간 피싱, SS7 가로채기를 차단하며, 건당 $0.13의 비용으로 2초 미만의 결과를 제공하고 동적 연결(dynamic-linking)을 지원합니다. 매월 500건의 인증을 무료로 이용할 수 있습니다.
ID, 본인 확인, 얼굴 매칭, 제재 목록, 주소, 연령, 전화번호, 이메일, 맞춤 질문 등 필요한 검사를 선택하세요. 대시보드에서 드래그하여 플로우를 만들거나, API를 통해 동일한 플로우를 게시할 수 있습니다. 조건에 따라 분기하고 A/B 테스트를 실행할 수 있으며, 코드가 필요 없습니다.
Didit의 Web, iOS, Android, React Native, Flutter SDK를 사용하여 네이티브로 임베드하세요. 호스팅된 페이지로 리디렉션하거나, 이메일, SMS, WhatsApp 등 어디든 사용자에게 링크를 보내기만 하면 됩니다. 스택에 맞는 방식을 선택하세요.
Didit은 카메라, 조명 안내, 모바일 핸드오프, 접근성을 호스팅합니다. 사용자가 플로우를 진행하는 동안, Didit은 200개 이상의 사기 신호를 실시간으로 분석하고 모든 필드를 신뢰할 수 있는 데이터 소스와 대조하여 확인합니다. 2초 이내에 결과를 제공합니다.
실시간 서명된 웹훅은 사용자가 승인, 거부 또는 검토 대상으로 분류되는 즉시 데이터베이스를 동기화합니다. 필요에 따라 API를 폴링하거나, 콘솔을 열어 모든 세션, 모든 신호를 검사하고 케이스를 직접 관리할 수 있습니다.
Didit · SCA 요소
지식
비밀번호 · PIN
선택 사항
소유
연동된 기기
Didit ✓
내재
얼굴 · 생체 인식
Didit ✓
Didit · 동적 연결
Didit · 공격 매트릭스
Didit · 면제 엔진
Didit · 기기 및 IP 분석
Didit · 인증당 비용
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_sca_biometric",
"vendor_data": "user-42",
"metadata": { "purpose": "login" },
// base64 KYC enrolment selfie, ≤ 1MB
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'상태 승인됨 · 거부됨 · 검토 중$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_sca_biometric",
"vendor_data": "user-42",
"metadata": { "amount": "247.50", "payee_account": "ES91…1332" },
// base64 KYC enrolment selfie, ≤ 1MB
"portrait_image": "/9j/4AAQSkZJRgABAQE..."
}'웹훅이 확인을 위해 금액 + 수취인을 반환합니다.You are integrating Didit's Strong Customer Authentication into a payment service provider, bank, EMI, or wallet to satisfy PSD3 / the Payment Services Regulation (PSR). Two factors in one prompt:
1. Inherence — Biometric Authentication: Passive Liveness + Face Match 1:1 against the user's previously-enrolled KYC selfie.
2. Possession — Device & IP Analysis: 200+ real-time fraud signals binding the auth to the user's known device.
Pricing (verified live 2026-05-16):
- Biometric Authentication: $0.10 per auth
- Device & IP Analysis: $0.03 per auth
- Total: $0.13 per Strong Customer Authentication
- First 500 verifications free every month, forever
- Re-uses the enrolled selfie from the original KYC — no re-enrolment
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60 seconds, no credit card).
- Webhook endpoint with HMAC SHA-256 verification of the X-Signature-V2 header.
- A workflow_id from the no-code Workflow Builder configured as a Biometric Authentication workflow (Passive Liveness + Face Match 1:1 + Device & IP Analysis).
- The user has previously completed a Didit KYC (the same enrolled selfie backs every subsequent auth).
STEP 1 — Open an authentication session
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body (for login auth):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/auth/callback",
"metadata": {
"purpose": "login",
"session_id": "<your front-end session id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor; OMIT only if the workflow is liveness-only>"
}
Body (for payment with dynamic linking):
{
"workflow_id": "<wf id for SCA biometric auth>",
"vendor_data": "<your user id>",
"callback": "https://<your-app>/payment/callback",
"metadata": {
"purpose": "payment",
"amount": "247.50",
"currency": "EUR",
"payee_account": "ES9121000418450200051332",
"payee_name": "<merchant or recipient>",
"transaction_reference": "<your internal transaction id>"
},
"portrait_image": "<base64 JPEG of the user's KYC enrolment selfie, ≤ 1 MB — REQUIRED for SCA's inherence factor>"
}
Response: 201 Created with the hosted session URL. Push the URL to the user via deep-link / push notification / in-app sheet.
STEP 2 — User completes the biometric auth
The user sees one prompt on their phone (or via the Didit SDK in your native app). Three things happen on the same screen:
1. The amount + payee are displayed (dynamic linking — the user explicitly approves THIS amount to THIS payee for payments).
2. Passive Liveness defeats screen replay, printed photo, mask, deepfake.
3. Face Match 1:1 matches the new selfie against the enrolled KYC selfie.
Device & IP Analysis runs server-side on the session. Sub-2-second median verdict.
STEP 3 — Read the signed webhook on the auth verdict
Didit POSTs to your callback. Session statuses (Title Case With Spaces):
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"ip_analysis": { "status": "Approved", "vpn_detected": false, "datacenter_ip": false },
"metadata_echo": {
"amount": "247.50",
"payee_account": "ES9121000418450200051332"
}
}
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.
For payments, verify that metadata_echo.amount and metadata_echo.payee_account match the values you passed in. If they do not, REJECT the payment — it's a dynamic-linking violation.
STEP 4 — Branch on verdict
Approved → unlock the action (login, payment, account change).
In Review → hold the action, route to manual review queue.
Declined → block, log the attempt, surface a friendly "try again" to the user.
Resubmitted → the user re-submitted after a soft fail (poor lighting, occlusion); proceed if the latest status is Approved.
STEP 5 — Retrieve the full decision later
GET https://verification.didit.me/v3/session/{sessionId}/decision/
Headers:
x-api-key: <your api key>
Returns the full payload: liveness verdict (iBeta Level 1 anti-spoof certified), Face Match similarity score, device fingerprint, IP geolocation, VPN / proxy / datacenter flags, 200+ fraud-signal score, dynamic-linking echo, HMAC signature.
Use this for the audit-trail surface a regulator examines on Strong Customer Authentication coverage.
STEP 6 — Step up on risk
When Device & IP Analysis surfaces a high-risk signal (new device + high-value payment, VPN/proxy on a login, geolocation jump), your workflow can step up to:
- A separate hardware-key challenge (FIDO2 / WebAuthn)
- A trusted-beneficiary whitelist confirmation
- A manual-review hold
Encode the step-up policy in the no-code Workflow Builder — no redeploy required.
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. Never UPPER_SNAKE_CASE on a session.
- Dynamic linking is REQUIRED for payments — pass amount + payee in metadata, verify the echo on the webhook.
- The enrolled selfie that backs every SCA is the one captured during the user's original KYC — no separate enrolment step.
- PSD3 / PSR exemptions (low-value remote < EUR 30, contactless point-of-sale < EUR 50, recurring identical, trusted beneficiary, Transaction Risk Analysis tiers) are configured per workflow in the Business Console.
- Default record retention is 5 years per the EU AML and payments rules.
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
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 인프라는 모든 세션에서 동적으로 학습하며 매일 개선됩니다.
강력한 고객 인증(SCA)은 EU의 결제 서비스 규정에서 나온 규칙으로, 고객이 계정에 로그인하거나 결제를 시작할 때 최소 두 가지의 독립적인 요소 범주를 사용하여 고객을 인증해야 한다고 명시합니다.
세 가지 범주:
두 가지 요소는 다른 범주에서 와야 합니다. 비밀번호와 보안 질문은 둘 다 지식 범주에 속하므로 SCA가 아닙니다. 비밀번호와 지문은 범주가 다르므로 SCA입니다.
세 번째 요구 사항인 동적 연결은 결제에 대한 두 번째 요소가 거래 금액 및 수취인과 고유하게 연결되어야 한다고 명시합니다. 따라서 도난당한 코드가 다른 거래에 재사용될 수 없습니다.
PSD3는 Payment Services Directive 3의 약자로, 2018년에 도입된 PSD2 규칙을 2026년에 EU가 재작성한 것입니다. 이와 함께 Payment Services Regulation (PSR)이 있으며, 이는 회원국에서 별도의 국내법 제정 없이 직접 적용됩니다.
PSD2 대비 주요 변경 사항:
전환은 점진적으로 이루어지며, 대부분의 SCA 변경 사항은 최종 채택 후 18~24개월 이내에 발효될 것으로 예상됩니다.
전체 플로우는 일반적으로 처음부터 끝까지 30초 미만이 소요됩니다. 신분증을 들고, 문서를 촬영하고, 셀카를 찍으면 끝입니다. 이는 시장에서 가장 빠른 속도입니다. 기존 KYC 제공업체는 동일한 플로우에 90초 이상이 소요되는 경우가 많습니다.
백엔드에서 Didit은 사용자가 셀카를 완료한 순간부터 웹훅이 발생하는 순간까지 p99 기준 2초 미만으로 결과를 반환합니다. 모바일 캡처는 느린 휴대폰과 느린 네트워크에 최적화되어 있습니다: 점진적 이미지 압축, 지연 소프트웨어 개발 키트 로드, 그리고 사용자가 웹에서 시작할 경우 QR 코드를 통해 데스크톱에서 휴대폰으로 한 번의 탭으로 전환하는 기능이 있습니다.
기본적으로 SCA가 필요한 경우:
면제되는 경우 (PSD3는 대부분의 PSD2 면제를 유지하지만, 임계값을 강화합니다):
면제 계산을 정확히 하는 것은 대부분의 팀이 수행하는 가장 효과적인 SCA 최적화 작업입니다. 잘 적용하면 사기 증가 없이 인증 마찰을 줄일 수 있습니다.
모든 세션은 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에서 확인하세요.
모든 환경에서 동일한 POST /v3/session/ API를 사용하지만, 사용자 대면 캡처 방식은 다릅니다:
사용자가 KYC 시점에 등록한 동일한 생체 인식 템플릿이 모든 인증에 사용됩니다. 재등록이나 별도의 흐름이 필요 없습니다.
네, 동일한 인증 번들로 대부분의 동등한 글로벌 규정을 충족합니다:
하나의 API, 하나의 인증 번들로 모든 관할권을 지원합니다. 면제 계산은 변경될 수 있지만, 기술적 계약은 변경되지 않습니다.
모든 인증은 비즈니스 콘솔에서 내보낼 수 있는 서명된 증거 기록을 생성합니다:
Pending에서 Approved 또는 Declined까지 상태 기계화된 모든 단계, 에스컬레이션된 경우 검토자 메모 포함모든 기록은 유럽 연합(EU 데이터 센터)에 저장되며, 구독이 활성 상태인 동안 무기한 보관됩니다. 기본 기록 보관 기간은 EU AML 및 결제 규정에 따라 5년이며, 감독 기관의 지침에 따라 연장 가능합니다.