#PAN API Quickstart

#What is (website name) PAN API?

(website name) PAN API allows you to use just one API to verify your customer’s PAN details. We directly connect with NSDL, to maintain the best uptimes.

#What can I do with this product?

Use our lightweight PAN API to verify your customer, with their consent—to check identity during onboarding, enable other financial products or to enable income tax filing/verification.

Here’s a quick overview of the PAN API. Additionally, here are the URLs you would need for this API—

  • Sandbox—https://dg-sandbox.(website name).co
  • Production—https://dg.(website name).co
  • Headers—Contact (website name) for providing the credentials required to successfully call (website name) APIs. This contains:
    • x-client-id
    • x-client-secret
    • x-product-instance-id

#Verify PAN

Execute this API to validate a customer-provided PAN. Key request parameters include:

  • pan PAN value, applicable to different categories (Person, Company, Trust, Government, Firm). consent: Indicates whether explicit consent (Y or y) has been obtained from the customer. reason: A 20-character or more explanation for PAN verification, to be communicated to the customer.
  • consent indicates if you have collected consent from your customer. To get a successful verification, it must contain Y or y.
  • reason is the explanation of why you are requesting for PAN from your customer. It should be explained in 20 characters or more.

While the implementation of consent and reason cannot be enforced by (website name), we recommend collecting explicit consent from your customers and also explaining to your customers the reason why you are verifying their PAN.


While testing on Sandbox, you may use the following sample values—

  • Use ABCDE1234A for a valid PAN
  • Use ABCDE1234B for an invalid PAN, i.e, a PAN number has been found but is invalid. A PAN is considered invalid by NSDL for different reasons. For e.g, if it is a blacklisted one, or maybe because it is not linked to an Aadhaar card.
  • If you use any other values for pan, you will get a 404 PAN not found error.

Your request has a valid pan and (website name) has processed your request successfully.


Request
POST /api/verify/pan
{
"pan": "ABCDE1234A",
"consent": "Y" ,
"reason": "Reason for verifying PAN set by the developer"
}

Response
{
"data": {
"aadhaar_seeding_status": "LINKED", // optional
"category": "Individual",
"full_name": "John Doe"
},
"message": "PAN is valid",
"verification": "success",
"traceId": "1-6346a91a-620cf6cc4f68d2e30316881e"
}


Was this page helpful?

Data Gateway - PAN verification


Base URL

https://dg-sandbox.(website name).co

Authentication

HTTP authentication - bearer

Description

Build the data flow you need—for customer onboarding, background verifications, and collecting electronic signatures.

See on (website name) docs

PAN Verification Check validity and name of PAN holder, with a simple and straightforward PAN verification API.

Verify PAN

https://dg-sandbox.(website name).co/api/verify/pan


Request

Header parameters

x-client-id

string

Required

x-client-secret

string

Required

x-product-instance-id

string

Required


Body

pan

string

Required

consent

string

Required

reason

string

Required

Response

Body

data

object

Required

message

string

Required

verification

string

Required

traceID

string

Required

Language

curl

Node

Python

Go

Request sample


curl --request POST \
--url https://dg-sandbox.(website name).co/api/verify/pan \
--header 'content-type: application/json' \
--header 'x-client-id: test-client' \
--header 'x-client-secret: 891707ee-d6cd-4744-a28d-058829e30f12' \
--header 'x-product-instance-id: 891707ee-d6cd-4744-a28d-058829e30f10' \
--data '{
"pan": "ABCDE1234A",
"consent": "Y",
"reason": "Reason for verifying PAN set by the developer"
}'
200 OK

Response sample


{
"data": {
"aadhaar_seeding_status": "LINKED",
"category": "Individual",
"full_name": "John Doe"
},
"message": "PAN is valid",
"verification": "SUCCESS",
"traceId": "1-6346a91a-620cf6cc4f68d2e30316881e"
}