Skip to main content

Transit

The Transit pass turns your transport tickets into a live, always-available pass in Apple Wallet and Google Wallet. Route information, departure times, and passenger details are securely stored and can be updated in real time — without requiring your customers to open an app.

To create a new Transit pass template, go to the "Pass templates" module (Hub > Wallet > Pass templates).

Pass templates module

Click on the Create a pass template button.

Create a pass template

info

Once your template is created, you will need to define template personalizations from the Manage pass templates module.

info

One template must be created per route or transport service. If you operate multiple routes, create one template per route.

Step 1 - Setup

Step 1

This first step enables you 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 using a clear naming convention.
  • Type: the type of your pass template. This determines the visual layout and available fields for this template.
tip

Your template name is what appears in your pass list and reporting. If you plan to issue passes for multiple routes, include the route name and transport type in the template 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 route-level data that is the same for every passenger: issuer name, transit logo.
  • 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 journey-level data: origin, destination, fare name.

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 personalised based on profile attributes will need to be configured in the template personalizations.

warning

You may notice that some fields appear in both Common fields and Pass fields — for example, logo. This is intentional: Apple Wallet allows certain properties to be personalised at the individual pass level, meaning each issued pass can have its own value. Google Wallet, however, does not support this level of personalisation for those same properties and requires a single value shared across all passes. If you are issuing passes for both platforms, defining the field in both sections ensures maximum flexibility.

Common fields

Common fields define the route-level data shared across all passes generated from this template.

info

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.

KeyTypeDescription
issuerNameStringThe name of the organisation issuing the pass (e.g. My Company). Displayed on the pass and used by screen readers.
transitLogoImageThe transit operator logo displayed on the pass. Recommended size: 512×512 px. Use a PNG with a transparent background.

Pass fields

Pass fields control the visual appearance of the pass and the personalised data displayed for each individual journey.

info

Unlike common fields, these fields are reserved for any properties that contain unique details of a specific pass issued to a specific user. These fields may be changed whenever you create or update a specific pass.

KeyTypeDescription
backgroundColorColorThe background colour of the pass in hexadecimal format (e.g. #FFFFFF).
foregroundColorColorThe colour of the primary text on the pass (e.g. #000000). Ensure sufficient contrast with the background colour for legibility.
labelColorColorThe colour of the field labels (e.g. #000000). Labels are the small captions above each value.
iconImageThe app icon displayed in system notifications and the pass list. Size: 29×29 pt (@2x: 58×58 px). PNG with transparent background.
logoImageYour logo displayed in the top-left corner of the pass. Size: 160×50 pt (@2x: 320×100 px). Transparent background is mandatory.
footerImageA thin strip displayed at the bottom of the pass, above the barcode. Size: 286×15 pt (@2x: 572×30 px). Often used for partner logos or regulatory information.
heroImageImageA large decorative image displayed on the pass. Size: 1032×336 px. Use for route or transport imagery.
fromStringThe code or short name of the departure location (e.g. AMS). Displayed as the origin on the pass.
toStringThe code or short name of the destination (e.g. RDM). Displayed as the destination on the pass.
fromNameStringThe full name of the departure location (e.g. Amsterdam). Displayed below the origin code for readability.
toNameStringThe full name of the destination (e.g. Rotterdam). Displayed below the destination code for readability.
fareNameStringThe fare or service type associated with the journey (e.g. Anytime).
tip

from, to, fromName, toName, and fareName are the fields you will typically inject dynamically at pass issuance, as they vary per journey.

Add and delete fields

You have the possibility to delete fields by ticking the box on the left side of the field and then clicking on Delete fields.

Delete fields

You also have the possibility to add fields if some are missing. Click on Add field.

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

Add field form

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

The Apple Wallet tab is divided into four sub-tabs: General, Design, Data, and Semantics.

The Transit template looks like this:

Transit template

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.

FieldDescription
Organisation nameThe name displayed under your logo on the pass front. Typically your transport operator name.
DescriptionA short text description used by accessibility tools and device search. Example: Amsterdam to Rotterdam – Rail.
Transit typeThe type of transport vehicle. Options include: Air, Boat, Bus, Generic, Train. This drives the native icon displayed between origin and destination on the pass.
Grouping IdentifierGroups related passes together in Apple Wallet. Useful for multi-leg journeys where you issue one pass per leg.
App Store IdentifiersLinks 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 URLAn URL that opens your app directly when tapped from the pass. Requires an App Store Identifier.
User infoA metadata field for passing custom, non-displayed data alongside the pass. Useful for internal tracking or CRM linking.
Prevent pass sharingWhen enabled, prevents the passenger from forwarding the pass. Recommended for named-passenger tickets.

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.

For the Transit pass, the available visual elements are: Logo text, Icon (29×29 pt, @2x: 58×58 px), Logo (160×50 pt, @2x: 320×100 px), Footer (286×15 pt, @2x: 572×30 px), Background color, Foreground color, and Label color.

On the right side of your screen, you have a preview 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 necessarily from the same field you have defined in step 2.

    Label and value

    • 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
info

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 "FROM" as the label, and the departure location name as the value
  • Example 2: you could decide to put the departure code as the label, and the destination code as the value.
Transit template
  • You can delete a field from that zone of the pass, by ticking the box on the left side of the field and clicking on Delete field.
  • You can edit a field by clicking on it.
tip

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 Transit passes, semantics are organised into seven categories:

  • Trip Information — core journey data: confirmation code, confirmation number, original and current boarding dates, original and current departure and arrival dates, duration, transit status, transit status reason, security screening, and silence preferences.
  • Origin — departure details: departure platform, departure station name, departure location (latitude/longitude), and departure location description.
  • Destination — arrival details: destination platform, destination station name, destination location, and destination location description.
  • Carrier Information — operator details: transit provider, vehicle name, vehicle number, and vehicle type.
  • Boarding Information — boarding details: boarding group, boarding sequence number, and priority status.
  • Seating Information — seat details: seats configuration.
  • Passenger Information — passenger details: name prefix, name suffix, given name, middle name, family name, nickname, and phonetic representation.
  • Pricing — the ticket price: currency code and amount.
  • Other — additional contextual data, including Wi-Fi Access (networks the pass can grant access to).

Filling in semantics is optional but strongly recommended for transit passes — a pass with semantics configured will surface automatically on the passenger's lock screen as departure time approaches.

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

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.

tip

For Transit passes, relevance is one of the most impactful features available — a ticket that appears automatically on the passenger's lock screen as they approach the station or departure point 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 Transit passes, the most relevant use cases are:

  • The departure station or stop
  • The destination station or stop

Beacons (Apple Wallet only)

BTLE beacons allow ultra-precise, indoor triggering that GPS cannot achieve. If your stations or stops have deployed Bluetooth beacons at entrances or platforms, 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.

warning

Beacon-based relevance requires physical beacon hardware to be deployed on-site. Coordinate with the station or venue operator before configuring this option.

Step 5 - Barcode

The barcode is the scannable element that connects your digital transit ticket to your physical entry or validation infrastructure.

FormatDescriptionRecommendation
NoneNo barcode displayed on the pass.Only if your validation is NFC-based exclusively.
QR Code2D matrix barcode. High data capacity, fast scanning, widely supported.Recommended for most transit implementations.
PDF4172D stacked barcode.Use if your validation system requires PDF417 specifically.
1D (Code 128)Linear barcode. Low data capacity.Suitable for simple transit implementations with short codes.
Aztec2D matrix barcode. Compact and efficient, native to Apple Wallet.Suitable if your scanning infrastructure supports it.
tip

QR Code is the most universally supported format for transit passes. If your existing validation infrastructure uses a specific barcode format, match it here to ensure compatibility with your validators and gate systems.

Was this page helpful?