Skip to main content
These types are common to every SDK. Names are shown in their canonical form; each language uses its idiomatic casing (e.g. RightThumb in Kotlin/C#, .rightThumb in Swift, right_thumb/9 on the wire). Method signatures per language live in each SDK guide and the API overview.

Config

Passed to create() / init(). Fields match 1:1 across languages.
FieldTypeRequiredNotes
baseUrlstringyesYour proxy / Validation Gateway endpoint.
apiKeyIdstringyesThe non-secret API key ID.
tokenSignercallbackyesSigns request inputs; the API secret never enters the SDK. See Authentication.
logConfigLogConfigyesWhere and how to write diagnostic logs.
timeoutMsnumbernoBackend request timeout. Default 30000.
extraHeadersmapnoAdded to every backend request. Max 5 entries.
contextAndroid ContextAndroid onlyRequired on Android; not present elsewhere.

LogConfig

FieldTypeNotes
logDirpathDirectory for log files.
maxFileSizeBytesnumberRotation size per file (e.g. 10 * 1024 * 1024).
maxFilesnumberHow many rotated files to keep.

Validation requests

The single validate call takes one of these. Attaching a Fingerprint turns on biometric matching. See Validation methods.
EmiratesIdCard   { readerId, cardDipTimeoutMs?, fingerprint?, clientReferenceId? }
EmiratesIdNfc    { tag, nfcTimeoutMs?, fingerprint?, clientReferenceId? }          // Android only
EmiratesIdManual { idNumber, documentNumber, nationality,
                   dateOfBirth?, issueDate?, expiryDate?, fingerprint?, clientReferenceId? }
PassportManual   { passportNumber, passportType, nationality,
                   dateOfBirth?, issueDate?, expiryDate?, clientReferenceId? }
FieldNotes
readerIdA reader ID from listSmartcardReaders().
cardDipTimeoutMsOptional. How long to wait for a card to be presented. Default 5000.
nfcTimeoutMsOptional. NFC read timeout (Android). Default 30000.
idNumberEmirates ID, e.g. 784-XXXX-XXXXXXX-X (hyphens optional).
nationalityISO country code, e.g. ARE.
dateOfBirth / issueDate / expiryDateYYYY-MM-DD. Optional.
clientReferenceIdOptional UUID for correlation — a non-UUID is ignored. See Client reference ID.

Fingerprint

The biometric sub-object attached to an Emirates ID request.
Fingerprint { readerId, recommendationHandler, captureTimeoutMs? }
FieldNotes
readerIdA reader ID from listFingerprintReaders().
recommendationHandlerYour callback; the SDK invokes it with the ranked finger list. See Biometrics.
captureTimeoutMsOptional capture timeout. Default 10000.

VerificationResult

Returned by validate.
FieldTypeNotes
successbooleanWhether the verification passed.
messagestringHuman-readable status.
dataobject?The resident’s verified details — every field is catalogued in Verification response.
clientReferenceIdstringEchoes your request value, or the server-assigned UUID.

ReaderInfo

Returned by listSmartcardReaders() / listFingerprintReaders().
FieldTypeNotes
idstringPass to a request’s readerId. Vendor-prefixed (ccid:…, nfc:…, morpho:…).
namestringHuman-readable reader name.
vendorstringVendor identifier.

RegistrationStatus

Returned by checkRegistration(). One of:
ValueMeaning
activeDevice is registered and can validate.
inactiveDevice is registered but disabled.
not_foundDevice is not registered.
(Swift’s RegistrationStatus also carries an optional deviceName.)

Finger

Finger indices follow ISO/IEC 7816-11 — the numeric value is what travels on the wire.
NameIndexNameIndex
NoMeaning3LeftThumb6
RightThumb5LeftIndex10
RightIndex9LeftMiddle14
RightMiddle13LeftRing18
RightRing17LeftLittle22
RightLittle15

FingerSelection

What your recommendation handler returns.
VariantMeaning
Recommended(finger)Capture a finger chosen from the backend’s ranked list.
Custom(finger)Capture a specific finger you chose (e.g. when the list is empty).
CancelAbort the biometric capture.