Feel free to reach techsupport@surepass.io for any technical support or guidance.
/initiate endpoint (which triggers an OTP to the registered mobile number), this endpoint is used to either submit the received OTP to complete the download or request a new OTP if the previous one expired or was not received./api/v1/ckyc/v3/download/individual/initiate → Receive request_id and OTP is sent to the registered mobile.request_id to download the CKYC record OR resend the OTP if needed.otp or resend: true, not both. Each request must include the request_id obtained from the initiate step.Authorization header of every request.| Environment | Base URL |
|---|---|
| Sandbox | https://sandbox.surepass.app |
| Production | https://kyc-api.surepass.app |
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token for authentication. Format: Bearer <your_jwt_token>. Use the JWT token corresponding to your target environment (sandbox or production). |
Content-Type | Yes | Must be set to application/json. |
| Parameter | Type | Required | Description |
|---|---|---|---|
request_id | string | Yes | The unique request identifier returned by the /initiate endpoint. This ties the OTP submission or resend action to the original download initiation. |
otp | string | Conditional | The OTP received on the registered mobile number. Required when submitting OTP for verification. Must not be provided when resend is set to true. |
resend | boolean | Conditional | Set to true to request a fresh OTP to be sent to the registered mobile number. Required when requesting OTP resend. Must not be provided when otp is supplied. |
otp or resend: true in a single request — never both.request_id is mandatory in all cases and must match the value received from the initiate step.{
"request_id": "18454383",
"otp": "968284"
}{
"request_id": "18454383",
"resend": true
}| Parameter | Type | Description |
|---|---|---|
success | boolean | Indicates whether the API call was successful (true or false). |
status_code | integer | HTTP status code of the response (e.g., 200 for success). |
message | string | Human-readable message describing the result of the API call. |
message_code | string | Machine-readable code representing the result (e.g., success). |
data | object | The main response payload containing the download result. |
data.client_id | string | Unique client-side identifier for the CKYC download transaction. |
data.request_id | string | The request identifier associated with this download session. |
data.status | string | The current status of the download request. See the status values table below. |
data.ckyc_download_data | object | The downloaded CKYC record data. Present only when status is downloaded. |
data.ckyc_download_data.record_count_details | object | Metadata about the download and update counts. |
data.ckyc_download_data.record_count_details.download_count | string | Number of records downloaded. |
data.ckyc_download_data.record_count_details.update_count | string | Number of records updated. |
data.ckyc_download_data.personal_identifiable_data | object | Contains personally identifiable information from the CKYC record. |
data.ckyc_download_data.personal_identifiable_data.personal_details | object | Core personal details of the individual. |
data.ckyc_download_data.personal_identifiable_data.personal_details.full_name | string | Full name of the individual as recorded in CKYC. |
data.ckyc_download_data.personal_identifiable_data.personal_details.dob | string | Date of birth of the individual in YYYY-MM-DD format. |
data.ckyc_download_data.personal_identifiable_data.personal_details.pan | string | PAN (Permanent Account Number) of the individual. |
data.ckyc_download_data.personal_identifiable_data.personal_details.ckyc_no | string | The 14-digit CKYC number of the individual. |
status Values| Status | Meaning |
|---|---|
otp_resent | Another OTP was sent to the registered mobile number. Submit the new OTP using this same endpoint. |
downloaded | Download completed successfully. The ckyc_download_data object is present in the response with the full CKYC record. |
{
"data": {
"client_id": "ckyc_realtime_individual_download_NXwKaQ",
"request_id": "18454383",
"status": "downloaded",
"ckyc_download_data": {
"record_count_details": {
"download_count": "1",
"update_count": "0"
},
"personal_identifiable_data": {
"personal_details": {
"full_name": "AARAV MEHTA",
"dob": "1992-07-14",
"pan": "ABCDE1234F",
"ckyc_no": "12345678901234"
}
}
}
},
"status_code": 200,
"success": true,
"message": "Success",
"message_code": "success"
}curl --location --request POST 'https://kyc-api.surepass.app/api/v1/ckyc/v3/download/individual' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"request_id": "18454383",
"otp": "968284"
}'{
"data": {
"client_id": "ckyc_realtime_individual_download_NXwKaQ",
"request_id": "18454383",
"status": "downloaded",
"ckyc_download_data": {
"record_count_details": {
"download_count": "1",
"update_count": "0"
},
"personal_identifiable_data": {
"personal_details": {
"full_name": "AARAV MEHTA",
"dob": "1992-07-14",
"pan": "ABCDE1234F",
"ckyc_no": "12345678901234"
}
}
}
},
"status_code": 200,
"success": true,
"message": "Success",
"message_code": "success"
}