Passport Verification
Identity & KYCVerify Indian passport details against official records.
Confirm that a passport number, date of birth and name correspond to a genuine Indian passport. Ideal for roles involving travel, overseas deployment or where a passport is the primary identity document.
Endpoint
Request parameters
| Field | Type | Description |
|---|---|---|
passport_number
required
|
string | Passport number |
date_of_birth
required
|
string | Date of birth |
full_name
optional
|
string | Full name |
Example request
curl -X POST https://app.emver.io/api/sandbox/v1/passport-verification \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"passport_number": "string",
"date_of_birth": "string",
"full_name": "string"
}'
import requests
response = requests.post(
"https://app.emver.io/api/sandbox/v1/passport-verification",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
json={
"passport_number": "string",
"date_of_birth": "string",
"full_name": "string"
},
timeout=60,
)
response.raise_for_status()
data = response.json()
const response = await fetch("https://app.emver.io/api/sandbox/v1/passport-verification", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
"passport_number": "string",
"date_of_birth": "string",
"full_name": "string"
}),
});
const data = await response.json();
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->post('https://app.emver.io/api/sandbox/v1/passport-verification', {
"passport_number": "string",
"date_of_birth": "string",
"full_name": "string"
});
$data = $response->json();
Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.
Response
Structure · 200
{
"status": INTEGER,
"message": STRING,
"data": {
"verification_status": STRING,
"registered_name": STRING,
"passport_number_confirmation": STRING,
"date_of_birth": STRING,
"date_of_application": STRING
}
}
Example · 200
{
"status": 200,
"message": "string",
"data": {
"verification_status": "string",
"registered_name": "string",
"passport_number_confirmation": "string",
"date_of_birth": "string",
"date_of_application": "string"
}
}
Error · 4xx / 5xx
{
"status": INTEGER,
"message": STRING
}
See Errors & status codes for what each status means and which calls are billed.
About this API
Passports are widely accepted as identity proof but rarely validated at source. The Passport Verification API checks the number and date of birth you submit against official passport records and returns the registered name and application details for comparison.
It slots neatly into white-collar background verification, where a passport is often the ID a candidate has to hand, and into travel, hospitality and cross-border onboarding flows.
Typical uses
- Executive and expat hiring. Verify identity for roles that involve international travel or overseas postings.
- Travel and hospitality. Validate guest or crew identity where passports are the standard document.
- Overseas education and immigration services. Confirm applicant identity before filing on their behalf.
- NRI account onboarding. Passport is the primary ID for non-resident customers.
Questions
- Does it verify foreign passports?
- No. This API covers Indian passports. For foreign nationals, emver offers global identity and document checks through its verification services.
- Why is date of birth mandatory?
- The passport authority matches on number plus date of birth. Sending both prevents false positives on reissued or similar numbers.
- Can the candidate submit the passport themselves?
- Yes. Combine this API with the DigiLocker flow so the person shares the digitally signed passport document with consent, and the details are verified automatically.