Mobile driving licence (mDL)
Status: standardised profile. The mDL is the document type ISO/IEC 18013-5 defines. The SDK adds nothing to its schema; the demo only chooses values and a card design. The RTA-styled card is a demo design, not an official RTA product.

What is on it
Section titled “What is on it”The standard defines the full set; the ones you will usually ask for:
| Field | Name to request | Example |
|---|---|---|
| Given names / family name | given_name, family_name |
Abdul / Hakim |
| Name in Arabic | given_name_national_character, family_name_national_character |
عبد / الحكيم |
| Date of birth | birth_date |
1991-05-13 |
| Licence number | document_number |
987654321 |
| Issue / expiry dates | issue_date, expiry_date |
2024-03-15 / 2028-09-01 |
| Categories | driving_privileges |
B, from 2024-03-15 |
| Photo | portrait |
(image) |
| Signature | signature_usual_mark |
(image) |
| Age checks | age_over_18, age_over_21 |
true |
| Issuing authority / country | issuing_authority, issuing_country |
Road Transport Authority / AE |
Namespace: org.iso.18013.5.1.
Typical requests
Section titled “Typical requests”- Car rental: names,
portrait,age_over_21,document_number,expiry_date(what DriveNow asks for). - Roadside:
RequestPresets.MDL_DRIVER_CHECK(identity, number, categories). - Age only:
portrait,age_over_18.
Requests.mdl(['family_name', 'given_name', 'portrait', 'age_over_21', 'document_number', 'expiry_date'])Where it is used
Section titled “Where it is used”- DriveNow verifies it online, including through the browser’s Digital Credentials API.
- The Verify app offers the age and licence checks in person.
Standards and references
Section titled “Standards and references”- ISO/IEC 18013-5:2021, clause 7 (data model) and Annex A/B (encoding, PKI).
- Container, presentation, trust and revocation: mdoc architecture.
Doctype and namespaces
Section titled “Doctype and namespaces”| docType | org.iso.18013.5.1.mDL (DocTypes.MDL) |
| namespace | org.iso.18013.5.1 (all standard elements) |
| namespace | org.iso.18013.5.1.aamva (AAMVA extension; not used by the demo) |
Attributes (standard, as issued by the demo)
Section titled “Attributes (standard, as issued by the demo)”The demo issues the full ISO element set with realistic sample values, overriding the ones a believable UAE licence needs. Required = mandatory in ISO/IEC 18013-5 Table 5.
| Identifier | Meaning | CBOR | Required | Encoding | Example |
|---|---|---|---|---|---|
family_name, given_name |
names | tstr | yes | Latin | "Hakim", "Abdul" |
birth_date |
date of birth | full-date | yes | tag 1004 |
1991-05-13 |
issue_date, expiry_date |
licence validity | full-date / tdate | yes | 2024-03-15, 2028-09-01 |
|
issuing_country |
tstr | yes | ISO 3166-1 alpha-2 | "AE" |
|
issuing_authority |
tstr | yes | "Road Transport Authority" |
||
document_number |
licence number | tstr | yes | "987654321" |
|
portrait |
bstr | yes | JPEG | (bytes) | |
driving_privileges |
categories with dates | array of maps | yes | ISO 18013-5 7.2.4 | [{vehicle_category_code:"B", issue_date:…, expiry_date:…}] |
un_distinguishing_sign |
tstr | yes | "UAE" |
||
administrative_number, sex, height, weight, eye_colour, hair_colour, birth_place, resident_address, portrait_capture_date, age_in_years, age_birth_year, age_over_18, age_over_21, issuing_jurisdiction, nationality, resident_city, resident_state, resident_postal_code, resident_country, family_name_national_character, given_name_national_character, signature_usual_mark |
optional elements | as per ISO | no | as per ISO | sex: 1, nationality: "Singaporean", given_name_national_character: "عبد" |
biometric_template_* |
bstr | no | not issued by the demo | – |
Local extensions: none. The AAMVA namespace is not populated.
Card field mapping
Section titled “Card field mapping”| On the card | Source | Kind |
|---|---|---|
| RTA logo; UNITED ARAB EMIRATES / Driving Licence (EN + AR) | fixed | decorative |
| Portrait | portrait |
data |
| LICENCE NO. | document_number |
data |
| NAME | given_name + family_name |
data |
| Arabic name | given_name_national_character + family_name_national_character |
data |
| DATE OF BIRTH, EXPIRES | birth_date, expiry_date as dd/MM/yyyy |
derived format |
| NATIONALITY | nationality |
data |
| Signature | holder signature asset | decorative |
Face: demo/brand-hakim/.../CardFaces.kt (RtaDrivingLicenceFace).
Issuance and provisioning
Section titled “Issuance and provisioning”Demo: MdlSeeder + DemoIssuer self-issue on first run (validity 1 year) under the demo IACA. Real:
OpenID4VCI from the licensing authority’s issuer.
Trust, presentation, validity
Section titled “Trust, presentation, validity”As in mdoc architecture. The demo VICAL lists the mDL doctype for the demo IACA. Verified in person by the Verify app, online by DriveNow (OpenID4VP and the DC API).
Selective-disclosure requests
Section titled “Selective-disclosure requests”RequestPresets.MDL_AGE_OVER_18 // portrait, age_over_18, issuing_authority → one big Yes/NoRequestPresets.MDL_DRIVER_CHECK // the SDK's core element setRequests.mdl(['family_name', 'given_name', 'portrait', 'age_over_21', 'document_number', 'expiry_date']) // DriveNowExample (explanatory JSON, not CBOR)
Section titled “Example (explanatory JSON, not CBOR)”{ "docType": "org.iso.18013.5.1.mDL", "org.iso.18013.5.1": { "family_name": "Hakim", "given_name": "Abdul", "birth_date": "1991-05-13", "issue_date": "2024-03-15", "expiry_date": "2028-09-01", "issuing_country": "AE", "issuing_authority": "Road Transport Authority", "document_number": "987654321", "un_distinguishing_sign": "UAE", "driving_privileges": [{ "vehicle_category_code": "B", "issue_date": "2024-03-15", "expiry_date": "2028-09-01" }], "age_over_18": true, "age_over_21": true, "portrait": "<JPEG bytes>" }}Interoperability
Section titled “Interoperability”Fully standard: the demo mDL has been verified by independent third-party online verifiers and by
the Verify API (the DriveNow fixture test). The iOS Digital Credentials sheet shows it for
org-iso-mdoc requests.