Comprehensive PAN Verification API
USE COMPREHENSIVE PAN VERIFICATION API FOR A 360 DEGREE PAN OVERVIEW
Introduction
The PAN Comprehensive Verification API offers a one-step verification process for PAN. It retrieves key information about the PAN card holders including Registered name, Display name, Aadhaar seeding status, Date of birth for individuals, Date of incorporation in case of companies, complete registered address including state, district, and pin code information, and masked Aadhaar number (last 4 digits) if seeded.

This API offers comprehensive details about the PAN Card holder. Consider using basic PAN Verification API if your requirement is solely to confirm the PAN status and retrieve the user's or business's name.
API Details
Request
Type | URL | Version |
---|---|---|
POST | https://api.attestr.com/api/{version} /public/checkx/pan/comprehensive | Use "v2" for the latest version |
Request Body Parameters
Type | Name | Description | Optional (default) | Min Version | Max Version |
---|---|---|---|---|---|
String | pan | Input PAN number to be verified. | Required | v2 |
Request Header Parameters
Type | Name | Value / Description | Optional | Min Version | Max Version |
---|---|---|---|---|---|
String | Content-Type | application/json | Required | v2 | |
String | Authorization | Basic {authToken} | Required | v2 |
If you do not have the authentication token, please refer to Register App to generate one.
Sample Request Payload
{
"pan": "AH***15**R"
}
Response
Http Status 200
Key | Description | Type | Min Version | Max Version |
---|---|---|---|---|
valid | True | false depending on if provided PAN number exists and is valid | Boolean | v2 | |
category | Category of the tax payer. See the table below for possible values. | PANCategoryEnum | v2 | |
name | Registered name of the permanent account number holder | String | v2 | |
displayName | Name as displayed on the PAN card. The name displayed on the PAN Card can be different / abbreviated version of the registered name. For more details, please refer to this link | String | v2 | |
gender | Gender of the individual | String | v2 | |
birthOrIncorporatedDate | Date of birth for individuals and date of incorporation in case of a business. DD-MM-YYYY | Date | v2 | |
aadhaarLinked | Flag indicating whether PAN is linked to Aadhaar. Possible values are True, False and Null. True if the provided PAN is already linked to Aadhaar. False if not linked, Null if Aadhaar linking is either not applicable, such as for businesses, or if the source was unable to retrieve the Aadhaar linking status. | Boolean | v2 | |
maskedAadhaar | Masked last 4 digits of Aadhaar number if available else null. | String | v2 | |
state | State name of the address location | String | v2 | |
city | City name of the address location | String | v2 | |
zip | Pin code of the address location | String | v2 | |
country | Country name | String | v2 | |
address | Complete address of the individual or business | String | v2 | |
message | Error message if provided PAN is invalid | String | v2 |
PAN Category Enum
Enum Values | Description |
---|---|
AOP | Association of persons |
BOI | Body of individuals |
BUSINESS | Registered company |
FIRM | Partnership firms |
GOVERNMENT | Government entities |
HUF | Hindu Undivided family |
LOCAL | Local authority |
AJP | Artificial juridical persons |
INDIVIDUAL | Individual tax payer |
TRUST | Registered trust boards |
LLP | Limited liability partnership |
Sample Response
Sample response for valid person PAN number
{
"valid": true,
"category": "INDIVIDUAL",
"name": "GITANJALI RAHEJA",
"displayName": "R. GITANJALI",
"gender": "Female",
"birthOrIncorporatedDate": "01-02-1987",
"maskedAadhaar": "",
"aadhaarLinked": false,
"state": "JHARKHAND",
"city": "EAST SINGHBHUM",
"zip": 831012,
"country": "India",
"address": "NH-33, HILL VIEW AUTO MOBILE PRTROL PUMP jamshedpur 831012 EAST SINGHBHUM JHARKHAND INDIA"
}
Sample response for valid business PAN number
{
"valid": true,
"category": "BUSINESS",
"name": "RAHEJA ENTERPRISES",
"displayName": " ",
"gender": "",
"birthOrIncorporatedDate": "13-07-2017",
"maskedAadhaar": "",
"aadhaarLinked": false,
"state": "TELANGANA",
"city": "SRINAGAR COLONY S.O",
"zip": 500073,
"country": "India",
"address": "8-2-293/K/57/101, KAMLAPURI COLONY, PHASE 3, KHAIRATABAD, SRINAGAR COLONY S.O, TELANGANA, - 500073"
}
Sample response if the provided PAN number is invalid or does not exist
{
"valid": false,
"message": "Provided PAN number does not exist"
}
Error Response
Parameter | Type | Description |
---|---|---|
code | Number | Unique error codes for different errors. Always available. |
message | String | Error message describing the error. Always Available. |
details | String | Detail error message. Available only for certain types of errors. |
Error Codes
HTTP Status | Error Code | Error Message |
---|---|---|
400 | 4001 | Malformed data or missing required parameter values |
400 | 4005 | Operation could not be performed due to low credits balance |
401 | 4016 | Invalid client authorization |
403 | 4031 | Unauthorized access |
403 | 4035 | Requested service is not provisioned for your account |
403 | 4039 | Client's IP address is not whitelisted |
403 | 4035 | Requested service is not provisioned for your account |
429 | 4291 | Maximum account rate limit exceeded |
429 | 4292 | Maximum API rate limit exceeded |
429 | 4293 | Maximum account daily limit exceeded |
429 | 4294 | Maximum API daily limit exceeded |
500 | 5001 | Request could not be processed |
Sample Error Response
{
"code": 4001,
"message": "Malformed data or missing required parameter values"
}