Group multiple Boarding passes

Use a grouping ID

By default, adding multiple passes to a single Add to Google Wallet link will not group those passes in the user's Google Wallet app. However, passes can be grouped together by making sure they all have the same grouping ID. Grouped passes will appear together in the Google Wallet app. When a group of passes is selected, each pass will be shown on a carousel.

Passes can be grouped together:

  • During initial provisioning
  • By using the update or patch methods

To add a pass to a group, the groupingInfo.groupingId property of the pass object must be set. All pass objects with the same groupingId value will be automatically grouped together, even if they were added separately.

The following example shows a loyalty card and offer being grouped together to entice the user to make use of both in their next purchase.

loyaltyObject = {
  "classId": "ISSUER_ID.GIFT_CARD_CLASS_SUFFIX",
  "id": "ISSUER_ID.GIFT_CARD_OBJECT_SUFFIX",
  "state": "ACTIVE",
  "groupingInfo": {
    # Note the same groupingId value
    "groupingId": "combinedGiftCardAndOfferId",
    "sortIndex": 1
  },
  "barcode": {
    "type": "QR_CODE",
    "value": "QR code"
  },
  "accountId": "Account id",
  "accountName": "Account name",
  "loyaltyPoints": {
  "label": "Points",
    "balance": {
      "int": 800
    }
  }
}

offerObject = {
  "classId": "ISSUER_ID.OFFER_CLASS_SUFFIX",
  "id": "ISSUER_ID.OFFER_OBJECT_SUFFIX",
  "state": "ACTIVE",
  "groupingInfo": {
    # Note the same groupingId value
    "groupingId": "combinedGiftCardAndOfferId",
    "sortIndex": 2
  },
  "barcode": {
      "type": "QR_CODE",
      "value": "QR code",
  },
}

Boarding pass automatic grouping

Sometimes boarding passes are used in a group rather than individually. A common scenario for this is grouping of tickets for flights with layovers or multiple stops.

Boarding passes have additional logic that will automatically group passes together if they have the same values for the following properties:

  • FlightClass.flightHeader.carrier.carrierIataCode
  • FlightClass.flightHeader.flightNumber
  • FlightClass.localScheduledDepartureDateTime
  • FlightObject.reservationInfo.confirmationCode
  • The Issuer ID portion of FlightObject.id

If any of the above properties are different for two Boarding passes, they are not grouped (unless you do so using groupingInfo). As you can see, both class and object properties affect automatic grouping. This enables Boarding passes of different classes to be grouped together (such as when different flights in the same trip have different operating carriers).