Feel free to reach techsupport@surepass.io for any technical support or guidance.
client_id from the Legal Upload or Legal Update step to poll until a terminal state is reached.Authorization header as Bearer TOKEN.https://sandbox.surepass.iohttps://kyc-api.surepass.io| Header | Required | Description |
|---|---|---|
| Authorization | Yes | Bearer token (Bearer <JWT>) |
| Content-Type | Yes | application/json |
| Parameter | Type | Required | Description |
|---|---|---|---|
| client_id | String | Yes | Client identifier from the Upload or Update step |
{
"client_id": "ckyc_legal_upload_aBcDeFgHiJkLmNoPqRsT"
}| Parameter | Type | Description |
|---|---|---|
| data | Object | Response payload |
| data.client_id | String | Client identifier |
| data.state | String | Current processing state (see States) |
| data.response | Object | Detailed response (populated after processing) |
| data.response.approved_by_checker | Boolean | Whether the batch was approved by the CERSAI checker |
| data.response.individual_file_response | Array | Per-entity status results |
| data.response.individual_file_response[].identifier | String | Entity identifier |
| data.response.individual_file_response[].message | String/null | Status message |
| data.response.individual_file_response[].status | String | Entity record status |
| 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": {
"client_id": "ckyc_legal_upload_aBcDeFgHiJkLmNoPqRsT",
"state": "upload_succeeded",
"response": {
"approved_by_checker": true,
"individual_file_response": [
{
"identifier": "ABCDE1234F",
"message": "Record accepted",
"status": "success"
}
]
}
},
"status_code": 200,
"success": true,
"message": "Success",
"message_code": "success"
}{
"status_code": 401,
"success": false,
"message": "Unauthorized: Invalid or missing token",
"message_code": "unauthorized"
}state reaches upload_succeeded or upload_failed. Once succeeded, the response is cached.state field progresses through pending → started → ready_to_upload → uploading → uploaded → upload_succeeded/upload_failed. See the parent index for the full state and sub-state reference.POST /api/v1/ckyc-upload/legal/upload/status-check instead.curl --location --request POST 'https://kyc-api.surepass.app/api/v1/ckyc-upload/legal/upload/status' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_id": "ckyc_legal_upload_aBcDeFgHiJkLmNoPqRsT"
}'{
"data": {
"client_id": "ckyc_legal_upload_aBcDeFgHiJkLmNoPqRsT",
"state": "upload_succeeded",
"response": {
"approved_by_checker": true,
"individual_file_response": [
{
"identifier": "ABCDE1234F",
"message": "Record accepted",
"status": "success"
}
]
}
},
"status_code": 200,
"success": true,
"message": "Success",
"message_code": "success"
}