Feel free to reach techsupport@surepass.io for any technical support or guidance.
Authorization header as Bearer TOKEN.https://sandbox.surepass.iohttps://kyc-api.surepass.io| Header | Required | Description |
|---|---|---|
| Authorization | Yes | Bearer JWT token (Bearer <JWT>) |
| Content-Type | Yes | application/json |
| Parameter | Type | Required | Description |
|---|---|---|---|
| webhook_url | String | Yes | Destination URL that will receive CKYC bulk webhook events |
{
"webhook_url": "https://hooks.example.com/ckyc-bulk"
}| Parameter | Type | Description |
|---|---|---|
| data | Object | Response payload |
| data.webhook_url | String | Newly configured account-level webhook URL |
| status_code | Integer | HTTP status code |
| success | Boolean | Whether the request was successful |
| message | String | Human-readable status message |
| message_code | String | Machine-readable status code |
{
"data": {
"webhook_url": "https://hooks.example.com/ckyc-bulk"
},
"status_code": 200,
"success": true,
"message": "Success",
"message_code": "success"
}{
"data": null,
"status_code": 401,
"success": false,
"message": "Unauthorized",
"message_code": "auth_failed"
}POST request to that URL with the following JSON payload:{
"client_id": "CLIENT123",
"new_state": "upload_succeeded",
"timestamp": "2026-04-13T12:00:00Z"
}| Field | Type | Description |
|---|---|---|
| client_id | String | Your batch identifier from the initialize or file-upload API |
| new_state | String | The state that triggered the webhook |
| timestamp | String | UTC ISO-8601 timestamp of the event, without milliseconds |
| State | Description |
|---|---|
| awaiting_cersai_response | The batch upload was accepted and Surepass is waiting for the final response from CERSAI |
| upload_succeeded | The final response was received, parsed, and the batch is ready for status retrieval |
pending, started, uploaded, uploading, or for failed states.2xx required -- Surepass treats non-2xx webhook responses as failed deliveries.curl --location --request POST 'https://kyc-api.surepass.app/api/v1/ckyc/v1/bulk/webhook-config' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"webhook_url": "https://hooks.example.com/ckyc-bulk"
}'{
"data": {
"webhook_url": "https://hooks.example.com/ckyc-bulk"
},
"status_code": 200,
"success": true,
"message": "Success",
"message_code": "success"
}