아키텍처
인증
모든 요청에는 애플리케이션의 API 키를 담은x-api-key 헤더가 필요합니다. 키 교체, 환경 분리, 권한 범위에 대해서는 API 인증을 참고하세요.
세션 생성
엔드포인트는POST /v3/session/ 하나입니다. 세션이 KYC인지 KYB인지는 워크플로의 유형으로 결정되므로, 별도의 “business” 플래그는 필요하지 않습니다.
생성 시 권장 필드:
전체 스키마는 세션 생성을 참고하세요.
호스팅 링크 전달
응답의url은 호스팅 인증 링크입니다. 전달 방법은 다음과 같습니다.
- 자체 플랫폼에서 이메일로 보냅니다.
- 온보딩 UI에 링크로 삽입합니다.
- 앱 내 웹뷰(iOS / Android / React Native)에서 엽니다.
폴링과 webhook
Webhook은 권장 방식입니다. 처리가 끝나면 Didit이 구독한 엔드포인트로 완료 이벤트를 POST합니다. 폴링은 개발 중이거나 webhook 엔드포인트에 접근할 수 없을 때 사용할 수 있습니다.- 지수 백오프를 적용해
GET /v3/session/{id}/decision/을 폴링합니다. 처음에는 10초마다, 최대 60초 간격까지 늘립니다. status가"Approved","Declined","In Review"중 하나이면 폴링을 중단합니다.
Webhook 처리
관심 있는 이벤트를 구독하세요. 같은 이벤트가 KYC와 KYB 모두에 사용되며, 기업 세션의 이벤트를 식별하려면 페이로드 안의session_kind: "business"를 확인합니다.
status.updated: 세션 상태가 변경되었습니다. KYB 세션을 필터링하려면session_kind === "business"를 조건으로 사용하세요.data.updated: 검토자가 콘솔에서 등기 데이터나 주요 인물 정보를 수정했거나, 등기부에서 변경을 보고한 경우입니다. 신청자가 문서를 업로드하거나 주요 인물을 제출할 때는 전송되지 않으므로, 그 경우에는status.updated를 따르세요. 같은session_kind필터를 적용합니다.business.status.updated/business.data.updated: 연결된 기업 엔티티가 변경되었습니다.
결정 처리
재제출 흐름
기업 확인(KYB) 세션이Resubmitted로 전환되거나 기능이 재제출 대상으로 표시되면, 기업은 수정되었거나 추가된 데이터를 업로드해야 합니다.
다음과 같이 대응할 수 있습니다.
- 같은
url을 다시 전달하세요. 호스팅 플로우는 재제출이 필요한 지점부터 이어서 진행됩니다. - 사용할 수 없게 된 주요 인물 링크를 다시 발급하세요. 하위 KYC 세션이 삭제되었거나 해당 인물이 시작하기 전에 만료된 당사자에게는 주요 인물 KYC 세션 재생성으로 새 세션을 받을 수 있습니다.
- Business Console에서 케이스를 열어 내부적으로 주고받는 과정을 추적하세요.
자체 프런트엔드에서 단계 실행
문서 및 주요 인물 단계는 API 키를 사용해 서버에서 직접 진행할 수도 있습니다. 이 방식을 사용하면 사용자 인터페이스는 직접 관리하고, 인증과 결정은 Didit이 담당합니다. 모든 호출은 KYB 세션에 한정되며,write:businesses 권한이 필요합니다(추출된 당사자를 읽을 때는 read:businesses 또는 read:sessions도 허용됩니다). 호스팅 페이지와 동일한 검사, 결제, 단계 진행을 수행합니다.
- 세션이 KYB 문서 단계에 있는 동안 법인 문서를 업로드하세요.
- 주주를 포함해 문서에 명시된 당사자와 소유 비율을 읽고, 신청자에게 보여 주세요.
- 당사자 초안을 생성, 수정, 삭제할 수 있습니다. 초안은 신고된 상태가 아니며 비용이 발생하지 않습니다.
- 초안을 제출하세요. Didit이 검증해야 할 당사자를 결정하고, 각 당사자에 대해 KYC 세션을 생성한 뒤
kyc_session_url을 반환합니다. 이 URL을 전송하거나 삽입하면 됩니다. - 호스팅 플로우와 마찬가지로 세션에서 통합 결정을 읽으세요.
409 kyb_step_mismatch와 함께 현재 단계가 응답으로 반환됩니다. 완료된 세션에 호출하면 409 kyb_session_not_writable이 반환됩니다.
기업 프로필 집계
세션 생성 시vendor_data를 전달하면, Didit이 해당 기업의 모든 세션을 하나의 기업 엔티티로 집계합니다. 세션을 일일이 순회하지 않고도 “이 기업이 지금 완전히 인증되었는가?”를 확인하려면 엔티티의 features 맵을 사용하세요.
이점은 다음과 같습니다.
- 주기적인 KYB 재검증이 같은 프로필에 누적됩니다.
- 같은
vendor_data로 모니터링되는 거래에는 기업의 위험 맥락이 함께 포함됩니다. - 사용자 엔티티에 연결된 실소유자와 임원이 엔티티 간 관계를 채웁니다.
모범 사례
오류 처리
속도 제한 전체 참조 문서를 확인하십시오.
다음 단계
webhook
모든 KYB 이벤트와 payload.
상태
상태 머신 참조.
응답 스키마
KYB 결정 결과 해석.