Validate a passport against UAE government records. Returns EID linkage, visa status, passport expiry, and field-level match results.
Stage 1: Pre-Checks (not billed)
| Check | What it tests | Fail result |
|---|---|---|
| Rate limit | Request count for this org within the window | 429, no transaction saved |
| Usage limit | Org’s passport quota not exceeded | 403, transaction saved as error |
| Passport number present | passportNo field is not blank | 400, API: no transaction / Batch: transaction saved as error |
| Nationality present | nationality field is not blank | 400, API: no transaction / Batch: transaction saved as error |
| Passport type present | passportType field is not blank | 400, API: no transaction / Batch: transaction saved as error |
Stage 2: Credit Reservation
| Check | What it tests | Fail result |
|---|---|---|
| Sufficient credits | Org has credits to cover 1 call | 402, transaction saved |
Stage 3: ICP Call & Post-Call Checks (billed)
| Check | What it tests | Fail result |
|---|---|---|
| ICP call — person exists | Government record found for this passport + nationality + type | 404, transaction saved, billed |
| ICP call — service up | ICP responds without infrastructure error | 503/504/500, transaction saved, refunded |
| DOB match | Provided date of birth matches government record (if given) | 200 with validation_status=failed, billed |
| Passport issue match | Provided passport issue date matches government record (if given) | 200 with validation_status=failed, billed |
| Passport expiry match | Provided passport expiry date matches government record (if given) | 200 with validation_status=failed, billed |
| Passport issue | Passport has been issued as per government record | 200 with validation_status=failed, billed |
| Passport expiry | Passport has not expired per government record | 200 with validation_status=failed, billed |
| Immigration file expiry | Immigration file itself has not expired | 200 with validation_status=failed, billed |
application/jsonIND, GBR).P for ordinary).validations object in the response contains the following fields:
| Field | Type | Description |
|---|---|---|
validations.dateOfBirthStatus | enum | Whether the provided date of birth matches the government record |
validations.eidStatus | enum | Status of the linked Emirates ID on the government record |
validations.visaStatus | enum | Whether the person has an active visa on record |
validations.passportExpiryStatus | enum | Whether the passport is still valid per government records |
validations.immigrationExpiryStatus | enum | Whether the immigration file is still valid |
validations.issueDateStatus | enum | Whether the provided passport issue date matches the government record |
validations.expiryDateStatus | enum | Whether the provided passport expiry date matches the government record |
validations.linkedEIDNumber | string | The linked Emirates ID number (format: 784-XXXX-XXXXXXX-X). Omitted if no linked EID was found. |
validations.dateOfBirthStatus| Value | When it occurs |
|---|---|
CORRECT | The provided date of birth matches the government record (multi-format normalization) |
INCORRECT | The provided date of birth does not match the government record |
NOT_PROVIDED | No date of birth was included in the request |
validations.eidStatus| Value | When it occurs |
|---|---|
ACTIVE | A linked EID exists and its expiry date is in the future |
INACTIVE | A linked EID exists but has expired, or the date cannot be parsed |
NOT_FOUND | No linked Emirates ID was found on the government record |
validations.visaStatus| Value | When it occurs |
|---|---|
ACTIVE | The person has a valid, active visa on record |
INACTIVE | The person’s visa is expired or not active |
NOT_APPLICABLE | The person is a UAE or GCC citizen — visa check is skipped entirely |
validations.passportExpiryStatus| Value | When it occurs |
|---|---|
VALID | The passport expiry date is in the future per government records |
EXPIRED | The passport has expired, the date cannot be parsed, or no expiry date exists on record |
validations.immigrationExpiryStatus| Value | When it occurs |
|---|---|
VALID | The immigration file expiry date is in the future |
EXPIRED | The immigration file has expired, the date is missing, or the date cannot be parsed |
validations.issueDateStatus| Value | When it occurs |
|---|---|
CORRECT | The provided passport issue date matches the government record (multi-format normalization) |
INCORRECT | The provided passport issue date does not match the government record |
NOT_PROVIDED | No issue date was included in the request |
validations.expiryDateStatus| Value | When it occurs |
|---|---|
CORRECT | The provided passport expiry date matches the government record (multi-format normalization) |
INCORRECT | The provided passport expiry date does not match the government record |
NOT_PROVIDED | No expiry date was included in the request |