---
title: "PAN Advanced API Reference"
description: "Rich PAN verification returning registered name, PAN type, gender, DOB, masked Aadhaar, address, email, and mobile."
canonical: "https://eps.eko.in/docs/pan-advanced"
---


> **Canonical URL:** https://eps.eko.in/docs/pan-advanced
> This is a machine-readable Markdown version of the page for AI agents and LLMs. The primary (HTML) version lives at the canonical URL above.

# PAN Advanced API Reference

`POST https://staging.eko.in/ekoapi/v3/tools/kyc/pan-advanced`

Rich PAN verification returning registered name, PAN type, gender, DOB, masked Aadhaar, address, email, and mobile.

PAN Advanced performs a deeper KYC lookup against the PAN database. In addition to the match flags returned by PAN Lite, it surfaces the registered name, name on the PAN card, PAN type (Individual / Company / etc.), gender, date of birth, masked Aadhaar number, Aadhaar link status, and structured address. Email and mobile fields are populated at a ~5–10% fill rate due to data-source availability. Use this API when downstream workflows need authoritative identity attributes beyond a pass/fail match.

> View product & pricing details: [PAN Verification](https://eps.eko.in/products/pan-verification-api.md)

## Body parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| initiator_id | string | yes | Registered mobile number of the API user (see Platform Credentials). e.g. 9962981729 |
| user_code | string | yes | User code of the retailer/agent the service is run for. e.g. 20810200 |
| client_ref_id | string | no | Unique reference id per API call, generated by your system. e.g. REQ-20260101-001 |
| pan | string | yes | 10-character alphanumeric PAN identifier (first 5 alphabets, 4 digits, 1 alphabet). e.g. ABCDE1234F |
| name | string | yes | Individual's name per PAN information, used for match scoring. e.g. Rajesh Kumar |
| dob | string | yes | Date of birth in YYYY-MM-DD format. e.g. 1994-08-29 |

## Headers

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| developer_key | string | yes | Static API key issued to your account after KYC. |
| secret-key | string | yes | Dynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))). |
| secret-key-timestamp | string | yes | Current time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time. |
| content-type | string | yes | application/json e.g. application/json |

## Response

⭐ marks fields highlighted as verifiable.

| Field | Type | Description |
| --- | --- | --- |
| status | number | Primary success indicator (0 = success). |
| message | string | Human-readable response / error message. |
| response_status_id | number | Granular status id; see the shared error-codes table. |
| response_type_id | number | A unique id for every possible response shape (success or error) — useful for client logic branching and analytics. |
| data | object | API-specific response payload. |
| data.pan | string | PAN number submitted in the request. |
| data.name_provided | string | Name as submitted in the request. |
| data.registered_name ⭐ | string | Authoritative name registered in the PAN database. |
| data.name_pan_card ⭐ | string | Name printed on the physical PAN card. |
| data.first_name | string | First name parsed from the PAN record. |
| data.last_name | string | Last name parsed from the PAN record. |
| data.type ⭐ | string | PAN holder category (e.g., 'Individual', 'Company', 'Firm', 'Trust', 'HUF'). |
| data.gender ⭐ | string | Gender from PAN record. Values: 'M' (Male), 'F' (Female). |
| data.date_of_birth ⭐ | string | Date of birth from the PAN record (YYYY-MM-DD). |
| data.masked_aadhaar_number ⭐ | string | Aadhaar number with first 8 digits masked for privacy (e.g., 'XXXX XXXX 1234'). |
| data.aadhaar_linked ⭐ | boolean | Whether the PAN is linked to an Aadhaar number. |
| data.email | string | Email address associated with the PAN. Fill rate is approximately 5–10% due to data-source availability. |
| data.mobile_number | string | Mobile number associated with the PAN. Fill rate is approximately 5–10% due to data-source availability. |
| data.address ⭐ | object | Structured address fields of the PAN holder. |
| data.address.full_address ⭐ | string | Complete address string. |
| data.address.street | string | Street name / house number. |
| data.address.city | string | City name. |
| data.address.state | string | State name. |
| data.address.pincode | number | 6-digit postal PIN code. |
| data.address.country | string | Country name. |

## Example request

```json
{
  "initiator_id": "9962981729",
  "user_code": "20810200",
  "client_ref_id": "REQ-20260101-001",
  "pan": "ABCDE1234F",
  "name": "Rajesh Kumar",
  "dob": "1994-08-29"
}
```

## Example response

```json
{
  "status": 0,
  "response_status_id": 0,
  "message": "PAN Advanced verification successful",
  "response_type_id": 1388,
  "data": {
    "pan": "ABCDE1234F",
    "name_provided": "Rajesh Kumar",
    "registered_name": "Rajesh Kumar",
    "name_pan_card": "Rajesh Kumar",
    "first_name": "Rajesh",
    "last_name": "Kumar",
    "type": "Individual",
    "gender": "M",
    "date_of_birth": "1994-08-29",
    "masked_aadhaar_number": "XXXX XXXX 1234",
    "aadhaar_linked": true,
    "email": "rajesh.kumar@example.com",
    "mobile_number": "9876543210",
    "address": {
      "full_address": "Woodland Heights, Ghatkopar, Mumbai, Maharashtra 400072",
      "street": "Woodland Heights, Ghatkopar",
      "city": "Mumbai",
      "state": "Maharashtra",
      "pincode": 400072,
      "country": "India"
    }
  }
}
```

## Error scenarios

| Status | Scenario |
| --- | --- |
| 200 | PAN not found in database |
| 400 | Missing required parameter |
