Key takeaways (TL; DR)
Didit으로 몇 시간 내에 완전한 신원 검증을 붙이고 오늘 바로 런칭할 수 있습니다.
노코드(무코드) 플로우로 빠르게 시작하고, 프로젝트가 커지면 API로 확장해 유연성을 확보하세요.
기본 KYC 요금제는 무료·무제한이므로 첫날부터 비용 없이 스케일할 수 있습니다.
사용자 경험을 해치지 않으면서도 엄격한 규제 준수를 만족하도록 설계되었습니다.
KYC API 통합은 종종 생각보다 복잡합니다. 문서가 중요한 부분을 비워두거나, 샌드박스가 프로덕션과 다르게 동작하거나, 웹훅이 설명 없이 실패하는 경우가 있죠. 이런 경험이 있다면, 이 가이드는 바로 당신을 위한 것입니다.
Didit의 KYC API를 사용하면 몇 시간 만에 문서 + 생체 인식 기반의 실사용 검증 플로우를 구현할 수 있습니다. 1:1 페이스 매치(Face Match)와 패시브 라이브니스(Passive Liveness)는 물론, 서명된 웹훅과 프로덕션과 동일하게 동작하는 샌드박스로 실시간 상태 추적이 가능합니다. 더 빠르게 가고 싶다면 노코드 검증 플로우로 오케스트레이션해 몇 분 만에 라이브할 수도 있습니다.
가장 좋은 점은 Didit의 KYC API가 완전 무료라는 것. 무제한·무상으로 신원 검증을 수행해 즉시 플랫폼 스케일링을 시작하세요.
이 글은 개발자가 작성했고 개발자를 위한 내용입니다. 목표는 몇 초 내 승인되는 세션과 명확한 상태 체계를 갖춘 견고한 검증 흐름을 빠르게 띄우는 것. “KYC API를 하루 만에 붙이는 법”을 찾고 있었다면 정확히 맞는 곳에 오셨습니다.
KYC 솔루션 통합은 신원 검증 서비스 제공자를 통해 신원 확인 요건을 충족하도록 합니다. 이 통합은 사용자 검증을 자동화해 자금세탁방지(AML) 규제 준수에 핵심 역할을 합니다.
일반적으로 KYC는 API(유연성 ↑) 또는 호스티드 검증 URL(속도 ↑)로 붙입니다. 어떤 방식을 택할지는 제품 요구사항과 일정에 달려 있습니다.
표준 통합은 Didit이 호스팅하는 워크플로우, 사용자별 1개의 검증 세션, 플로우 실행을 위한 검증 URL, 실시간 상태 동기화를 위한 서명된 웹훅을 사용합니다. 최소 루프는 다음과 같습니다: workflow_id
로 세션 생성 → 사용자에게 검증 url
전달 → 결정 결과가 담긴 웹훅 수신 → 필요 시 API로 결과 조회. Didit의 모듈러 구조 덕분에 AML 스크리닝, 주소 증명(PoA), 연령 추정 같은 레이어를 기반 코드를 갈아엎지 않고 덧붙일 수 있습니다.
자세한 내용은 전체 문서(API Full Flow)를 확인하세요.
Business Console (무료 가입)에서 왼쪽 메뉴의 API & Webhooks로 이동합니다. 여기서 API Key(요청 헤더 X-Api-Key
로 인증)와 Webhook Secret Key(웹훅 서명 검증용)를 받을 수 있습니다.
동일한 화면에서 상태 변경을 통지할 Webhook URL도 설정하세요.
이 값들은 환경 변수(.env)로 저장하세요:
API_KEY=<YourApiKey>
WEBHOOK_SECRET_KEY=<YourWebhookSecretKey>
WEBHOOK_URL=https://yourapp.com/api/webhooks/didit
다음은 검증 서비스를 호출하는 단계입니다. 아래는 예시이며, workflow_id
, callback
, API_KEY
를 실제 값으로 바꾸세요.
POST /v2/session/
Host: verification.didit.me
Content-Type: application/json
X-Api-Key: {YourApiKey}
{
"workflow_id": "11111111-2222-3333-4444-555555555555", // Replace with your chosen workflow
"callback": "<https://example.com/verification/callback>",
"vendor_data": "user-123", // Your user identifier
"metadata": {
"user_type": "premium",
"account_id": "ABC123"
},
"contact_details": {
"email": "kim.minjun@example.com",
"email_lang": "ko",
"phone": "+821012345678"
}
}
응답에는 session_id
, 초기 status
, Didit 호스티드 플로우로 사용자를 보낼 검증 url
등이 포함됩니다.
{
"session_id": "11111111-2222-3333-4444-555555555555",
"session_number": 1234,
"session_token": "abcdef123456",
"vendor_data": "user-123",
"metadata": { "user_type": "premium", "account_id": "ABC123" },
"status": "Not Started",
"workflow_id": "example_workflow_id",
"callback": "<https://example.com/verification/callback>",
"url": "<https://verify.didit.me/session/abcdef123456>"
}
더 많은 상세와 코드 예시는 문서의 Create Session 섹션에서 확인하세요.
검증 url
이 준비되면 사용자를 리디렉트(가장 간단)하거나, 레이아웃을 유지하고 싶다면 <iframe>
으로 임베드할 수 있습니다. Didit은 워크플로우에 따라 문서 캡처, 셀피, 라이브니스를 오케스트레이션합니다.
각 단계를 마칠 때마다 세션 상태가 전이되고, 해당 내용이 웹훅으로 전달됩니다.
결과는 두 가지 방식으로 수신합니다: 웹훅(Webhooks)(권장) 또는 API 조회. 웹훅을 사용하면 세션 상태 변경 시 백엔드가 실시간 알림을 받으므로, 폴링 없이 단일 소스 오브 트루스를 유지할 수 있습니다.
웹훅의 정당성을 보장하려면, 요청 헤더 X-Signature
의 서명을 WEBHOOK_SECRET_KEY
로 항상 검증하세요. 또한 X-Timestamp
를 점검해 짧은 유효 시간(예: 5분)을 벗어나는 요청은 거부해 재전송/재생 공격을 방지합니다.
자세한 내용과 추가 예시는 문서의 Webhooks 섹션에 있습니다.
웹훅이 누락되었을 가능성 등으로 상태 조정이 필요하다면 온디맨드로 결정값을 조회할 수 있습니다:
GET <https://verification.didit.me/v2/session/{sessionId}/decision/>
X-Api-Key: <YourApiKey>
시스템에서 상태를 일관되게 매핑하세요(예: Not Started → In Progress → In Review → Approved / Declined / Abandoned). 각 전이를 UI·지표에 반영하면 제품/지원/분석 간 모호함을 줄일 수 있습니다.
플로우를 더 세밀하게 제어해야 하나요? Didit의 스탠드얼론 API를 사용해 보세요. 올인원 KYC API(신분증 검증, 1:1 페이스 매치, 패시브 라이브니스) 외에도, 필요한 기능만 골라 맞춤형 검증 파이프라인을 구성할 수 있습니다.
Didit 스탠드얼론 API로 할 수 있는 것들:
Didit은 무료·무제한 신원 검증 플랜을 제공합니다. 즉, KYC API 사용 비용은 0원입니다. 한 번을 쓰든 수백 번을 쓰든 동일합니다.
숨은 약정, 번들, 장기 계약이 없습니다. Didit은 단순·개방·유연·경제적인 대안으로, 기존 벤더 대비 **최대 70%**까지 절감할 수 있습니다. 비즈니스 모델은 선택적 기능(AML Screening, Proof of Address, Phone/Email Verification 등)과 스탠드얼론 API 사용량 기반으로 구성됩니다.
스탠드얼론 API 가격을 확인하세요.