메인 콘텐츠로 건너뛰기
이 가이드는 빠른 시작의 보완 문서입니다. 아키텍처, 연동 시 판단해야 할 모든 사항, 그리고 운영 환경에서 KYB를 안정적으로 운영하기 위한 패턴을 다룹니다.

아키텍처

인증

모든 요청에는 애플리케이션의 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을 사용하세요.

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 webhook을 참고하세요. 서명 검증과 재시도 동작은 webhook 참조에서 확인할 수 있습니다.

결정 처리

상태 전이의 전체 흐름은 KYB 상태를, 결정의 이유를 설명하는 태그는 KYB 경고를 참고하세요.

재제출 흐름

기업 확인(KYB) 세션이 Resubmitted로 전환되거나 기능이 재제출 대상으로 표시되면, 기업은 수정되었거나 추가된 데이터를 업로드해야 합니다. 다음과 같이 대응할 수 있습니다.
  • 같은 url을 다시 전달하세요. 호스팅 플로우는 재제출이 필요한 지점부터 이어서 진행됩니다.
  • 사용할 수 없게 된 주요 인물 링크를 다시 발급하세요. 하위 KYC 세션이 삭제되었거나 해당 인물이 시작하기 전에 만료된 당사자에게는 주요 인물 KYC 세션 재생성으로 새 세션을 받을 수 있습니다.
  • Business Console에서 케이스를 열어 내부적으로 주고받는 과정을 추적하세요.

자체 프런트엔드에서 단계 실행

문서 및 주요 인물 단계는 API 키를 사용해 서버에서 직접 진행할 수도 있습니다. 이 방식을 사용하면 사용자 인터페이스는 직접 관리하고, 인증과 결정은 Didit이 담당합니다. 모든 호출은 KYB 세션에 한정되며, write:businesses 권한이 필요합니다(추출된 당사자를 읽을 때는 read:businesses 또는 read:sessions도 허용됩니다). 호스팅 페이지와 동일한 검사, 결제, 단계 진행을 수행합니다.
  1. 세션이 KYB 문서 단계에 있는 동안 법인 문서를 업로드하세요.
  2. 주주를 포함해 문서에 명시된 당사자와 소유 비율을 읽고, 신청자에게 보여 주세요.
  3. 당사자 초안을 생성, 수정, 삭제할 수 있습니다. 초안은 신고된 상태가 아니며 비용이 발생하지 않습니다.
  4. 초안을 제출하세요. Didit이 검증해야 할 당사자를 결정하고, 각 당사자에 대해 KYC 세션을 생성한 뒤 kyc_session_url을 반환합니다. 이 URL을 전송하거나 삽입하면 됩니다.
  5. 호스팅 플로우와 마찬가지로 세션에서 통합 결정을 읽으세요.
세션이 다른 단계에 있을 때 호출하면 409 kyb_step_mismatch와 함께 현재 단계가 응답으로 반환됩니다. 완료된 세션에 호출하면 409 kyb_session_not_writable이 반환됩니다.

기업 프로필 집계

세션 생성 시 vendor_data를 전달하면, Didit이 해당 기업의 모든 세션을 하나의 기업 엔티티로 집계합니다. 세션을 일일이 순회하지 않고도 “이 기업이 지금 완전히 인증되었는가?”를 확인하려면 엔티티의 features 맵을 사용하세요. 이점은 다음과 같습니다.
  • 주기적인 KYB 재검증이 같은 프로필에 누적됩니다.
  • 같은 vendor_data로 모니터링되는 거래에는 기업의 위험 맥락이 함께 포함됩니다.
  • 사용자 엔티티에 연결된 실소유자와 임원이 엔티티 간 관계를 채웁니다.

모범 사례

오류 처리

속도 제한 전체 참조 문서를 확인하십시오.

다음 단계

webhook

모든 KYB 이벤트와 payload.

상태

상태 머신 참조.

응답 스키마

KYB 결정 결과 해석.
마지막 수정일 2026년 11월 7일