Group multiple passes
Stay organized with collections
Save and categorize content based on your preferences.
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",
},
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[null,null,["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eAdding multiple passes to a single Google Wallet link will not group them by default, but you can group them using the same \u003ccode\u003egroupingId\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eGrouped passes appear together in the Google Wallet app and can be provisioned together or grouped later using the \u003ccode\u003eupdate\u003c/code\u003e or \u003ccode\u003epatch\u003c/code\u003e methods.\u003c/p\u003e\n"],["\u003cp\u003eTo group passes, set the \u003ccode\u003egroupingInfo.groupingId\u003c/code\u003e property to the same value for all passes you want to group.\u003c/p\u003e\n"],["\u003cp\u003ePasses with the same \u003ccode\u003egroupingId\u003c/code\u003e will be automatically grouped, even if added separately, and displayed in a carousel when selected.\u003c/p\u003e\n"]]],["Passes in Google Wallet can be grouped by assigning them a shared `groupingId`. This ensures they appear together as a carousel in the user's wallet. Grouping can occur during initial provisioning or via `update` or `patch` methods. The `groupingInfo.groupingId` property must be set within the pass object to establish the group. All passes with the same `groupingId` are automatically grouped. An example shows a loyalty card and an offer being linked with the same ID.\n"],null,["# Group multiple passes\n\nUse a grouping ID\n-----------------\n\n\nBy default, adding multiple passes to a single\n**Add to Google Wallet** link will not group those passes in the\nuser's Google Wallet app. However, passes can be grouped together by making\nsure they all have the same grouping ID. Grouped passes will appear together\nin the Google Wallet app. When a group of passes is selected, each pass will\nbe shown on a carousel.\n\nPasses can be grouped together:\n\n- During initial provisioning\n- By using the [`update`](/wallet/retail/loyalty-cards/rest/v1/loyaltyobject/update) or [`patch`](/wallet/retail/loyalty-cards/rest/v1/loyaltyobject/patch) methods\n\n\nTo add a pass to a group, the `groupingInfo.groupingId` property of\nthe pass object must be set. All pass objects with the same\n`groupingId` value will be automatically grouped together, even if\nthey were added separately.\n\n\nThe following example shows a loyalty card and offer being grouped together to\nentice the user to make use of both in their next purchase. \n\n```carbon\nloyaltyObject = {\n \"classId\": \"ISSUER_ID.GIFT_CARD_CLASS_SUFFIX\",\n \"id\": \"ISSUER_ID.GIFT_CARD_OBJECT_SUFFIX\",\n \"state\": \"ACTIVE\",\n \"groupingInfo\": {\n # Note the same groupingId value\n \"groupingId\": \"combinedGiftCardAndOfferId\",\n \"sortIndex\": 1\n },\n \"barcode\": {\n \"type\": \"QR_CODE\",\n \"value\": \"QR code\"\n },\n \"accountId\": \"Account id\",\n \"accountName\": \"Account name\",\n \"loyaltyPoints\": {\n \"label\": \"Points\",\n \"balance\": {\n \"int\": 800\n }\n }\n}\n\nofferObject = {\n \"classId\": \"ISSUER_ID.OFFER_CLASS_SUFFIX\",\n \"id\": \"ISSUER_ID.OFFER_OBJECT_SUFFIX\",\n \"state\": \"ACTIVE\",\n \"groupingInfo\": {\n # Note the same groupingId value\n \"groupingId\": \"combinedGiftCardAndOfferId\",\n \"sortIndex\": 2\n },\n \"barcode\": {\n \"type\": \"QR_CODE\",\n \"value\": \"QR code\",\n },\n}\n```"]]