How to Verify a PAN Card Online in India
A practical, developer-focused guide to real-time PAN verification — what it checks, how to call the API, and how to match the holder name during KYC.
Verifying a PAN (Permanent Account Number) is one of the first steps in almost every Indian KYC, lending and vendor-onboarding flow. Doing it manually — asking customers to upload a PAN image and eyeballing it — is slow, error-prone and easy to fake. An API lets you confirm a PAN is genuine and belongs to the right person in under a second, directly inside your signup flow.
This guide walks through how online PAN verification works, what the API returns, and how to use name matching to tie a PAN to a real customer.
What does PAN verification actually check?
A PAN verification API confirms three things: that the PAN format is valid, that the number is registered and active with the income-tax department, and that the registered holder name matches what your customer told you. It also returns the PAN category — individual, company, HUF, firm, trust and so on.
- Validity — is this a real, active PAN?
- Holder name — the full name registered against the PAN.
- Name match — does it match the name your customer entered?
- Category — individual, company, HUF, firm, trust, etc.
Step 1 — Get an API key
Create a free BILAPI account and generate a live API key. The same key works across every verification endpoint and in the free sandbox, so you can test before sending real traffic.
Step 2 — Send the PAN to the API
Make a POST request with the PAN (and optionally the name you want to match) and your API key in the header:
POST https://api.bilapi.com/v1/pan-verification-api
X-Bilapi-Api-Key: <your_api_key>
Content-Type: application/json
{
"pan": "ABCDE1234F",
"name": "Rahul Sharma"
}Step 3 — Read the JSON response
You get a clean, predictable JSON envelope back in milliseconds:
{
"status_code": 200,
"success": true,
"data": {
"pan": "ABCDE1234F",
"registered_name": "RAHUL SHARMA",
"name_match": true,
"category": "Individual",
"status": "VALID"
}
}How name matching works
Pass the name your customer entered and the response includes a name_match flag. This is what actually ties the PAN to the person in front of you — a valid PAN alone does not prove ownership. Use the match result to auto-approve clean cases and route mismatches to manual review.
What does PAN verification cost?
With BILAPI you pay per successful verification from a prepaid wallet — there is no monthly commitment, and invalid inputs or failed lookups are never charged. A free sandbox is included so you can integrate and test at no cost.
Best practices
- Always send a name to match — a valid PAN without a name match is not proof of identity.
- Store the verification result and timestamp for your KYC audit trail.
- Handle the name_match=false case explicitly instead of silently approving.
- Test every edge case in the sandbox before going live.
