---
title: "Check Bulk PAN Verification Status API Reference"
description: "Poll the result of a Bulk PAN Verification batch using the reference_id returned when the batch was submitted."
canonical: "https://eps.eko.in/docs/pan-bulk-status"
---


> **Canonical URL:** https://eps.eko.in/docs/pan-bulk-status
> 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.

# Check Bulk PAN Verification Status API Reference

`GET https://staging.eko.in/ekoapi/v3/tools/kyc/pan/bulk/status`

Poll the result of a Bulk PAN Verification batch using the reference_id returned when the batch was submitted.

Retrieves the per-PAN results for a batch previously submitted via the Bulk PAN Verification API. Because bulk verification runs asynchronously, callers poll this endpoint with the reference_id from the submit response until the batch finishes processing. The response returns a count and an array of entries, one per PAN, each carrying the validity, registered name, name-match score/result, Aadhaar-seeding status, and PAN status.

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

## Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| initiator_id | string | yes | Registered mobile number of the API user (see Platform Credentials). e.g. 9962981729 |
| reference_id | string | yes | Unique id returned by the Bulk PAN Verification API for the submitted batch. e.g. 123456 |
| bulk_reference_id | string | no | Unique id created to identify the bulk request, if you tracked one at submit time. e.g. BULK-PAN-20240101-001 |

## 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.count ⭐ | number | Number of entries in the results array. |
| data.entries ⭐ | array | Per-PAN verification results for the batch. |
| data.entries.pan ⭐ | string | 10-character PAN identifier. |
| data.entries.valid | string | PAN card validity status. |
| data.entries.registered_name | string | Name on record against the PAN. |
| data.entries.name_provided | string | Name submitted in the bulk request for this PAN. |
| data.entries.name_match_score | string | Name verification score. |
| data.entries.name_match_result | string | Name match result. |
| data.entries.aadhaar_seeding_status | string | Aadhaar-PAN linkage status. |
| data.entries.pan_status | string | Current PAN status. |
| data.entries.message | string | Success or failure details for this entry. |
| data.entries.reference_id | string | Unique reference identifier for the entry. |
| data.entries.last_updated_at | string | Timestamp when the entry was last updated. |

## Example response

```json
{
  "status": 0,
  "response_status_id": 0,
  "message": "Success",
  "response_type_id": 1388,
  "data": {
    "count": 2,
    "entries": [
      {
        "pan": "ABCPV1234D",
        "valid": "true",
        "registered_name": "John Doe",
        "name_provided": "John",
        "name_match_score": "82.5",
        "name_match_result": "GOOD_PARTIAL_MATCH",
        "aadhaar_seeding_status": "Y",
        "pan_status": "VALID",
        "message": "PAN verified successfully",
        "reference_id": "123456",
        "last_updated_at": "2024-01-01 12:30:45"
      },
      {
        "pan": "ABCPV1234L",
        "valid": "true",
        "registered_name": "John Doe",
        "name_provided": "John Doe",
        "name_match_score": "100",
        "name_match_result": "EXACT_MATCH",
        "aadhaar_seeding_status": "Y",
        "pan_status": "VALID",
        "message": "PAN verified successfully",
        "reference_id": "123456",
        "last_updated_at": "2024-01-01 12:30:46"
      }
    ]
  }
}
```

## Error scenarios

| Status | Scenario |
| --- | --- |
| 400 | Missing reference_id |
| 404 | Unknown or expired reference_id |
