PAN guide

Which of the eight PAN APIs to use for your use case, how to combine them, and how to read each result.

SignCare has eight PAN APIs. They all live under /api/v1/pan/. This guide helps you choose one for your use case, combine them, and read the results. Every field and rule for each endpoint is in the PAN Verification reference.

Pick an API in 10 seconds

I want to...UseEndpoint
Verify a customer's PAN for KYC or onboardingPAN Verify/api/v1/pan/verify
Check that a PAN exists and see the name on itPAN Lite/api/v1/pan/lite
Get the name split into title, first, middle and last, plus Aadhaar seedingPAN Advance/api/v1/pan/advance
Pre-fill a form with name, DOB, gender and addressPAN Pro/api/v1/pan/pro
Find a user's PAN when they only know their mobile numberMobile to PAN/api/v1/pan/mobile-to-pan
Find the email addresses and mobile numbers registered to a PANPAN to Email & Mobile/api/v1/pan/pan-to-email-mobile
List all GST registrations of a businessPAN to GST/api/v1/pan/pan-to-gst
Check a business's MSME / Udyam registrationPAN to MSME/api/v1/pan/to-msme

What each API returns

✅ = returned, ➖ = not returned.

FieldVerifyLiteAdvancePro
PAN status (valid / invalid)✅✅✅➖
PAN type (Individual, Company, Firm, Trust, HUF, Association)✅ category✅✅✅
Name match✅ yes/no✅ score✅ score✅ score
Date-of-birth match✅ yes/no➖➖➖
Aadhaar seeding / link status✅➖✅✅
Holder's full name➖✅✅ (and its parts)✅ (and its parts)
Date of birth, gender➖➖➖✅
Address➖➖➖✅
Masked Aadhaar, masked email, phone➖➖➖✅
Date the PAN was last updated➖➖✅➖

PAN Verify is the only API that checks the date of birth, and the only one that gives yes/no answers for name and DOB. The others return a name-match score from 0 to 100, and your application decides what counts as a match.

Use cases

Customer KYC in regulated businesses

Lending, NBFCs, stock broking and investment apps, insurance, payments and wallets.

Use PAN Verify. Regulators generally expect you to confirm the PAN with the issuing authority, check that the name (and usually the date of birth) matches what the customer gave, and check that the PAN is linked to Aadhaar. Since July 2023, a PAN that isn't linked to Aadhaar is inoperative. PAN Verify gives you all of these in one call.

A PAN check is usually one step of KYC, not the whole thing. Depending on your regulator you may also need proof of address (DigiLocker), a live photo check (face liveness), a bank account check (bank account verification) and other steps. Confirm the exact list with your compliance team.

Fast sign-up with less typing

  1. Ask only for the PAN.
  2. Call PAN Pro and pre-fill name, date of birth and gender.
  3. Let the user confirm or correct the details.
  4. Call PAN Verify with the confirmed values. Use this result as your evidence.

Pre-filled data is a convenience. Base the decision on the PAN Verify result, which checks the values the user confirmed.

The user doesn't remember their PAN

  1. Ask for their mobile number and name.
  2. Call Mobile to PAN to find the PAN.
  3. Show it masked (for example ABCXXXX34F) and ask the user to confirm.
  4. Call PAN Verify on the confirmed PAN.

A lookup is not a verification. Always verify a PAN you found this way before you rely on it.

Show the user the name on their PAN

Call PAN Lite with only the PAN and show user_full_name, for example "Is this you?". This catches typos before the user goes any further.

Employee, tenant or partner background checks

PAN Lite or PAN Advance with the name. Treat a high name-match score and a VALID status as confirmation. Add PAN Verify if you also need to check the date of birth.

Business and vendor onboarding (KYB)

For a business PAN (4th character C, F, T, A or H):

  1. PAN Lite with the business name: confirms the PAN is valid and belongs to that name.
  2. PAN to GST: lists every GSTIN of the business, with state and status. Use it to choose or check the GSTIN on the invoice.
  3. PAN to MSME: tells you whether the business is Udyam-registered (micro, small or medium). This matters for MSME payment-term rules. Set is_pdf_required: true to also get the certificate.

Reaching an existing customer

PAN to Email & Mobile returns the contact details registered against a PAN. Use it only for customers you already have a relationship with and a lawful reason to contact, such as KYC updates or servicing. Under India's data protection law (DPDP Act 2023), collect only what you need and record why you collected it. If the default version returns nothing, try again with "version": "v2", which has wider coverage.

Reading the result

Every response uses the same envelope. The outcome is in the body's statusCode, not only in the HTTP status.

{
  "success": true,
  "statusCode": 100,
  "message": "Valid Authentication",
  "messages": [],
  "request_id": "your-request-id",
  "isBillable": true,
  "data": {
    "pan": "ABCDE1234F",
    "category": "Individual",
    "status": "VALID",
    "name_as_per_pan_match": true,
    "date_of_birth_match": true,
    "aadhaar_seeding_status": "Y"
  }
}
  • PAN Verify, Lite, Advance, Pro and PAN to GST use the verification result codes: 100 verified, 102 invalid input, 103 no record found, and so on. They return HTTP 200 even when the answer is "not verified". The full table is in Verification result codes. Branch on statusCode, not on success.
  • Mobile to PAN, PAN to Email & Mobile and PAN to MSME are lookups. A found record comes back with success: true and values in data. If nothing is found, success is false and message gives the reason.
  • If the PAN doesn't exist, the verification APIs return data.status as INVALID, with the match fields empty or null.

PAN Verify: suggested decision rules

Compare text values without regard to letter case.

statusaadhaar_seeding_statusName matchDOB matchSuggested action
VALIDYtruetrue✅ Pass
VALIDYfalseanyAsk the user to type the name exactly as on the PAN card. After repeated failures, send to manual review.
VALIDYtruefalseAsk the user to check the date of birth. After repeated failures, send to manual review.
VALIDanything elseanyanyThe PAN is not linked to Aadhaar, so it may be inoperative. Ask the user to link it on the Income Tax e-filing portal, then try again.
INVALID or empty———Reject. Ask the user to check the PAN number.

Name-match scores (Lite, Advance, Pro)

name_match_score is a percentage from 0 to 100, sent as text (for example "86.50"). Choose a threshold that suits your risk policy. For example, auto-approve above your threshold and send borderline scores to manual review. Names with initials, a missing middle name or a different spelling usually score lower.

Request tips

Send the PAN in upper case

10 characters in the form AAAAA9999A, for example ABCDE1234F. Strip spaces before you send it. A badly formed PAN is rejected with 400 before any lookup.

Always send dob to PAN Verify

Accepted formats are dd-MM-yyyy (15-08-1990), dd/MM/yyyy, dd-MMM-yyyy (15-AUG-1990) and dd/MMM/yyyy. If dob is missing or in another format, the request isn't rejected, but the date of birth is checked against a default date, so date_of_birth_match comes back false even for a genuine user.

Every PAN API requires consent: "Y" and a consent_text. Show the consent text to your user and record that they agreed before you call the API.

Use your own request_id

Send request_id with your own reference, for example your application or customer ID. Store it with the result, so you can trace a call later or quote it to support.

Good to know

TopicGuidance
Where to call fromOnly from your server. Never put X-API-KEY in a mobile app or browser. See Authentication.
RetriesDon't retry 400, 102 or 103 as they are; fix the input first. Retry 429, 108 and 5xx once, after a backoff. See Rate limits.
CreditsRead isBillable on each response. true means the call used a credit. See Which results use a credit.
Storing PANsStore the full PAN encrypted, and show it masked (ABCXXXX34F). Keep only the fields you need. PAN Pro returns more personal data than most flows require.
Re-checkingA PAN's Aadhaar link status can change. Re-check existing customers when your policy requires it, for example at periodic KYC updates.
TestingBuild against Stage first. Test a valid PAN, a wrong name, a wrong date of birth and an invalid PAN.