A pass bundle is several related passes shown as one stack in the wallet rather than as separate entries. Four tickets to the same concert, or a family's boarding passes on the same flight, collapse into a single item the member taps once and then flicks through. The wallet does the stacking; the issuer only supplies the signal that says which passes belong together.
On the Apple side that signal is a grouping identifier in pass.json. Passes that share the same value, and the same pass type identifier and style, are grouped. Apple designed the key for event tickets and boarding passes, the two cases where one person routinely holds several near-identical passes at once. Google Wallet expresses the same idea through grouping information on the pass object, with a sort order controlling how the stack reads.
Two things are worth keeping straight. A pass bundle is not the same as a .pkpass bundle: the file itself is a zip archive, sometimes called a bundle, and that is a different sense of the word. And grouping is presentation only. Each pass in a stack keeps its own serial number, its own barcode or NFC credential, and its own update path, so a reader at the door still sees one ticket at a time.
For a loyalty program, grouping is usually the wrong tool. A member should hold one program pass that carries their balance, tier and current offers, not a stack of passes to sort through at the till. Where bundles earn their place is in ticketing and travel, and in offers issued per visit or per event. When several passes genuinely coexist, pass relevance does more work than grouping: the right pass surfacing at the right time and place is what a member actually needs.

