Webhook
웹훅이란?
웹훅은 특정 이벤트가 발생한 경우 고객사 응용프로그램에게 이벤트에 대한 알림이 전달되는 기능을 의미합니다.
웹훅 등록 방법
웹훅 등록을 위해 이벤트를 받을 webhook URL을 헬프데스크로 전달해 주세요.
웹훅 트리거
Submission data는 입력받은 정보만 리턴합니다. 예를 들어 submission 제출 시 cf1, wallet address 등 optional 정보를 입력하지 않은 경우 해당 내용은 response에 포함되지 않습니다.
webhook_trigger | KYC Status | Description |
---|---|---|
submit | Pending | KYC 제출 완료되고, 자동처리되지 않아 수동 검수가 필요한 상태. |
approved | Approved | KYC 승인 |
rejected | Rejected | KYC 거절 |
updated | - | KYC 정보가 변경됨 |
aml | Approved | AML스크리닝 결과 |
delete | - | KYC 제출건을 삭제했을 경우 |
injection | - | 전달되는 웹훅의 타입 |
KYC Status Change
webhook_trigger 가 [approved, rejected, updated] 중 한 가지일 경우 아래 3가지 파라미터 추가 반환합니다.
단, submission 데이터에 해당 데이터가 존재하는 경우에 한 함 (gender, date_of_birth, nationality)
Key | Value | Description |
---|---|---|
webhook_trigger | submit, approved, rejected, updated | submit: KYC 제출 완료 후 'pending'상태 approved: KYC 제출과 동시에 자동으로 승인되었거나 pending인 KYC가 승인됨 rejected: KYC 제출과 동시에 자동으로 거절되었거나 pending인 KYC가 거절됨 updated: 제출된 KYC의 정보가 업데이트됨 |
kyc_result | KYC 제출 결과 오브젝트 | |
kyc_result.status | approved / rejected | KYC 검수 결과 |
kyc_result.update_at | {update_at} | KYC 제출 상태가 approved 혹은 rejected로 변경 된 시점(UTC+0) |
kyc_result.comment | {comment} | 거절 사유에 대한 메세지 ※ webhook_trigger가 rejected일 때만전송 됨. |
submission_id | {submission_id} | 각 KYC 제출 건이 가지는 고유의 구분 값 |
applicant_id | {applicant_id} | 중복 제출을 확인하기 위해 부여되는 고유 식별 ID로, KYC Status 가 Approved일 때만 전달 됩니다. |
created_at | {create_at} | submission_id가 생성된 시점(UTC+0) |
{email} | KYC 제출자의 이메일 | |
userid | {userid} | 고객사 고유의 KYC제출자 식별자 (≠ submission id) |
cf | object | Step1 Input 데이터에 함께 제출한 cf1 ~ cf3 데이터 묶음 객체 |
cf.cf1 | {cf1} | cf1 필드에 제출한 데이터 |
cf.cf2 | {cf1} | cf2 필드에 제출한 데이터 |
cf.cf3 | {cf3} | cf3 필드에 제출한 데이터 |
account_email | {account_email} | 제출건 삭제를 시도한 어드민 계정 |
delete_time | {delete_time} | 제출건 삭제 일시 |
comment | {comment} | 제출건 삭제 시 남긴 코멘트 |
action | Injection 정보 객체 | |
action.type | address | Injection 타입 |
action.created_at | {created_at} | Injection 실행 시각 |
gender | {gender} | 제출된 사용자의 성별 (male 또는 female) |
date_of_birth | {YYYY-MM-DD} | 제출된 사용자의 생년월일 (YYYY-MM-DD 형식) |
nationality | {nationality} | 제출된 사용자의 국적 (3글자 형식의 국가코드 : ISO alpha3 형식) |
tokenId | {tokenId} | Private mode 에서 live-form 으로 제출 시 사용한 tokenID |
AML Results
KYC 승인 후 AML Screening 절차가 완료되면 AML 결과와 submission 정보가 리턴됩니다. KYC가 거절된 경우에는 AML Screening을 하지 않습니다. KYC가 승인된 경우에만 AML Screening을 하여 결과가 리턴됩니다.
Key | Value | Description | Required |
---|---|---|---|
webhook_trigger | aml | 웹훅의 트리거 타입 | |
submission_id | {submission_id} | 각 KYC 제출 건이 가지는 고유의 구분 값 | |
{email} | KYC 제출자의 이메일 | ||
userid | {userid} | 고객사 고유의 KYC제출자 식별자 (≠ submission id) | |
aml_result | AML 결과 오브젝트 | ||
aml_result.currentstatus | Not Screened / Red Flag | AML 스크리닝 결과 | |
aml_result.risk_level_summary | Not Screened/ HIGH/MEDIUM/LOW | AML 결과 레벨 값 | |
cf | object | Step1 Input 데이터에 함께 제출한 cf1 ~ cf3 데이터 묶음 객체 | |
cf.cf1 | {cf1} | cf1 필드에 제출한 데이터 | |
cf.cf2 | {cf2} | cf2 필드에 제출한 데이터 | |
cf.cf3 | {cf3} | cf3 필드에 제출한 데이터 | |
tokenId | {tokenId} | tokenId 제출 시 반환 |
Example
Approved
Key | Value | Description | Required |
---|---|---|---|
webhook_trigger | approved | approved: KYC 제출과 동시에 자동으로 승인되었거나 pending인 KYC가 승인됨 | |
kyc_result | object | KYC 제출 결과 오브젝트 | |
kyc_result.status | {kyc_result.status} | KYC 검수 결과(approver or reject) | |
kyc_result.updated_at | {kyc_result.updated_at} | KYC 제출 상태가 approved 혹은 rejected로 변경 된 시점(UTC+0) | |
kyc_result.created_at | {kyc_result.created_at} | KYC가 제출된 날짜와 시간 (UTC+0) | |
kyc_result.kyc_result_at | {kyc_result.kyc_result_at} | KYC가 결과가 최초로 정해진 시간으로 approved/rejected 일 때만 출력 됨. (UTC+0) | |
kyc_result.pending_at | {kyc_result.pending_at} | KYC가 Pending으로 제출된 날짜와 시간 (UTC+0) | |
kyc_result.reviewer | {kyc_result.reviewer} | system: AI가 검수 agent: 사람이 검수 | |
applicant_id | {applicant_id} | 중복 제출을 확인하기 위해 부여되는 고유 식별 ID로, KYC Status 가 Approved일 때만 전달 됩니다. | |
submission_id | {submission_id} | 각 KYC 제출 건이 가지는 고유의 구분 값 | |
{email} | KYC 제출자의 이메일 | ||
tokenId | {tokenId} | Private mode 에서 live-form 으로 제출 시 사용한 tokenID | |
cf | object | Step1 Input 데이터에 함께 제출한 cf1 ~ cf3 데이터 묶음 객체 | |
cf.cf1 | {cf.cf1} | cf1 필드에 제출한 데이터 | |
cf.cf2 | {cf.cf2} | cf2 필드에 제출한 데이터 | |
cf.cf3 | {cf.cf3} | cf3 필드에 제출한 데이터 | |
userid | {userid} | 고객사 고유의 KYC제출자 식별자 (≠ submission id) | |
age_group | {age_group} | 제출자의 연령대 (미성년자, 10대 초반, 청소년, 성인) | |
gender | {gender} | 제출된 사용자의 성별 (male 또는 female) | |
date_of_birth | {date_of_birth} | 제출된 사용자의 생년월일 (YYYY-MM-DD 형식) | |
nationality | {nationality} | 제출된 사용자의 국적 (3글자 형식의 국가코드 : ISO alpha3 형식) | |
ipAddress | {ipAddress} | 제출자의 IP 주소 | |
fullName | {fullName} | 제출자명 | |
idType | {idType} | 신분증 종류 | |
issuingCountry | {issuingCountry} | 발급 국가 | |
issueDate | {issueDate} | 발급 일자 | |
expireDate | {expireDate} | 만료 일자 | |
identityNumber | {identityNumber} | 주민등록번호 | |
documentNumber | {documentNumber} | 문서 고유번호 (여권번호, 해외 운전면허 번호 등) | |
addtional_list | [{addtional_list}] | 대시보드에서 설정한 Additional form 에 대해, KYC 진행 시 사용자가 입력한 데이터 아래의 요청 타입의 경우 포함
| |
addtional_list.answer | {addtional_list.answer} | Additional form의 각 항목 명 | |
addtional_list.inputValue | {addtional_list.inputValue} | 각 항목에 대한 사용자 입력값 | |
addtional_list.blockType | {addtional_list.blockType} | 각 항목에 대한 데이터 타입 |
Example
Rejected
Key | Value | Description | Required |
---|---|---|---|
webhook_trigger | rejected | KYC 제출과 동시에 자동으로 거절되었거나 pending인 KYC가 거절됨 | |
submission_id | {submission_id} | 각 KYC 제출 건이 가지는 고유의 구분 값 | |
applicant_id | {applicant_id} | 중복 제출을 확인하기 위해 부여되는 고유 식별 ID로, KYC Status 가 Approved일 때만 전달 됩니다. | |
{email} | KYC 제출자의 이메일 | ||
kyc_result | object | KYC 제출 결과 오브젝트 | |
kyc_result.status | {kyc_result.status} | KYC 검수 결과(approved/reject) | |
kyc_result.updated_at | {kyc_result.updated_at} | KYC 제출 상태가 approved 혹은 rejected로 변경 된 시점(UTC+0) | |
kyc_result.comment | [{kyc_result.comment | 거절 사유 | |
kyc_result.commentCode | {kyc_result.commentCode} | 거절 사유 코드 | |
cf | object | Step1 Input 데이터에 함께 제출한 cf1 ~ cf3 데이터 묶음 객체 | |
cf.cf1 | {cf.cf1} | cf1 필드에 제출한 데이터 | |
cf.cf2 | {cf.cf2} | cf2 필드에 제출한 데이터 | |
cf.cf3 | {cf.cf3} | cf3 필드에 제출한 데이터 | |
userid | {userid} | 고객사 고유의 KYC제출자 식별자 (≠ submission id) | |
tokenId | {tokenId} | Private mode 에서 live-form 으로 제출 시 사용한 tokenID | |
ipAddress | {ipAddress} | 제출자의 IP 주소 |
Example
Updated
Key | Value | Description | Required |
---|---|---|---|
webhook_trigger | updated | 제출된 KYC의 정보가 업데이트됨 | |
submission_id | {submission_id} | 각 KYC 제출 건이 가지는 고유의 구분 값 | |
{email} | KYC 제출자의 이메일 | ||
data | object | KYC 데이터 객체 | |
data.update | [Array] | 업데이트 된 필드 리스트 | |
data.kyc_result | {data.kyc_result} | KYC 제출 결과 | |
data.created_at | {data.created_at} | KYC가 제출된 날짜와 시간 (UTC+0) | |
data.kyc_result_at | {data.kyc_result_at} | KYC가 결과가 최초로 정해진 시간으로 approved/rejected 일 때만 출력 됨. (UTC+0) | |
data.pending_at | {data.pending_at} | KYC 제출 상태가 pending된 시점(UTC+0) | |
data.reviewer | {data.reviewer} | system: AI가 검수 agent: 사람이 검수 | |
data.kyc_result | {data.kyc_result} | KYC 제출 결과 | |
admin | {admin} | 대시보드에서 업데이트한 관리자 이메일 | |
update_time | {update_time} | 대시보드에서 업데이트한 시간 | |
userid | {userid} | 고객사 고유의 KYC제출자 식별자 (≠ submission id) | |
tokenId | {tokenId} | Private mode 에서 live-form 으로 제출 시 사용한 tokenID | |
age_group | {age_group} | 제출자의 연령대 (미성년자, 10대 초반, 청소년, 성인) | |
gender | {gender} | 제출된 사용자의 성별 (male 또는 female) | |
date_of_birth | {date_of_birth} | 제출된 사용자의 생년월일 (YYYY-MM-DD 형식) | |
nationality | {nationality} | 제출된 사용자의 국적 (3글자 형식의 국가코드 : ISO alpha3 형식) | |
ipAddress | {ipAddress} | 제출자의 IP 주소 | |
fullName | {fullName} | 제출자의 이름 | |
idType | {idType} | 신분증 종류 | |
issuingCountry | {issuingCountry} | 발급 국가 | |
issueDate | {issueDate} | 발급 일자 | |
expireDate | {expireDate} | 만료 일자 | |
identityNumber | {identityNumber} | 주민등록번호 | |
documentNumber | {documentNumber} | 문서고유번호 | |
additional_list | [{addtional_list}] | 대시보드에서 설정한 Additional form 에 대해, KYC 진행 시 사용자가 입력한 데이터 아래의 요청 타입의 경우 포함
| |
additional_list.answer | {additional_list.answer} | Additional form의 각 항목 명 | |
additional_list.inputValue | {additional_list.inputValue} | 각 항목에 대한 사용자 입력값 | |
additional_list.blockType | {additional_list.blockType} | 각 항목에 대한 데이터 타입 |
Example
Submit
Key | Value | Description | Required |
---|---|---|---|
webhook_trigger | submit | submit: KYC 제출 완료 후 'pending'상태 | |
submission_id | {submission_id} | 각 KYC 제출 건이 가지는 고유의 구분 값 | |
created_at | {created_at} | submission_id가 생성된 시점(UTC+0) | |
cf | object | Step1 Input 데이터에 함께 제출한 cf1 ~ cf3 데이터 묶음 객체 | |
cf.cf1 | {cf.cf1} | cf1 필드에 제출한 데이터 | |
cf.cf2 | {cf.cf2} | cf2 필드에 제출한 데이터 | |
cf.cf3 | {cf.cf3} | cf3 필드에 제출한 데이터 | |
userid | {userid} | 고객사 고유의 KYC제출자 식별자 (≠ submission id) | |
tokenId | {tokenId} | Private mode 에서 live-form 으로 제출 시 사용한 tokenID | |
ipAddress | {ipAddress} | 제출자의 IP 주소 | |
{email} | 제출자의 이메일 주소 |
Example
Delete
Name | Value | Description | Required |
---|---|---|---|
webhook_trigger | delete | 전달되는 웹훅의 타입 delete: KYC 제출건을 삭제했을 경우 | |
submission_id | {submission_id} | 각 KYC 제출 건이 가지는 고유의 구분 값 | |
account_email | {account_email} | 제출건 삭제를 시도한 어드민 계정 | |
delete_time | {delete_time} | 제출건 삭제 일시 | |
comment | {comment} | 제출건 삭제 시 남긴 코멘트 |
Example
Injection
Name | Value | Description | Required |
---|---|---|---|
webhook_trigger | injection | 전달되는 웹훅의 타입 | |
action | Injection 정보 객체 | ||
action.type | address | Injection 타입 | |
action.created_at | {created_at} | Injection 실행 시각 | |
submission_id | {submission_id} | KYC 진행 시 발생한 고유 아이디 (submission_id) | |
{email} | KYC 진행 시 제출된 email | ||
kyc_status | {kyc_status} | KYC 제출 결과 | |
applicant_id | {applicant_id} | 중복 제출을 확인하기 위해 부여되는 고유 식별 ID - KYC Status 가 Approved일 때만 전달 됩니다. | |
userid | {userid} | 회사 내부에서 자체적으로 사용하는 사용자 ID, 기존 시스템 상에서 KYC를 제출한 사람이 어떤 사용자인지 확인하는 용도로 사용 됨. ※ 옵션으로 제공 되며 userid 매개변수를 포함해서 KYC를 제출하면 전송 됨. | |
cf1 | {cf1} | cf1 필드에 제출한 데이터 | |
cf2 | {cf2} | cf2 필드에 제출한 데이터 | |
cf3 | {cf3} | cf3 필드에 제출한 데이터 | |
tokenId | {tokenId} | tokenId 제출 시 반환 |
Example
샘플 데이터
submit
approved
rejected
updated
aml
Delete
Injection
암호화 옵션 사용 시 Output 의 양 방향 암/복호화
Output
Body 에 암호화 된 결과 반환
Last updated