Webhook Guide
Webhook
Webhook provides real-time notifications when specific events occur.
Webhook Integration
Log in to the dashboard and go to the [Settings] menu.
In the left-side navigation menu, click the Access Management option under the General section.
Enter the desired webhook address in the [Webhook URL] field.
Click the [Save] button to complete the process.
Webhook Triggers
"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.
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
delete
-
KYC data has been deleted
injection
-
Type of webhook passed
KYC Status Change
If webhook_trigger is one of [approved, rejected, updated], the three additional parameters below are returned.
However, this only applies if the relevant data exists in the submission data. (gender, date_of_birth, nationality)
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 address of a KYC applicant
userid
{userid}
Unique ID for each KYC applicant created from client side (≠ submission id)
cf
object
cf1 ~ cf3 data bundle object submitted together with Step 1 Input data
cf.cf1
{cf1}
Data submitted in field cf1
cf.cf2
{cf2}
Data submitted in field cf2
cf.cf3
{cf3}
Data submitted in field cf3
account_email
{account_email}
Admin account attempted to delete submission
delete_time
{delete_time}
Date and time of deletion of submissions
comment
{comment}
Comment left when deleting a submission
action
Injection information object
action.type
address
Injection type
action.created_at
{created_at}
Injection execution time
gender
{gender}
Gender of submitted user (male or female)
date_of_birth
{YYYY-MM-DD}
Submitted user's date of birth (in YYYY-MM-DD format)
nationality
{nationality}
Nationality of submitted user (country code in 3-letter format: ISO alpha3 format)
tokenId
{tokenId}
TokenID used when submitting live-form in private mode.
AML Results
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.
webhook_trigger
aml
Webhook trigger type
submission_id
{submission_id}
Unique verifying ID for each submission
{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)
cf
object
cf1 ~ cf3 data bundle object submitted together with Step 1 Input data
cf.cf1
{cf1}
Data submitted in field cf1
cf.cf2
{cf2}
Data submitted in field cf2
cf.cf3
{cf3}
Data submitted in field cf3
tokenId
{tokenID}
Returned when tokenId is submitted
Approved
webhook_trigger
approved
approved: KYC was automatically approved upon submission or a pending KYC was approved
kyc_result
object
KYC submission result object
kyc_result.status
{kyc_result.status}
KYC review result(approved or reject)
kyc_result.updated_at
{kyc_result.updated_at}
The moment the KYC submission status was changed to approved or rejected (UTC+0)
kyc_result.created_at
{kyc_result.created_at}
The date and time the KYC was submitted (UTC+0)
kyc_result.kyc_result_at
{kyc_result.kyc_result_at}
The date and time when the KYC result was first determined, displayed only if approved/rejected (UTC+0)
kyc_result.pending_at
{kyc_result.pending_at}
The date and time the KYC was submitted as Pending (UTC+0)
kyc_result.reviewer
{kyc_result.reviewer}
system: AI reviewed agent : Agent reviewed
applicant_id
{applicant_id}
Unique identifier assigned to prevent duplicate submissions, provided only when KYC status is approved
submission_id
{submission_id}
Client-specific identifier for the KYC submitter (≠ submission id)
{email}
The Submitter's email
tokenId
{tokenId}
Token ID used when submitted in live-form mode in private mode
cf
object
Object containing cf1 ~ cf3 data submitted with Step1 Input data
cf.cf1
{cf.cf1}
Data submitted in the cf1 field
cf.cf2
{cf.cf2}
Data submitted in the cf2 field
cf.cf3
{cf.cf3}
Data submitted in the cf3 field
userid
{userid}
Client-specific identifier for the KYC submitter (≠ submission id)
age_group
{age_group}
Age group of the submitter (minor, early teens, teenager, adult)
gender
{gender}
Gender of the submitted user (male or female)
date_of_birth
{date_of_birth}
Date of birth of the submitted user (in YYYY-MM-DD format)
nationality
{nationality}
Nationality of the submitted user (3-letter country code in ISO alpha-3 format)
ipAddress
{ipAddress}
The submitter's IP address
fullName
{fullName}
The submitter's full Name
idType
{idType}
ID Document Type
issuingCountry
{issuingCountry}
Issuing Country
issueDate
{issueDate}
Issue Date
expireDate
{expireDate}
Expiry Date
identityNumber
{identityNumber}
Resident Registration Number
documentNumber
{documentNumber}
Document Unique Number
addtional_list
[{addtional_list}]
Regarding the Additional form set in the dashboard, the data entered by the user during the KYC process is included in the following request types:
When queried by a specific
submissionId
oremail
When queried with
request_type
as 'others'
addtional_list.answer
{addtional_list.answer}
Name of each item in the Additional form
addtional_list.inputValue
{addtional_list.inputValue}
User input value for each item
addtional_list.blockType
{addtional_list.blockType}
Data type for each item
Example
Rejected
webhook_trigger
rejected
rejected: KYC was automatically rejected upon submission or a pending KYC was rejected
submission_id
{submission_id}
Unique identifier for each KYC submission
applicant_id
{applicant_id}
Unique identifier assigned to prevent duplicate submissions, provided only when KYC status is approved
{email}
The submitter's email address
kyc_result
object
KYC submission result object
kyc_result.status
{kyc_result.status}
KYC review result (approved or reject)
kyc_result.updated_at
{kyc_result.updated_at}
Time when KYC submission status changed to approved or rejected (UTC+0)
kyc_result.comment
[{kyc_result.comment
Reject Message
kyc_result.commentCode
{kyc_result.commentCode}
Reject Comment Code
cf
object
Object containing cf1 ~ cf3 data submitted with Step1 Input data
cf.cf1
{cf.cf1}
Data submitted in the cf1 field
cf.cf2
{cf.cf2}
Data submitted in the cf2 field
cf.cf3
{cf.cf3}
Data submitted in the cf3 field
userid
{userid}
Client-specific identifier for the KYC submitter (≠ submission id)
tokenId
{tokenId}
Token ID used when submitted in live-form mode in private mode
ipAddress
{ipAddress}
The submitter's IP address
Example
Updated
webhook_trigger
updated
updated: Information of the submitted KYC was updated
submission_id
{submission_id}
Unique identifier for each KYC submission
{email}
The submitter's email address
data
object
KYC Data Object
data.update
[Array]
Updated Field List
data.kyc_result
{data.kyc_result}
KYC Submitted Result
data.created_at
{data.created_at}
The date and time the KYC was submitted (UTC+0)
data.kyc_result_at
{data.kyc_result_at}
The time when the KYC result was first determined, displayed only if approved/rejected (UTC+0)
data.pending_at
{data.pending_at}
The moment the KYC submission status became pending (UTC+0)
data.reviewer
{data.reviewer}
system: AI reviewed agent: Agent reviewed
data.kyc_result
{data.kyc_result}
KYC Submitted Result
admin
{admin}
Admin email updated from the dashboard
update_time
{update_time}
Time updated from the dashboard
userid
{userid}
Client-specific identifier for the KYC submitter (≠ submission id)
tokenId
{tokenId}
Token ID used when submitted in live-form mode in private mode
age_group
{age_group}
Age group of the submitter (minor, early teens, teenager, adult)
gender
{gender}
Gender of the submitted user (male or female)
date_of_birth
{date_of_birth}
Date of birth of the submitted user (in YYYY-MM-DD format)
nationality
{nationality}
Nationality of the submitted user (3-letter country code in ISO alpha-3 format)
ipAddress
{ipAddress}
The submitter's IP address
fullName
{fullName}
The submitter's full name
idType
{idType}
ID Card Type
issuingCountry
{issuingCountry}
Issuing Country
issueDate
{issueDate}
Issue Date
expireDate
{expireDate}
Expiry Date
identityNumber
{identityNumber}
Resident Registration Number
documentNumber
{documentNumber}
Document Unique Number
additional_list
[{addtional_list}]
Regarding the Additional form set in the dashboard, the data entered by the user during the KYC process is included in the following request types:
When queried by a specific
submissionId
oremail
When queried with
request_type
as 'others'
additional_list.answer
{additional_list.answer}
Name of each item in the Additional form
additional_list.inputValue
{additional_list.inputValue}
User input value for each item
additional_list.blockType
{additional_list.blockType}
Data type for each item
Example
Submit
webhook_trigger
submit
submit: KYC submission completed and in 'pending' status
submission_id
{submission_id}
Unique identifier for each KYC submission
created_at
{created_at}
Updated Field List
cf
object
Object containing cf1 ~ cf3 data submitted with Step1 Input data
cf.cf1
{cf.cf1}
Data submitted in the cf1 field
cf.cf2
{cf.cf2}
Data submitted in the cf2 field
cf.cf3
{cf.cf3}
Data submitted in the cf3 field
userid
{userid}
Client-specific identifier for the KYC submitter (≠ submission id)
tokenId
{tokenId}
Token ID used when submitted in live-form mode in private mode
ipAddress
{ipAddress}
The submitter's IP address
{email}
The submitter's Email Address
Example
Delete
webhook_trigger
delete
Type of webhook passed delete: When KYC submission is deleted
submission_id
{submission_id}
Unique classification value for each KYC submission
account_email
{account_email}
Admin account attempted to delete submission
delete_time
{delete_time}
Date and time of deletion of submissions
comment
{comment}
Comment left when deleting a submission
Example
Injection
webhook_trigger
injection
Type of webhook passed
action
Injection information object
action.type
address
Injection type
action.created_at
{created_at}
Injection execution time
submission_id
{submission_id}
Unique ID generated during KYC process (submission_id)
{email}
Email submitted during KYC process
kyc_status
{kyc_status}
KYC submission results
applicant_id
{applicant_id}
Unique identification ID given to check for duplicate submissions - Delivered only when KYC Status is Approved.
userid
{userid}
User ID used internally by the company, used to check which user submitted KYC in the existing system. ※ It is provided as an option and is sent when you submit KYC including the userid parameter.
cf1
{cf1}
Data submitted in field cf1
cf2
{cf2}
Data submitted in field cf2
cf3
{cf3}
Data submitted in field cf3
tokenId
{tokenId}
Returned when tokenId is submitted
Example
Sample Data
submit
approved
rejected
updated
aml
Delete
Injection
1. Bidirectional Encryption/Decryption for Output Data
When using the encryption option, both input and output require bidirectional encryption/decryption.
Output:
Return the encrypted result in the body
.
Example:
Last updated