Skip to content
Lifecycle & messaging

Pass expiration

The way a wallet pass is retired once it can no longer be used, by an expiration date or by marking the pass void or inactive.

Pass expiration is how a wallet pass is retired when it is no longer valid: a ticket after the event, a coupon after its last day, a membership that has lapsed. The pass has to declare its own end: Apple and Google each give the issuer fields for it.

On Apple Wallet there are two controls in the pass.json file. The expirationDate key holds the date and time the pass expires, and Apple requires a complete date that includes hours and minutes. The voided key is a Boolean that marks the pass as void, such as a redeemed, one-time-use coupon, and it defaults to false. One is a schedule and the other is an event: an expiration date is set in advance, while voiding happens when something changes, such as a redemption.

On Google Wallet the equivalent is part of the pass object. Its validTimeInterval sets the period in which the object is active and can be used, and its state changes to expired when that period has passed. The state field also decides how the object is displayed: Google's reference notes that an inactive object is moved to the "Expired passes" section of the app. The issuer can therefore retire a Google Wallet pass at any time by setting its state, not only by waiting for a date.

Because a retired pass is still an updatable pass, ending it is an ordinary push update. Voiding a redeemed coupon, expiring a ticket and closing a membership are the same operation: change the pass, and the wallet moves it out of the way. A change message can announce it on the lock screen, though most expirations are better left silent.

In practice, expiry belongs with the pass type. Coupons and event tickets need it by design, gift cards and memberships need it only where the program has an end date, and an open-ended loyalty pass may never need it. Setting it deliberately keeps stale passes out of the lock screen and out of a customer's wallet, which is part of managing the pass lifecycle.

Pass lifecycle management
Next step

See what this looks like on a pass.

The definition is the short version. The next pages show it on the terminals merchants already run, and the merchants running it.