---
title: "Passport Verification API Reference"
description: "Verify Indian passport application details using passport file number and date of birth."
canonical: "https://eps.eko.in/docs/passport"
---


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

# Passport Verification API Reference

`POST https://staging.eko.in/ekoapi/v3/tools/kyc/passport`

Verify Indian passport application details using passport file number and date of birth.

The Passport Verification API enables businesses to validate passport holder details using passport file number and date of birth. Returns holder name, DOB, application type, and application received date — suitable for KYC, employee background verification, travel compliance, and fintech onboarding workflows. Supports Indian passports only; not an OCR or MRZ scan API.

> View product & pricing details: [Passport Verification](https://eps.eko.in/products/passport-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 |
| file_number | string | yes | Unique alphanumeric code that identifies an individual's passport application (passport file number). e.g. J8369854 |
| dob | string | yes | Date of birth of the passport holder in YYYY-MM-DD format. e.g. 1994-08-29 |
| name | string | no | Name of the passport holder. Optional — used for cross-checking in certain verification flows. e.g. Rajesh Kumar |

## 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.file_number ⭐ | string | Unique alphanumeric code identifying the passport application, echoed back from the source. |
| data.name ⭐ | string | Full name of the passport holder as recorded in the government source. |
| data.dob ⭐ | string | Date of birth of the passport holder (YYYY-MM-DD) as registered in the passport application. |
| data.application_type ⭐ | string | Type of passport application (e.g. Normal, Tatkal). Indicates the application category used when the passport was applied for. |
| data.application_received_date ⭐ | string | Date on which the passport application was received by the issuing authority (YYYY-MM-DD format). |

## Example request

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

## Example response

```json
{
  "status": 0,
  "response_status_id": 0,
  "message": "Passport verification successful",
  "response_type_id": 1388,
  "data": {
    "file_number": "J8369854",
    "name": "Rajesh Kumar",
    "dob": "1994-08-29",
    "application_type": "Normal",
    "application_received_date": "2023-01-15"
  }
}
```

## Error scenarios

| Status | Scenario |
| --- | --- |
| 200 | Invalid or non-existent passport file number / DOB mismatch |
| 400 | Missing required field (file_number or dob not supplied) |
| 403 | Authentication failure — wrong or expired secret-key / timestamp |
