Webhook Guide
Webhook provides real-time notifications when specific events occur.
"Submission data" only returns entered information. In cases when you do not include any optional information such as "cf1" or "wallet_address" in submission data, the response object does not include them either.
webhook_trigger | KYC Status | Description |
---|---|---|
submit | Pending | KYC submission is created and waiting for manual review.
*No webhook for 'Submit' status |
approved | Approved | KYC approved |
rejected | Rejected | KYC rejected |
updated | - | KYC data has been updated |
aml | Approved | AML screening results |
Key | Value | Description |
---|---|---|
webhook_trigger | submit, approved, rejected, updated | submit: KYC is at pending status after submission
approved: KYC approved at the moment of submission or turned into approved from pending
rejected: KYC rejected at the moment of submission or turned into rejected from pending
updated: Data has been updated |
kyc_result | | KYC result object |
kyc_result.status | approved / rejected | KYC result |
kyc_result.update_at | {update_at} | The time KYC status has changed to approved or rejected(UTC+0) |
kyc_result.comment | {comment} | Rejected reason
※Only when the webhook_trigger is rejected. |
submission_id | {submission_id} | Unique verifying ID for each submission |
applicant_id | {applicant_id} | Unique verifying ID given to users, it is transmitted only when the KYC status is 'approved'. |
created_at | {create_at} | The moment when a KYC submission_id has made (UTC+0) |
email | {email} | Email address of a KYC applicant |
userid | {userid} | Unique ID for each KYC applicant created from client side (≠ submission id) |
AML result and submission data are returned when AML screening is completed, no screening for rejected KYCs. AML Screening is performed only when KYC is approved and the results are returned.
Key | Value | Description |
---|---|---|
webhook_trigger | aml | Webhook trigger type |
submission_id | {submission_id} | Unique verifying ID for each submission |
email | {email} | Email address of a KYC applicant |
userid | {userid} | Unique ID for each KYC applicant created from client side (≠ submission id) |
aml_result | | AML result object |
aml_result.currentstatus | Not Screened / Red Flag | AML screening result |
aml_result.risk_level_summary | Not Screened/ HIGH/MEDIUM/LOW | AML result level |
created_at | {create_at} | The moment when a KYC submission_id has made (UTC+0) |
{
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:"[email protected]",
userid:"{userid}"
},
json: true
}
{
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:"[email protected]",
userid:"{userid}"
},
json: true
}
{
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:"[email protected]",
userid:"{userid}"
},
json: true
}
{
uri: 'https://your-endPoint-url.com',
method: 'POST',
body: {
kyc_result: { status: 'approved', updated_at: '2023-07-11T09:13:24.751Z' },
email: '[email protected]',
webhook_trigger: 'updated',
submission_id: 'test_submissions_id',
userid:{userid}
},
json: true
}
{
uri: 'https://your-endPoint-url.com',
method: 'POST',
body: {
webhook_trigger: 'aml',
submission_id: '{submissionId}',
email: '[email protected]',
userid:{userid}
aml_result: {
currentstatus: 'Not Screened',
risk_level_summary: 'Not Screened'
}
},
json: true
}
Last modified 2mo ago