Feel free to reach techsupport@surepass.io for any technical support or guidance.
masked_aadhaar_variant parameter allows you to control how the API retrieves masked Aadhaar information. Understanding the behavior of different variant values is crucial for implementing reliable integrations.| Variant Value | Behavior | Format Returned | Reliability |
|---|---|---|---|
| Not provided | Uses v1 source only (default) | XXXXXXXX1234 | May fail for some PANs |
| "v1" | Uses v1 source only | XXXXXXXX1234 | May fail for some PANs |
| "v2" | Uses v2 source only | 12XXXXXXXX34 | More reliable |
| "v1, v2" | Tries v1 first, then v2 | Either format | Good reliability |
| "v2, v1" | Tries v2 first, then v1 | Either format | Good reliability |
| "v1, v2, empty" | Tries v1, then v2, then empty fallback | Either format or "" | Best reliability (never fails) |
| "empty" | Skips Aadhaar fetch entirely | "" (empty string) | Always succeeds |
| "null" | Same as empty | null (Null Value) | Always succeeds |
"v1, v2, empty"{
"id_number": "EKRPR1234F",
"masked_aadhaar_variant": "v1, v2, empty"
}XXXXXXXX123412XXXXXXXX34"v1, v2, empty" for production environments to ensure maximum reliabilityAuthorization header as Bearer <YOUR_JWT_TOKEN>.https://sandbox.surepass.apphttps://kyc-api.surepass.app| Header | Required | Description |
|---|---|---|
| Authorization | Yes | Bearer token for API authentication. Format: Bearer <JWT_TOKEN> |
| Content-Type | Yes | Must be set to application/json |
| Parameter | Type | Required | Description |
|---|---|---|---|
| id_number | string | Yes | Valid PAN number to be verified (e.g., "EKRPR1234F"). Must be a 10-character alphanumeric string following PAN format. |
| masked_aadhaar_variant | string | No | Specifies the masked Aadhaar format(s) to retrieve. Default is "v1". Options include: "v1", "v2", "null", "empty", or comma-separated combinations like "v1, v2, empty". See Masked Aadhaar Variant Configuration section for detailed behavior. |
{
"id_number": "EKRPR1234F",
"masked_aadhaar_variant": "v1"
}{
"id_number": "EKRPR1234F",
"masked_aadhaar_variant": "v1, v2, empty"
}{
"id_number": "EKRPR1234F",
"masked_aadhaar_variant": "empty"
}| Parameter | Type | Description |
|---|---|---|
| data | object | Container object holding all PAN verification data |
| data.client_id | string | Unique identifier for this verification request |
| data.pan_number | string | The verified PAN number |
| data.full_name | string | Complete name as registered with the PAN |
| data.full_name_split | array | Name split into components [First Name, Middle Name, Last Name] |
| data.masked_aadhaar | string | Masked Aadhaar number linked to the PAN. Format depends on variant used: "XXXXXXXX1234" (v1) or "12XXXXXXXX34" (v2) or "" (empty) |
| data.address | object | Complete address information object |
| data.address.line_1 | string | First line of the address |
| data.address.line_2 | string | Second line of the address |
| data.address.street_name | string | Street name or locality |
| data.address.zip | integer | PIN/ZIP code |
| data.address.city | string | City name |
| data.address.state | string | State name |
| data.address.country | string | Country name |
| data.address.full | string | Complete formatted address string |
| data.email | string | Masked email address associated with the PAN |
| data.phone_number | string | Masked phone number associated with the PAN |
| data.gender | string | Gender (M for Male, F for Female, O for Others) |
| data.dob | string | Date of birth in YYYY-MM-DD format |
| data.input_dob | string/null | Date of birth if provided in the request (null if not provided) |
| data.aadhaar_linked | boolean | Indicates whether PAN is linked to Aadhaar (true/false) |
| data.dob_verified | boolean | Indicates if date of birth has been verified |
| data.dob_check | boolean | Indicates if DOB check was performed |
| data.category | string | Category of PAN holder (e.g., "person", "company") |
| data.less_info | boolean | Indicates if limited information is available |
| status_code | integer | HTTP status code of the response |
| success | boolean | Indicates whether the API call was successful |
| message | string/null | Additional message or error description (null on success) |
| message_code | string | Status message code (e.g., "success") |
{
"data": {
"client_id": "pan_comprehensive_NZAOcvheHYtwohtkWQbH",
"pan_number": "EKRPR1234F",
"full_name": "MR. RATHORE",
"full_name_split": [
"MR",
"",
"RATHORE"
],
"masked_aadhaar": "XXXXXXXX1234",
"address": {
"line_1": "A 000 ",
"line_2": "Jagatpura",
"street_name": "S.O",
"zip": 123456,
"city": "Jaipur",
"state": "RAJASTHAN",
"country": "INDIA",
"full": "A 000 RAJASTHAN INDIA"
},
"email": "RA*********RE@GMAIL.COM",
"phone_number": "12XXXXXX10",
"gender": "M",
"dob": "0001-07-00",
"input_dob": null,
"aadhaar_linked": true,
"dob_verified": false,
"dob_check": false,
"category": "person",
"less_info": false
},
"status_code": 200,
"success": true,
"message": null,
"message_code": "success"
}{
"data": {
"client_id": "pan_comprehensive_XYZabcdefGHIjklmnoPQR",
"pan_number": "EKRPR1234F",
"full_name": "MR. RATHORE",
"full_name_split": [
"MR",
"",
"RATHORE"
],
"masked_aadhaar": "12XXXXXXXX34",
"address": {
"line_1": "A 000 ",
"line_2": "Jagatpura",
"street_name": "S.O",
"zip": 123456,
"city": "Jaipur",
"state": "RAJASTHAN",
"country": "INDIA",
"full": "A 000 RAJASTHAN INDIA"
},
"email": "RA*********RE@GMAIL.COM",
"phone_number": "12XXXXXX10",
"gender": "M",
"dob": "0001-07-00",
"input_dob": null,
"aadhaar_linked": true,
"dob_verified": false,
"dob_check": false,
"category": "person",
"less_info": false
},
"status_code": 200,
"success": true,
"message": null,
"message_code": "success"
}{
"data": {
"client_id": "pan_comprehensive_ABCdefghIJKlmnopQRST",
"pan_number": "EKRPR1234F",
"full_name": "MR. RATHORE",
"full_name_split": [
"MR",
"",
"RATHORE"
],
"masked_aadhaar": "",
"address": {
"line_1": "A 000 ",
"line_2": "Jagatpura",
"street_name": "S.O",
"zip": 123456,
"city": "Jaipur",
"state": "RAJASTHAN",
"country": "INDIA",
"full": "A 000 RAJASTHAN INDIA"
},
"email": "RA*********RE@GMAIL.COM",
"phone_number": "12XXXXXX10",
"gender": "M",
"dob": "0001-07-00",
"input_dob": null,
"aadhaar_linked": true,
"dob_verified": false,
"dob_check": false,
"category": "person",
"less_info": false
},
"status_code": 200,
"success": true,
"message": null,
"message_code": "success"
}{
"data": null,
"status_code": 401,
"success": false,
"message": "Invalid or expired authentication token",
"message_code": "unauthorized"
}aadhaar_linked field helps ensure compliance with this requirement.curl --location --request POST 'https://kyc-api.surepass.app/api/v1/pan/pan-comprehensive' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"id_number": "EKRPR1234F"
}'{
"data": {
"client_id": "pan_comprehensive_NZAOcvheHYtwohtkWQbH",
"pan_number": "EKRPR1234F",
"full_name": "MR. RATHORE",
"full_name_split": [
"MR",
"",
"RATHORE"
],
"masked_aadhaar": "XXXXXXXX1234",
"address": {
"line_1": "A 000 ",
"line_2": "Jagatpura",
"street_name": "S.O",
"zip": 123456,
"city": "Jaipur",
"state": "RAJASTHAN",
"country": "INDIA",
"full": "A 000 RAJASTHAN INDIA"
},
"email": "RA*********RE@GMAIL.COM",
"phone_number": "12XXXXXX10",
"gender": "M",
"dob": "0001-07-00",
"input_dob": null,
"aadhaar_linked": true,
"dob_verified": false,
"dob_check": false,
"category": "person",
"less_info": false
},
"status_code": 200,
"success": true,
"message": null,
"message_code": "success"
}