Background
Integrating Google Wallet with your flight reservation systems can significantly enhance the customer experience by verifying that all boarding information is accessible. Google Wallet's integration with Gmail allows for the automatic creation of digital passes for users who receive eligible email messages.
Key to achieving this seamless integration is through two ways: (1) including relevant information in the email body or (2) through the use of structured markup in the emails you send to customers, particularly focusing on the ticketToken field
This documentation provides the necessary information that is needed to be included in your next email / CRM campaign to your users in order to auto-generate boarding passes on Wallet.
Import boarding pass information from boarding pass emails to improve your Google Wallet integration
Our Gmail Imported Pass feature serves as a lightweight mechanism to digitize users boarding passes on to Google Wallet. Information is automatically extracted from the email content, minimizing user friction and increasing adoption rates.
This solution is designed to work complementary to the existing Google Wallet API product. Gmail imported passes provide the most basic information for users:
Gmail Imported Pass | Google Wallet API Integration |
---|---|
|
|
Our goal is for us to increase and complement the adoption of your airline's digital pass and equip users who have not clicked the "Add to Google Wallet" button an automated boarding pass generated from the emails you send to them.
Option 1: Email Body
Including relevant information in the email body can make the email automatically detected and extracted.
Required Fields (in plain text)
To enable automatic detection, include the following fields clearly in the email body or attachments:
- Passenger Information:
- Passenger Name (for example, "JOHN DOE")
- Flight Information
- Booking Reference or Ticket Number
- Departure Airport (for example, IATA Code for example Los Angeles as "LAX")
- Departure Date and Time
- Arrival Airport (for example, IATA Code for example Los Angeles as "LAX")
- Arrival Date and Time
- Flight No.
- Seat No.
- Boarding Gate
- Boarding Pass QR Code: An inline image or image attachment for the boarding pass QR code itself. The preferred QR code type is QR_CODE or PDF417. And the preferred image mime type is PNG and JPG.
Optional Fields
You can also generate loyalty cards from Boarding Pass information to enhance the user experience. To enable automatic detection, include the following fields clearly in the email body:
- Merchant name (for example, "ABC Airline")
- Frequent Flyer ID (for example, "1234567890")
- Frequent Flyer or Airline Loyalty Program name (for example, "Mileage Plus Rewards")
You can see more details in the Loyalty instruction page (link to loyalty webpage).
Here is an example email (e.g. Boarding Pass Email)
|
---|
Here is the related boarding pass in Google Wallet
Onboard to Google Wallet
1. Craft Your Email Campaign: Design and send your email campaigns to your user base, verifying that all necessary information for pass generation mentioned in the Required Fields Section is clearly present within the email body.
2. Forward an actual sample email to our dedicated parser-sample+wallet_partner_boardingpass@google.com
- For any updates to the email templates, forward to the same address parser-sample+wallet_partner_boardingpass@google.com so we can make sure Gmail detects the latest templates
- Make sure that the original sender is the actual sender of the email from your campaigns
3. Upon receipt of your sample email template, our team will review and configure the parsing logic. You can expect the feature to be successfully rolled out for your submitted email template within five (5) working days.
Note: We may reach out to you using the email you sent. Make sure that the email you use to forward the sample with us can receive incoming messages.
Option 2: Gmail Microdata
A key to achieving this seamless integration is through the use of structured
markup in the emails you send to customers, particularly focusing on the
ticketToken
field.
Why Embed Markup?
Embedding markup into your flight confirmation emails allows the reservation details to be automatically recognized and imported into the customer's Google Wallet (if the feature is enabled). This process, facilitated by structured data in the Schema.org format, enhances the functionality of Google Wallet by automatically adding relevant flight information.
Key Field: ticketToken
The ticketToken
field is crucial as it typically contains a secure code type
and raw value that can be rendered directly as a scannable code. This field
ensures that all the necessary boarding information is instantly available in
the customer's Google Wallet. In addition, the raw value must conform with
BCBP
(Bar Coded Boarding Pass). You can use a decoder
to decode the token value. The merchant needs to ensure the value in json is
consistent with the decoded value.
Here are some supported code types:
- barcode128
- pdf417
- qrCode
- aztecCode
And here are some examples of valid ticketTokens
:
barcode128:M1HANFENG/ZHU EMWLPJ SFOAUSGG 123 350J25A 614a 10A1973966772
pdf417:M1HANFENG/ZHU EMWLPJ SFOAUSGG 123 350J25A 614a 10A1973966772
qrCode:M1HANFENG/ZHU EMWLPJ SFOAUSGG 123 350J25A 614a 10A1973966772
aztecCode:M1HANFENG/ZHU EMWLPJ SFOAUSGG 123 350J25A 614a 10A1973966772
Here's how you can structure your email markup:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "FlightReservation",
"reservationNumber": "RXJ34P",
"reservationStatus": "http://schema.org/Confirmed",
"underName": {
"@type": "Person",
"name": "HANFENG/ZHU"
},
"reservationFor": {
"@type": "Flight",
"flightNumber": "123",
"airline": {
"@type": "Airline",
"name": "United",
"iataCode": "GG"
},
"departureAirport": {
"@type": "Airport",
"name": "San Francisco Airport",
"iataCode": "SFO"
},
"departureTime": "2027-03-04T20:15:00-08:00",
"arrivalAirport": {
"@type": "Airport",
"name": "Austin-Bergstorm International Airport",
"iataCode": "AUS"
},
"arrivalTime": "2027-03-05T06:30:00-05:00"
},
"airplaneSeat": "9A",
"airplaneSeatClass": {
"@type": "AirplaneSeatClass",
"name": "Business"
},
"ticketToken": "qrCode:M1HANFENG/ZHU EMWLPJ SFOAUSGG 123 350J25A 614a 10A1973966772"
}
</script>