PAN Verification API

AI Tools

DPDPA Compliant API For Validation Of PAN Card Details

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.

Mandatory Transition to DPDPA Compliant V3 APIs

In order to ensure continued compliance with the Digital Personal Data Protection Act, 2023 (DPDP Act), we have completely adopted 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 read here. DPDPA Implementation At Attestr

Customers using older version of the product, please refer to Migration Guide For Existing Customers

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.


API Definition

Request URL

Type

URL

POST

https://api.attestr.com/api/v3/public/checkx/pan/basic

Request Header Parameters

Type

Name

Value / Description

Optional

String

Content-Type

application/json

Required

String

Authorization

Basic {authToken}

Required

Info

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

Input Parameters

Data Type

Field Name / JSON Key

Description

Required (Default)

Is PII Field

PII Data Category

PII Data Type

String

consent

Consent object as required for registering the Data Principal consent on Attestr Platform. Refer to Register Consent API for input field definitions.

Required

No



String

pan

Input PAN number to be verified.

Required

Yes

identity

pan

String

birthOrIncorporatedDate

Date of birth for individuals and date of incorporation in case of companies

Required

Yes

personal_information

dob

String

name

Name as registered

Required

Yes

personal_information

name

Sample Input

{ "pan": "ABCDE1234E", "birthOrIncorporatedDate": "12-12-2002", "name": "Gitanjali Raheja", "consent": { "consentPurpose": "kyc_verification", "services": [{ "service": "PAN_BASIC" }], "consentTimestamp": "2026-05-22T00:00:00+0000", "consentMode": "email_otp", "consentType": "multi_use", "consentValidFrom": "2026-05-23T12:05:00+0000", "consentValidTill": "2026-05-27T12:07:00+0000", "consentReferenceId": "ACME-CONSENT-1234", "consentPrincipalUserId": "ACME-DATA-PRINCIPAL-1234", "clientDeclaration": true, "consentOperations": ["VERIFY","FETCH", "STORE","REPORT"], "consentDataCategories": [ { "category": "identity", "values": [ "pan" ] }, { "category": "personal_information", "values": [ "dob", "name" ] } ] } }

To use an already registered consent on the platform, use the following input format

{ "pan": "ABCDE1234E", "birthOrIncorporatedDate": "12-12-2002", "name": "Gitanjali Raheja", "consent": { "consentId": "CX3B3vGTovVJN5po82" } }

Sample

Response Structure

Http Status 200

Key

Description

Type

Is PII Fields

PII Data Category

PII Data Type

valid

True | false depending on if provided PAN number exists and is valid

Boolean

No



category

Category of the tax payer. See the table below for possible values.

String

No



panStatus

Current status of the PAN. Possible values are listed in the PAN status table below.

String

No



panStatusCode

PAN status code representing the status of the PAN. Every status is mapped to a corresponding status code. Refer to the table below.

String

No



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

No



nameMatches

Where the provided input name matches the name as per PAN database official records.

Boolean

No



birthOrIncorporatedDateMatches

Whether the provided input date of birth matches the PAN database official records.

Boolean

No



PAN Categories

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

PAN Status Code Definition

Status

Status Code

Description

VALID

E

PAN exists and is valid

INVALID_NOT_FOUND

N

No matching PAN found

INVALID_DEACTIVATED

X

PAN stands deactivated and is invalid.

INVALID_FAKE

F

PAN is reported to be fake.

INVALID_DELETED

D

PAN has been deleted from the database due to potential duplicate or other related reasons.

VALID_AMALGAMATION

EA

Applicable for companies only, company is amalgamated

VALID_ACQUISITION

EC

Applicable for companies only, if company has been acquired

VALID_DEATH

ED

Where the individual is dead but pan details are valid.

VALID_DISSOLUTION

EI

Valid but company stands dissolved

VALID_LIQUIDATED

EL

Valid for companies that have been liquidated

VALID_MERGER

EM

Valid for companies that are merged into another entity

VALID_PARTITION

EP

The PAN record has been logically separated (partitioned) from another entity or structure but remains valid and operational.

VALID_LIQUIDATION

EU

Valid for companies that are currently undergoing liquidation

VALID_SPLIT

ES

The 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

{ "valid": true, "category": "INDIVIDUAL", "panStatus": "VALID", "panStatusCode": "E", "nameMatches": true, "birthOrIncorporatedDateMatches": true, "aadhaarLinked": true }

Sample response for valid business PAN number

{ "valid": true, "category": "BUSINESS", "panStatus": "VALID", "panStatusCode": "E", "nameMatches": true, "birthOrIncorporatedDateMatches": true, "aadhaarLinked": null }

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

{ "valid": false, "category": null, "panStatus": "INVALID_NOT_FOUND", "panStatusCode": "N", "nameMatches": null, "birthOrIncorporatedDateMatches": null, "aadhaarLinked": null }

Sample response for deactivated PAN

{ "valid": false, "category": "INDIVIDUAL", "panStatus": "INVALID_DEACTIVATED", "panStatusCode": "X", "nameMatches": null, "birthOrIncorporatedDateMatches": null, "aadhaarLinked": null }

Error Codes

Refer to API Error Codes for common error codes and error response returned by this API


  Last updated