Boarding pass mDoc schema

Google Wallet supports ISO/IEC 18013-5 compliant mobile documents (mDocs) for boarding passes. Eligible boarding passes saved to Google Wallet can be provisioned as an mDoc credential (mso_mdoc) and presented to relying parties and verifiers (such as airport security checkpoints) alongside a user's Digital ID.

A boarding pass mDoc is automatically derived from the underlying boarding pass (FlightClass and FlightObject) in Google Wallet.

Schema identifiers

Property Value
Document type (docType) com.google.wallet.boardingpass.1
Namespace com.google.wallet.boardingpass.1
Credential format mso_mdoc (ISO/IEC 18013-5)

Data elements

All data elements in the boarding pass mDoc reside under the com.google.wallet.boardingpass.1 namespace.

Element identifier CBOR type Mandatory Description Passes API source Example
id tstr Yes Google-generated unique identifier for the boarding pass once saved by a user in Google Wallet. Two users who save the same boarding pass object have different IDs. Generated by Google Wallet when saved by a user "1313e7d5d3a74b5795ffb6c3ad655778"
passenger_name tstr Yes Full name of the passenger as shown on the boarding pass. flightObject.passengerName "Jane Doe"
passenger_name_record tstr Yes Airline reservation confirmation code (PNR). flightObject.reservationInfo.confirmationCode "OWDGV9"
flight_number tstr Yes IATA carrier code and flight number separated by a space. flightClass.flightHeader.carrier.carrierIataCode + " " + flightClass.flightHeader.flightNumber "UA 1585"
scheduled_departure_time tdate (#6.0(tstr)) Yes Scheduled departure timestamp formatted according to RFC 3339. flightClass.localScheduledDepartureDateTime "2025-03-01T11:21:00-07:00"
departure_airport_iata tstr Yes 3-letter IATA airport code for the departure airport. flightClass.origin.airportIataCode "SFO"
arrival_airport_iata tstr Yes 3-letter IATA airport code for the arrival airport. flightClass.destination.airportIataCode "PVR"
assurance_level tstr Yes Provenance and verification level of the boarding pass. See Assurance levels. Determined by Google Wallet based on the pass ingestion source "ISSUER_VERIFIED"

Assurance levels

Because Google Wallet supports boarding passes from multiple channels (such as the Google Wallet API, Gmail imports, and screenshots or photos), the assurance_level element indicates the provenance of the boarding pass to relying parties:

Value Description
ISSUER_VERIFIED The boarding pass was issued directly by a verified airline or issuer through the Google Wallet API.
SELF_ATTESTED The boarding pass was not provided directly by the airline issuer (for example, created from a user-provided screenshot or imported from Gmail).
SELF_ATTESTED_VERIFIED The boarding pass was imported from a user-provided artifact (such as a screenshot), and Google cryptographically verified the issuer's digital signature embedded in the barcode.