PAN Verification API

Introduction

The PAN Verification API enables businesses to instantly validate and verify Permanent Account Number (PAN) details using PAN, Name, and Date of Birth (DOB) as inputs. Designed for fintech platforms, KYC workflows, compliance systems, lending platforms, onboarding solutions, and enterprise verification pipelines, this API helps organizations determine the authenticity and operational status of a PAN in real time while reducing fraud risks and manual verification effort.

This API performs multi-layer validation against authoritative data sources and returns a structured response containing PAN activity status, identity match indicators, Aadhaar linkage status, and taxpayer category classification. It helps businesses streamline onboarding, strengthen AML and compliance processes, and improve decision-making through reliable identity intelligence.

Key Capabilities

PAN Status Verification Check whether a PAN is active, inactive, fake, decommissioned, surrendered, liquidated, or otherwise non-operational. This helps prevent onboarding of invalid or high-risk entities.

Name Match Validation Verify whether the provided name matches official government records associated.

Date of Birth (DOB) Match Validate the DOB provided in the request against official records.

Aadhaar Linking Status Retrieve whether the PAN is linked with Aadhaar, helping organizations ensure regulatory compliance and onboarding eligibility where Aadhaar linkage is required.

Taxpayer Category Identification Determine the classification of the PAN holder such as individual, company, firm, LLP, trust, or other taxpayer categories. This is particularly useful for risk scoring, underwriting, and segmentation logic.

Get Free Trial

Create a free account Or “Talk to Us” for price information and other queries.

In order to ensure continued compliance with the Digital Personal Data Protection Act, 2023 (DPDP Act), we are implementing DPDP V3 (Consent-Driven Processing). Under this framework, clients are required to obtain explicit, informed, and verifiable consent from the data principal prior to accessing, processing, viewing, or storing any personal data through the platform. This regulatory transition may require modifications to existing configurations and workflows. Clients are advised to review and update their implementations to ensure ongoing compliance with applicable data protection obligations. Further information regarding this transition can be enquired here. Learn more about this change here.

API Details

Request

TypeURLVersion
POSThttps://api.attestr.com/api/{version}/public/checkx/pan/basicUse "v2" for the latest version

Request Body Parameters

TypeNameDescriptionOptional (default)Min VersionMax Version
StringpanInput PAN number to be verified.Requiredv2
StringbirthOrIncorporatedDateDate of birth for individuals and date of incorporation in case of companiesRequiredv2
StringnameName as registeredRequiredv2

Request Header Parameters

TypeNameValue / DescriptionOptionalMin VersionMax Version
StringContent-Typeapplication/jsonRequiredv2
StringAuthorizationBasic {authToken}Requiredv2

If you do not have the authentication token, please refer to Register App to generate one.

Sample Request Payload

JSON
Copy

Response

Http Status 200

KeyDescriptionTypeMin VersionMax Version
validTrue | false depending on if provided PAN number exists and is validBooleanv2
categoryCategory of the tax payer. See the table below for possible values.PANCategoryEnumv2
panStatusCurrent status of the PAN. Possible values are listed in the PAN status table below.Stringv2
panStatusCodePAN status code representing the status of the PAN. Every status is mapped to a corresponding status code. Refer to the table below.Stringv2
aadhaarLinkedFlag 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.Booleanv2
nameMatchesWhere the provided input name matches the name as per PAN database official records.Booleanv2
birthOrIncorporatedDateMatchesWhether the provided input date of birth matches the PAN database official records.Booleanv2

PAN Category Enum

Enum ValuesDescription
AOPAssociation of persons
BOIBody of individuals
BUSINESSRegistered company
FIRMPartnership firms
GOVERNMENTGovernment entities
HUFHindu Undivided family
LOCALLocal authority
AJPArtificial juridical persons
INDIVIDUALIndividual tax payer
TRUSTRegistered trust boards
LLPLimited liability partnership

PAN Status Codes

StatusStatus CodeDescription
VALIDEPAN exists and is valid
INVALID_NOT_FOUNDNNo matching PAN found
INVALID_DEACTIVATEDXPAN stands deactivated and is invalid.
INVALID_FAKEFPAN is reported to be fake.
INVALID_DELETEDDPAN has been deleted from the database due to potential duplicate or other related reasons.
VALID_AMALGAMATIONEAApplicable for companies only, company is amalgamated
VALID_ACQUISITIONECApplicable for companies only, if company has been acquired
VALID_DEATHEDWhere the individual is dead but pan details are valid.
VALID_DISSOLUTIONEIValid but company stands dissolved
VALID_LIQUIDATEDELValid for companies that have been liquidated
VALID_MERGEREMValid for companies that are merged into another entity
VALID_PARTITIONEPThe PAN record has been logically separated (partitioned) from another entity or structure but remains valid and operational.
VALID_LIQUIDATIONEUValid for companies that are currently undergoing liquidation
VALID_SPLITESThe PAN was part of an entity or dataset that has been split into multiple valid records, and this specific PAN remains active and usable.

Sample Response

Sample response for valid person PAN number

JSON
Copy

Sample response for valid business PAN number

JSON
Copy

Sample response if the provided PAN number is invalid or does not exist

JSON
Copy

Sample response for deactivated PAN

JSON
Copy

Error Response

ParameterTypeDescription
codeNumberUnique error codes for different errors. Always available.
messageStringError message describing the error. Always Available.
detailsStringDetail error message. Available only for certain types of errors.

Error Codes

HTTP StatusError CodeError Message
4004001Malformed data or missing required parameter values
4004005Operation could not be performed due to low credits balance
4014016Invalid client authorization
4034031Unauthorized access
4034035Requested service is not provisioned for your account
4034039Client's IP address is not whitelisted
4034035Requested service is not provisioned for your account
4294291Maximum account rate limit exceeded
4294292Maximum API rate limit exceeded
4294293Maximum account daily limit exceeded
4294294Maximum API daily limit exceeded
5005001Request could not be processed

Sample Error Response

JSON
Copy

Get Free Trial

Create a free account Or “Talk to Us” for price information and other queries.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard