KYC Webhook

kyc webhook

Brief Description

  • KYC callback
  • Upon receiving the webhook message, returning HTTP status code 200 indicates that the message was successfully received.

Request URL

Request Method

  • POST

Response Parameter Description

Model Object Description

Parameter NameTypeDescription
emailstringEmail address
kycStatusstringKYC status
datestringKYC completion time
signstringSignature: Base64(HmacSHA256(data, secret))
Signature Verification Description

The sign is generated by applying HmacSHA256 and then Base64 encoding to the data excluding the sign field itself.

Construction rules for the string to be signed (data): Take all fields except sign, sort them by field name in ascending ASCII order, and serialize them into compact JSON (no spaces). Sorting is used instead of a fixed order so that signature verification logic does not need to change when new fields are added later.

Using the current fields as an example, the sorted order is date, email, kycStatus:

data = {"date":"...","email":"...","kycStatus":"..."}
sign = Base64(HmacSHA256(data, merchant_secret))

Calculate the signature using the merchant secret according to the rules above; verification passes if the result matches the provided sign.

KYC Status Description

Parameter NameDescription
COMPLETEDKYC successfully completed
REJECTEDKYC submitted but rejected by the compliance department. We are unable to provide services to the client due to regulatory reasons or company policy.

Response Example

{
  "email": "[email protected]",
  "kycStatus": "COMPLETED",
  "date": "2025-06-09 17:41:53",
  "sign": "Kg5fHI07ek6fXXXXXXvXI0LOqY="
}

Did this page help you?