Skip to main content
POST
{base_url}
/
api
/
v1
/
validate
/
eid
EID Validation
curl --request POST \
  --url https://api.example.com/{base_url}/api/v1/validate/eid \
  --header 'Content-Type: <content-type>' \
  --header 'x-transaction-key: <x-transaction-key>' \
  --data '
{
  "eidNumber": "<string>",
  "cardNumber": "<string>",
  "dateOfBirth": "<string>",
  "nationality": "<string>",
  "eidIssueDate": "<string>",
  "eidExpiryDate": "<string>"
}
'
{
  "data": {
    "data": {
      "cardNumber": "987654321",
      "dateOfBirth": "1985-08-20",
      "eidExpiryDate": "2026-06-15",
      "eidIssueDate": "2023-06-15",
      "fullNameArabic": "راجيش كومار",
      "fullNameEnglish": "RAJESH KUMAR",
      "nationality": "IND"
    },
    "transactionId": "7b50f849-20a9-4bf4-88f7-5f8869e2edca",
    "validations": {
      "cardNumberStatus": "CORRECT",
      "dateOfBirthStatus": "CORRECT",
      "eidExpiryDateStatus": "CORRECT",
      "eidIssueDateStatus": "CORRECT",
      "eidStatus": "ACTIVE",
      "insideUaeStatus": "OUTSIDE",
      "nationalityStatus": "CORRECT",
      "residenceValidity": "NOT_APPLICABLE",
      "visaStatus": "INACTIVE"
    }
  },
  "message": "EID validation completed successfully",
  "meta": {
    "timestamp": "2026-03-10T10:44:12.396624361Z"
  },
  "signature": "e5359137c4eb93a54279a076...fbd8a79",
  "success": true
}
Validates an Emirates ID number against ICP (government) records. The request goes through three stages: pre-checks, credit reservation, and the ICP call.

Validation Stages

These checks run before any billing or ICP call.
CheckWhat it testsFail result
Rate limitRequest count for this org within the window429, no transaction saved
Usage limitOrg’s EID quota not exceeded403, transaction saved as error
Circuit breakerICP integration is healthy503, transaction saved as error
Emirates ID presenteidNumber field is not blank400, API: no transaction / Batch: transaction saved
Card number formatValid 9-digit format (required if module config says so, else can be blank)400, API: no transaction / Batch: transaction saved as error
EID Luhn checksumDigit checksum is mathematically valid400, API: no transaction / Batch: transaction saved as error
CheckWhat it testsFail result
Sufficient creditsOrg has credits to cover 1 call402, transaction saved
From this stage onward, all transactions are billed (unless a refund applies).
CheckWhat it testsFail result
ICP call — person existsGovernment record found for this EID404, transaction saved, billed
ICP call — service upICP responds without infrastructure error503/504/500, transaction saved, refunded
DOB matchProvided date of birth matches government record (if given)200 with validation_status=failed, billed
Nationality matchProvided nationality matches government record (if given)200 with validation_status=failed, billed
Card number matchProvided card number matches government record (if given)200 with validation_status=failed, billed
EID expiry matchProvided EID expiry matches government record (if given)200 with validation_status=failed, billed
EID issue matchProvided EID issue date matches government record (if given)200 with validation_status=failed, billed
EID expiryEID has not passed its expiry date in government records200 with validation_status=failed, billed
EID issueEID has passed its issue date in government records200 with validation_status=failed, billed
Visa status by person classFor residents: active visa; for citizens: N/A; for visitors: visa validity200 with validation_status=failed, billed
Optional fields: DOB, nationality, and dates are optional in the request. If not provided, they are returned as NOT_PROVIDED (not failed). If provided, they must match exactly.

Authentication

x-transaction-key
string
required
Your API key. Get your key →
Content-Type
string
required
Must be application/json

Request Body

eidNumber
string
required
Emirates ID number to validate. Format: 784XXXXXXXXXXXX (15 digits, no hyphens).
cardNumber
string
9-digit card number on the Emirates ID. Required if your module configuration mandates it; otherwise optional.
dateOfBirth
string
Date of birth to match against government records. Accepts multiple date formats (multi-format normalization applied).
nationality
string
Nationality to match against government records (case-insensitive).
eidIssueDate
string
EID issue date to match against government records.
eidExpiryDate
string
EID expiry date to match against government records (exact match, no normalization).

Code Examples

curl -X POST "{base_url}/api/v1/validate/eid" \
  -H "x-transaction-key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "eidNumber": "784XXXXXXXXXXXX",
    "dateOfBirth": "1990-01-15",
    "nationality": "IND"
  }'

Response Fields

The validations object in the response contains the following fields:
FieldTypeDescription
validations.cardNumberStatusenumWhether the provided card number matches the government record
validations.eidStatusenumWhether the EID is currently active per government records
validations.visaStatusenumWhether the person has an active visa on record
validations.dateOfBirthStatusenumWhether the provided date of birth matches the government record
validations.nationalityStatusenumWhether the provided nationality matches the government record
validations.eidIssueDateStatusenumWhether the provided EID issue date matches the government record
validations.eidExpiryDateStatusenumWhether the provided EID expiry date matches the government record
validations.insideUaeStatusenumWhether the person is currently inside the UAE per travel records
validations.residenceValidityenumResidence permit validity based on inside/outside UAE status

validations.cardNumberStatus

ValueWhen it occurs
CORRECTThe provided card number matches the government record
INCORRECTThe provided card number does not match the government record
NOT_PROVIDEDNo card number was included in the request

validations.eidStatus

ValueWhen it occurs
ACTIVEThe EID expiry date is in the future per government records
INACTIVEThe EID has expired, the date cannot be parsed, or no expiry date exists

validations.visaStatus

ValueWhen it occurs
ACTIVEThe person has an active visa on record
INACTIVEThe person’s visa is expired or not active
NOT_APPLICABLEThe person is a UAE or GCC citizen — visa check is skipped entirely

validations.dateOfBirthStatus

ValueWhen it occurs
CORRECTThe provided date of birth matches the government record (multi-format date normalization)
INCORRECTThe provided date of birth does not match the government record
NOT_PROVIDEDNo date of birth was included in the request

validations.nationalityStatus

ValueWhen it occurs
CORRECTThe provided nationality matches the government record (case-insensitive)
INCORRECTThe provided nationality does not match the government record
NOT_PROVIDEDNo nationality was included in the request

validations.eidIssueDateStatus

ValueWhen it occurs
CORRECTThe provided EID issue date matches the government record
INCORRECTThe provided EID issue date does not match the government record
NOT_PROVIDEDNo EID issue date was included in the request

validations.eidExpiryDateStatus

ValueWhen it occurs
CORRECTThe provided EID expiry date matches the government record (exact match, no normalization)
INCORRECTThe provided EID expiry date does not match the government record
NOT_PROVIDEDNo EID expiry date was included in the request

validations.insideUaeStatus

ValueWhen it occurs
INSIDETravel records indicate the person is currently inside the UAE
OUTSIDEPerson is outside the UAE — covers both temporary travel and extended absence of 6+ months. Use residenceValidity to distinguish severity

validations.residenceValidity

ValueWhen it occurs
VALIDResident is inside UAE, or is outside UAE but within the 6-month allowed absence window
INVALIDResident has been outside UAE for 6+ months — residence permit likely revoked
NOT_APPLICABLEPerson is inside UAE, or is a visitor/citizen class for whom residence validity does not apply
{
  "data": {
    "data": {
      "cardNumber": "987654321",
      "dateOfBirth": "1985-08-20",
      "eidExpiryDate": "2026-06-15",
      "eidIssueDate": "2023-06-15",
      "fullNameArabic": "راجيش كومار",
      "fullNameEnglish": "RAJESH KUMAR",
      "nationality": "IND"
    },
    "transactionId": "7b50f849-20a9-4bf4-88f7-5f8869e2edca",
    "validations": {
      "cardNumberStatus": "CORRECT",
      "dateOfBirthStatus": "CORRECT",
      "eidExpiryDateStatus": "CORRECT",
      "eidIssueDateStatus": "CORRECT",
      "eidStatus": "ACTIVE",
      "insideUaeStatus": "OUTSIDE",
      "nationalityStatus": "CORRECT",
      "residenceValidity": "NOT_APPLICABLE",
      "visaStatus": "INACTIVE"
    }
  },
  "message": "EID validation completed successfully",
  "meta": {
    "timestamp": "2026-03-10T10:44:12.396624361Z"
  },
  "signature": "e5359137c4eb93a54279a076...fbd8a79",
  "success": true
}