Skip to content

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.

The demo mDL card

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.

  • 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'])
  • DriveNow verifies it online, including through the browser’s Digital Credentials API.
  • The Verify app offers the age and licence checks in person.
  • ISO/IEC 18013-5:2021, clause 7 (data model) and Annex A/B (encoding, PKI).
  • Container, presentation, trust and revocation: mdoc architecture.
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.

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).

Demo: MdlSeeder + DemoIssuer self-issue on first run (validity 1 year) under the demo IACA. Real: OpenID4VCI from the licensing authority’s issuer.

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).

RequestPresets.MDL_AGE_OVER_18 // portrait, age_over_18, issuing_authority → one big Yes/No
RequestPresets.MDL_DRIVER_CHECK // the SDK's core element set
Requests.mdl(['family_name', 'given_name', 'portrait', 'age_over_21', 'document_number', 'expiry_date']) // DriveNow
{
"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>"
}
}

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.