pass.json is the heart of a PKPass bundle: a single JSON file that tells Apple Wallet everything about the pass. It declares the pass style, such as store card, event ticket, coupon, boarding pass or generic, and each style has its own layout with a header row, a primary field, secondary and auxiliary fields, and a back of the pass for longer text.
Each field is a key with a label and a value, and can carry formatting rules and a change message that controls what the wallet announces when the value changes. pass.json also sets the colors, the barcode or QR code and its encoded message, NFC configuration for tap-to-identify, and relevance hints such as locations and times that let the pass surface itself on the lock screen at the right moment.
Two identifiers in pass.json matter commercially: the pass type identifier, which ties the pass to an Apple Developer account, and the serial number, which uniquely identifies this pass within that type. Together they are how the wallet, the issuing platform and Apple's push infrastructure refer to one specific pass in one specific wallet.
For most programs, nobody writes pass.json by hand. A wallet platform generates it from a pass design and keeps it consistent across every member's pass, but understanding what it contains explains what a pass can and cannot display, and why field limits and layout constraints exist.

