Flight
The Flight pass is purpose-built for airlines, travel operators, and booking platforms. It replicates the native boarding pass experience passengers already expect, while giving you the ability to push real-time updates — gate changes, delays, seat reassignments — directly to their lock screen, without an app.
To create a new Flight pass template, go to the "Pass templates" module (Hub > Wallet > Pass templates).
Click on the Create a pass template button.

Once your template is created, you will need to define template personalizations from the Manage pass templates module.
One template must be created per flight. If you operate multiple routes, create one template per route.
Step 1 - Setup

This first step enables to define the basic information of your template:
- Name: the internal name of your template. This is only visible to you and your team in your licence. We recommend to use a clear naming convention.
- Type: the type of your pass template. This determines the visual layout and available fields for this template.
Your template name is what appears in your pass list and reporting. If you plan to issue passes for multiple routes or airlines, include that context in the name from the start.
Step 2 - Fields
Fields are the data that populate your passes. Every field you want to display or use, whether fixed or personalised, must be defined here first.
There are two types of fields:
- Common fields: the value is fixed and identical for all passes generated from this template. It cannot be changed at pass creation. Use these for flight-level data that is the same for every passenger: flight number, route, gate, terminal, departure time.
- Pass fields: the value can be overridden at pass creation. The value defined here is the default, used if no other value is provided. Use these for passenger-level data: name, seat, confirmation code, ticket number.
You will have to add all fields you will be using in your pass template. These fields may then be included in your passes and ultimately define what data is displayed to users. In step 3, you will define where these fields will be displayed on the pass.
The fields that need to be personalized based on profile attributes will need to be configured in the template personalizations.
Common fields
Common fields define the flight-specific data that drives the pass.
Common fields are shared across all passes generated from this template. Their values can only be edited by updating the template directly. Note that changes to common fields will only apply to newly created passes. Existing passes can only be updated through an update campaign.
| Key | Type | Description |
|---|---|---|
issuerName | String | The name of the organisation issuing the pass — typically your airline or brand name. Displayed on the back of the pass. |
localScheduledDepartureDateTime | String | The scheduled departure date and time in ISO 8601 format (2025-06-21T14:30:00+02:00). Drives time-based relevance and is displayed on the pass front. |
localBoardingDateTime | String | The boarding time in ISO 8601 format. |
from | String | The IATA code of the departure airport (e.g. AMS). Displayed as the origin city code on the pass. |
to | String | The IATA code of the destination airport (e.g. OPO). Displayed as the destination city code on the pass. |
fromName | String | The full name of the departure airport or city (e.g. Amsterdam). Displayed below the IATA code for readability. |
toName | String | The full name of the destination airport or city (e.g. Porto). Displayed below the IATA code for readability. |
gate | String | The departure gate (e.g. C23). Updating this field automatically triggers a push notification to the passenger. |
terminal | String | The departure terminal (e.g. 5). Like the gate, updating this field triggers a push notification. |
flightNumber | String | The flight number (e.g. 6001). Displayed prominently on the pass header. |
carrierIataCode | String | The IATA carrier code of the airline (e.g. HV). Used in combination with flightNumber to display the full flight identifier. |
flight | String | The full flight identifier combining carrier code and flight number (e.g. HV6001). Displayed in the header field of the pass. |
airlineLogo | Image | The airline logo displayed on the pass. Recommended size: 160×50 pt (@2x: 320×100 px). Use a PNG with a transparent background. |
airlineName | String | The full name of the airline (e.g. My Airline). Displayed on the back of the pass and used by screen readers. |
When you update gate or terminal on an issued pass, Apple Wallet and Google Wallet automatically push a notification to the passenger. This is one of the most powerful features of the Flight pass type: real-time operational updates delivered natively.
Pass fields
Pass fields control the visual appearance of the pass and the personalised data displayed for each individual passenger.
Unlike common fields, these fields are reserved for any properties that contain unique details of a specific pass that is issued to a specific user. These fields may be changed whenever you create or update a specific pass.
| Key | Type | Description |
|---|---|---|
backgroundColor | Color | The background colour of the pass in hexadecimal format (e.g. #FFFFFF). |
foregroundColor | Color | The colour of the primary text on the pass (e.g. #000000). Ensure sufficient contrast with the background colour for legibility. |
labelColor | Color | The colour of the field labels (e.g. #000000). Labels are the small captions above each value (e.g. "FROM", "GATE", "SEAT"). |
icon | Image | The app icon displayed in system notifications and the pass list. Size: 29×29 pt (@2x: 58×58 px). PNG with transparent background. |
logo | Image | Your logo displayed in the top-left corner of the pass. Size: 160×50 pt (@2x: 320×100 px). Transparent background is mandatory. |
footer | Image | A thin strip displayed at the bottom of the pass, above the barcode. Size: 286×15 pt (@2x: 572×30 px). |
heroImage | Image | A large decorative image displayed on the pass. Size: 1032×336 px. Use for destination imagery or brand visuals. |
passengerName | String | The full name of the passenger (e.g. John Smith). Personalised per issued pass. |
confirmationCode | String | The booking reference or PNR (e.g. ABC123). Displayed on the pass front. |
ticketNumber | String | The individual ticket number. Useful for multi-leg journeys or multi-passenger bookings. |
seat | String | The passenger's assigned seat (e.g. 14A). Displayed on the pass front alongside gate and terminal. |
passengerName, confirmationCode, ticketNumber, and seat are the fields you will typically inject dynamically at pass issuance. The design fields (backgroundColor, logo, icon) are set once at the template level and apply to all passes generated from this template.
Add and delete fields
You have the possibility to delete fields by thicking the box on the left side of the field and then clicking on Delete fields.
You also have the possibility to add fields if some are missing. Click on Add field.
For the added field, you will need to choose:
- the type: string, blob, date, number, money, color, image, JSON or boolean
- the key: the technical name of the field
- the value: the default value of the field

Step 3 - Design
Once all the fields you want to use in your template are added in the second step, you will have the possibility to define how your pass will be rendered on each platform. This step is split into two tabs, one for Apple Wallet and another for Google Wallet.
- Apple Wallet
- Google Wallet
Apple Wallet
The Apple Wallet tab is divided into four sub-tabs: General, Design, Data, and Semantics.
The Flight template looks like this:
General
In this tab, you can customize the basic information of your pass. For each field:
- You can choose common fields or pass fields you will have defined in the previous step. Only fields having the expected format will be available.
- You can add new field, if you forgot to add a field in the previous step, you can add it here and it will automatically be added to the list of fields from step 2
- You can decide to use another value, a static value, that you are not planning on reusing in other fields
In the following table, you'll find the fields and their description.
| Field | Description |
|---|---|
| Organisation name | The name displayed under your logo on the pass front. Typically your airline or brand name. |
| Description | A short text description used by accessibility tools and device search. Example: Boarding pass – AMS to OPO. |
| Grouping Identifier | Groups related passes together in Apple Wallet. Useful for multi-leg journeys where you issue one pass per leg. |
| App Store Identifiers | Links your pass to an app in the App Store. A banner prompting the user to install your app appears on the back of the pass. |
| App's launch URL | An URL that opens your app directly when tapped from the pass. Requires an App Store Identifier. |
| User info | A metadata field for passing custom, non-displayed data alongside the pass. Useful for internal tracking or CRM linking. |
| Prevent pass sharing | When enabled, prevents the passenger from forwarding the pass. Recommended for named-passenger passes. |
Design
The Design sub-tab maps directly to the Pass Fields defined in the second step. Select the corresponding field for each visual element using the dropdown.
On the right side of your screen, you have a previsualization of what your pass template looks like.
Data
The Data sub-tab lets you assign your fields to the visual zones of the pass (Header, Primary, Secondary, Auxiliary and Back). Use the Label, Key, and Value columns to control what is displayed in each zone and in what order.
For each zone of the pass:
-
You can add a field, where you will have to define different fields. Note that here, you define the design of the pass. Therefore, you will define the labels you want to show, and the value that should be displayed. These two are not necessarely from the same field you have defined in step 2.
- Key: the unique key for the combination of label and value
- Label: the label of the field, which is the part above
- Value: the value of the field, which is the part below
- Alignment: the alignment of the field
As you are defining the design of your pass template, you have the possibility to play with the different fields:
- Example 1: you could decide to put "PASSENGER" as the label, and the name of the passenger as the value
- Example 2: you could decide to put the first name as the label, and the last name of the passenger as the value.

- You can delete a field from that zone of the pass, by thicking the box on the left side of the field and click on Delete field
- You can edit a field by clicking on it
The order of fields within each zone controls their left-to-right display order on the pass. Use the live preview on the right to check the layout as you configure it.
Semantics
Semantics are machine-readable metadata that Apple uses to power system-wide features such as Siri Suggestions, Spotlight Search, and proactive lock screen display. They are not visible on the pass itself — they work silently in the background to make your pass smarter.
For Flight passes, semantics are organised into three categories:
- Flight Information — core operational data: flight code, flight number, confirmation code, boarding and departure dates (both original and current), arrival dates, duration, transit status, security screening, and silence preferences.
- Origin — departure airport details: airport code, airport name, terminal, gate, and departure location (coordinates).
- Destination — arrival airport details: airport code, airport name, terminal, gate, and arrival location (coordinates).
- Carrier Information — details about the operating carrier: airline IATA code, transport provider, vehicle name, vehicle number, and vehicle type.
- Boarding Information — boarding-specific data: boarding group, boarding sequence number, and priority status.
- Seat Information — seat-level details for the passenger. You can add one or more seats using the Add a seat button.
- Passenger Information — passenger name details: name prefix, name suffix, first name, middle name, last name, nickname, and phonetic representation.
- Pricing — fare-related data: currency code and amount.
- Other — additional data: Wi-Fi access networks, configurable via the Add a network button.
For each semantic:
- You can choose common fields or pass fields you will have defined in the previous step. Only fields having the expected format will be available.
- You can add new field, if you forgot to add a field in the previous step, you can add it here and it will automatically be added to the list of fields from step 2
- You can decide to use another value, a static value, that you are not planning on reusing in other fields
Filling in semantics is optional but strongly recommended. A pass with semantics configured will surface automatically on the passenger's lock screen as boarding time approaches — without requiring a manual push notification.
Google Wallet
The Google Wallet tab is divided into four sub-tabs: General, Design, Common Data, and Pass Data.
The Flight template looks like this:

General
In this tab, you can customize the basic information of your pass. For each field:
- You can choose common fields or pass fields you will have defined in the previous step. Only fields having the expected format will be available.
- You can add new field, if you forgot to add a field in the previous step, you can add it here and it will automatically be added to the list of fields from step 2
- You can decide to use another value, a static value, that you are not planning on reusing in other fields
In the following table, you'll find the fields and their description.
| Field | Description |
|---|---|
| Enable smart tap | Activates NFC-based contactless redemption for terminals that support Google Smart Tap. |
| Security Animation | An animated security pattern displayed on the pass to prevent counterfeiting. Options vary by implementation. |
| Unlock Requirement | Defines whether the device must be unlocked to display or redeem the pass. |
| Multiple devices and holders allowed | Controls whether the pass can be saved by multiple users. Set to Single User for named-passenger boarding passes. |
| Homepage URL | A URL displayed on the pass linking to your website or booking platform. Maps to a Common Field value. |
| Screenshot Eligibility | Controls whether the pass can be screenshotted on the device. |
| NFC Constraint | Defines additional restrictions on NFC redemption behaviour. |
Design
The Design sub-tab maps directly to the Pass Fields defined in Step 2. For Google Wallet, only two visual elements are configurable: the Hero image (516×168 pt, uploaded at @2x: 1032×336 px) and the Background color. Select the corresponding Pass Field for each using the dropdown.
Common Data
The Common Data sub-tab maps your Common Fields to Google Wallet's structured flight data model. Select the corresponding Common Field for each slot using the dropdown.
For each field:
- You can choose common fields you will have defined in the previous step. Only fields having the expected format will be available.
- You can add new field, if you forgot to add a field in the previous step, you can add it here and it will automatically be added to the list of fields from step 2.
- You can decide to use another value, a static value, that you are not planning on reusing in other fields.
Flight Data
| Field | Description |
|---|---|
| Issuer Name | The name of the organisation issuing the pass. Maps to issuerName. |
| Scheduled Departure Time | The scheduled departure date and time. Maps to localScheduledDepartureDateTime. |
| Estimated Departure Time | The estimated departure time, if different from scheduled. |
| Scheduled Arrival Time | The scheduled arrival time at the destination. |
| Estimated Arrival Time | The estimated arrival time, if different from scheduled. |
| Boarding Time | The boarding time. Maps to localBoardingDateTime. |
| Gate Closing Time | The time at which the gate closes. |
| Flight Status | The current status of the flight (e.g. on time, delayed, cancelled). |
Origin
| Field | Description |
|---|---|
| Airport IATA Code | The IATA code of the departure airport. Maps to from. |
| Terminal | The departure terminal. Maps to terminal. |
| Gate | The departure gate. Maps to gate. |
| Airport Name | The full name of the departure airport. Maps to fromName. |
Destination
| Field | Description |
|---|---|
| Airport IATA Code | The IATA code of the destination airport. Maps to to. |
| Terminal | The arrival terminal. |
| Gate | The arrival gate. |
| Airport Name | The full name of the destination airport. Maps to toName. |
Carrier Information
| Field | Description |
|---|---|
| Airline Logo | The airline logo displayed on the pass. Maps to airlineLogo. Size: 256×256 px. |
| Airline Alliance Logo | An optional alliance logo (e.g. Star Alliance, OneWorld). |
| Airline Name | The full name of the airline. Maps to airlineName. |
| Carrier IATA Code | The IATA carrier code of the airline. Maps to carrierIataCode. |
| Carrier ICAO Code | The ICAO carrier code of the airline. Optional. |
| Flight Number | The flight number. Maps to flightNumber. |
Operating Carrier Information
| Field | Description |
|---|---|
| Airline Logo | The logo of the operating carrier, if different from the marketing carrier. |
| Airline Alliance Logo | The alliance logo of the operating carrier. |
| Airline Name | The name of the operating carrier. |
| Carrier IATA Code | The IATA code of the operating carrier. |
| Carrier ICAO Code | The ICAO code of the operating carrier. |
| Operating Flight Number | The flight number as operated (may differ from the marketed flight number). |
Boarding and Seating Policy
| Field | Description |
|---|---|
| Boarding Policy | Defines the boarding policy used for this flight (e.g. zone-based, group-based). |
| Seat Class Policy | Defines how seat classes are displayed or handled on the pass. |
Pass Data
The Pass Data sub-tab maps your Pass Fields to passenger-specific data displayed on the Google Wallet pass. Select the corresponding Pass Field for each slot using the dropdown.
For each field:
- You can choose pass fields you will have defined in the previous step. Only fields having the expected format will be available.
- You can add new field, if you forgot to add a field in the previous step, you can add it here and it will automatically be added to the list of fields from step 2.
- You can decide to use another value, a static value, that you are not planning on reusing in other fields.
Passenger Information
| Field | Description |
|---|---|
| Passenger Name | The full name of the passenger. Maps to passengerName. |
| Security Program Logo | The logo of the passenger's security programme (e.g. TSA PreCheck). |
Boarding & Seating Information
| Field | Description |
|---|---|
| Boarding Group | The boarding group assigned to the passenger. |
| Boarding Position | The boarding position within the group. |
| Boarding Door | The door through which the passenger should board. |
| Boarding Privilege Image | An image representing a boarding privilege (e.g. priority boarding). |
| Seat Number | The passenger's assigned seat. Maps to seat. |
| Seat Class | The travel class of the seat (e.g. Economy, Business). |
| Sequence Number | The passenger's check-in sequence number. |
| Seat Assignment | Indicates whether a seat has been assigned to the passenger. |
Reservation Information
| Field | Description |
|---|---|
| Confirmation Code | The booking reference or PNR. Maps to confirmationCode. |
| E-Ticket Number | The electronic ticket number. Maps to eticketNumber. |
| Frequent Flyer Program Name | The name of the frequent flyer programme associated with this booking. |
| Frequent Flyer Number | The passenger's frequent flyer membership number. |
App Links
Use this section to provide information about a companion app, across three sub-tabs — Android, iOS, and Web — each with the following fields: App logo image, App URL, Title, and Description.
Other
- Messages — contextual messages displayed to the pass holder.
- Images — additional images displayed on the pass.
- Info Texts — informational text blocks (e.g. terms and conditions, travel information).
- Links — external links displayed on the pass (e.g. to your booking platform or app).
Always preview both the Apple Wallet and Google Wallet versions of your pass before publishing. The live preview on the right side of the screen updates in real time as you configure your design.
Step 4 - Relevance
Relevance defines when and where your pass surfaces automatically on the passenger's lock screen, without requiring a notification to be manually triggered.
Relevance is optional, but for Flight passes it is one of the most impactful features available. A boarding pass that appears on the lock screen as the passenger approaches the gate is a seamless, premium experience that removes friction at exactly the right moment.
Locations
Add GPS coordinates to trigger the pass on the lock screen when the passenger enters a defined radius around a location. For Flight passes, the most relevant use cases are:
- The departure airport (surfaces the pass upon arrival at the airport)
- A specific terminal or gate area (for airports where coordinates are precise enough)
Beacons (Apple Wallet only)
BTLE beacons allow ultra-precise, indoor triggering that GPS cannot achieve. If your airport has deployed Bluetooth beacons at gates or check-in desks, you can configure the pass to surface automatically when the passenger's device detects a specific beacon.
Configure each beacon with its UUID, and optionally its Major and Minor values for more granular targeting.
Beacon-based relevance requires physical beacon hardware to be deployed on-site. Coordinate with the airport or venue operator before configuring this option.
Step 5 - Barcode
The barcode is the scannable element that connects your digital pass to your physical check-in or boarding infrastructure.
| Format | Description | Recommendation |
|---|---|---|
| None | No barcode displayed on the pass. | Not recommended for Flight passes. |
| QR Code | 2D matrix barcode. High data capacity, fast scanning, widely supported. | Recommended for most implementations. Compatible with the majority of modern boarding gate scanners. |
| PDF417 | 2D stacked barcode. The traditional format for boarding passes (used in BCBP — Bar Coded Boarding Pass standard). | Use if your ground handling or check-in system requires BCBP compliance. |
| 1D (Code 128) | Linear barcode. Low data capacity. | Not recommended for boarding passes — insufficient capacity for standard BCBP data. |
| Aztec | 2D matrix barcode. Compact and efficient, native to Apple Wallet. | Suitable if your scanning infrastructure supports it. |
If your operation uses IATA BCBP-compliant scanners, use PDF417 — it is the industry standard for airline boarding passes and ensures compatibility with ground handling systems. If you are building a custom scanning workflow, QR Code is the most universally supported format.