---
title: "Pass expiration"
url: https://getstell.com/glossary/pass-expiration
description: "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

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](/glossary/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](/glossary/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](/glossary/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](/glossary/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](/passes/coupons) and [event tickets](/passes/tickets) need it by design, [gift cards](/passes/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](/articles/pass-lifecycle-management-explained).
