Webhook

웹훅이란?

웹훅은 특정 이벤트가 발생한 경우 고객사 응용프로그램에게 이벤트에 대한 알림이 전달되는 기능을 의미합니다.

웹훅 등록 방법

웹훅 등록을 위해 이벤트를 받을 webhook URL을 헬프데스크로 전달해 주세요.

웹훅 트리거

Submission data는 입력받은 정보만 리턴합니다. 예를 들어 submission 제출 시 cf1, wallet address 등 optional 정보를 입력하지 않은 경우 해당 내용은 response에 포함되지 않습니다.

webhook_triggerKYC StatusDescription

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)

KeyValueDescription

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

{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을 하여 결과가 리턴됩니다.

KeyValueDescription

webhook_trigger

aml

웹훅의 트리거 타입

submission_id

{submission_id}

각 KYC 제출 건이 가지는 고유의 구분 값

email

{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 결과 레벨 값

created_at

{create_at}

submission_id가 생성된 시점(UTC+0)

cf

object

Step1 Input 데이터에 함께 제출한 cf1 ~ cf3 데이터 묶음 객체

cf.cf1

{cf1}

cf1 필드에 제출한 데이터

cf.cf2

{cf2}

cf2 필드에 제출한 데이터

cf.cf3

{cf3}

cf3 필드에 제출한 데이터

Delete

NameValueDescription

webhook_trigger

delete

전달되는 웹훅의 타입 delete: KYC 제출건을 삭제했을 경우

submission_id

{submission_id}

각 KYC 제출 건이 가지는 고유의 구분 값

account_email

{account_email}

제출건 삭제를 시도한 어드민 계정

delete_time

{delete_time}

제출건 삭제 일시

comment

{comment}

제출건 삭제 시 남긴 코멘트

userid

{userid}

고객사 고유의 KYC제출자 식별자 (≠ submission id)

Injection

NameValueDescription

webhook_trigger

injection

전달되는 웹훅의 타입

action

Injection 정보 객체

action.type

address

Injection 타입

action.created_at

{created_at}

Injection 실행 시각

submission_id

{submission_id}

KYC 진행 시 발생한 고유 아이디 (submission_id)

email

{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 필드에 제출한 데이터

샘플 데이터

submit

{
    uri: 'https://your-endPoint-url.com',
    method: 'POST',
    body: {
        webhook_trigger:"submit", 
        kyc_result:{
            status:"rejected",
            created_at:"2023-07-06T02:01:03.494Z"
         },
        submission_id:"{submissionId}",
        projectId:"{projectId}",
        email:"test@sample.com",
        userid:"{userid}"
    },
    json: true
}

approved

{
    uri: 'https://your-endPoint-url.com',
    method: 'POST',
    body: {
        webhook_trigger:"approved", 
        kyc_result:{
            status:"rejected",
            comment:"Multiple invalid KYC attempts"
            updated_at:"2023-07-06T00:45:05.738Z"
         },
        submission_id:"{submissionId}",
        projectId:"{projectId}",
        email:"test@sample.com",
        userid:"{userid}"
    },
    json: true
}

rejected

{
    uri: 'https://your-endPoint-url.com',
    method: 'POST',
    body: {
        webhook_trigger:"approved", 
        kyc_result:{
            status:"rejected",
            comment:"Multiple invalid KYC attempts"
            updated_at:"2023-07-06T00:45:05.738Z"
         },
        submission_id:"{submissionId}",
        projectId:"{projectId}",
        email:"test@sample.com",
        userid:"{userid}"
    },
    json: true
}

updated

{
  uri: 'https://your-endPoint-url.com',
  method: 'POST',
  body: {
    kyc_result: { status: 'approved', updated_at: '2023-07-11T09:13:24.751Z' },
    email: 'test@sample.com',
    webhook_trigger: 'updated',
    submission_id: 'test_submissions_id',
    userid:{userid}
    
  },
  json: true
}

aml

{
    uri: 'https://your-endPoint-url.com',
    method: 'POST',
    body: {
         webhook_trigger: 'aml',
         submission_id: '{submissionId}',
         email: 'test@sample.com',
         userid:{userid}
         aml_result: {
               currentstatus: 'Not Screened',
               risk_level_summary: 'Not Screened'
         }
   },
    json: true
}

Delete

{
    uri: 'https://your-endPoint-url.com',
    method: 'DEL',
    body: {
        webhook_trigger:"delete", 
        submission_id:"{submissionId}",
        account email:"test@sample.com",
        delete_time:"2024-05-03T02:01:03.494Z"
    },
    json: true
}

Injection

{
    uri: 'https://your-endPoint-url.com',
    method: 'PUT',
    body: {
        webhook_trigger:"injection", 
        action:{
            type:"address",
            created_at:"2024-05-03T02:01:03.494Z"
         },
        submission_id:"{submissionId}",
        email:"test@sample.com",
        userid:"{userid}"
    },
    json: true
}

Last updated