What happens when a pass is nullified
When you call the Nullify Pass endpoint, the following changes are applied:- Status is set to
nullified - Dynamic fields (text fields, barcode, NFC, localisation, latest message) are cleared
- Images (logo, banner, thumbnail) are purged from the pass
- Pass design is replaced with a generic “Deactivated” appearance in grey
- Wallet state — the pass moves to the expired section of the wallet and cannot be restored
- Pass UUID and serial number
- External ID (
extId) - Creation and nullification timestamps
- The pass record itself (for billing quota and audit)
Nullified data is removed from active systems immediately. Encrypted database backups are retained for up to 35 days, and logs referencing the pass data for up to 365 days, after which all remaining copies are permanently deleted.
Wallet appearance
- Apple
- Google
The pass appears in the expired passes section with grey colours, empty fields, and a “Deactivated” label. The pass is marked as voided.
API behaviour after nullification
Once a pass is nullified, it is excluded from most API endpoints. Requests to the following endpoints using a nullified pass’s UUID orextId will return 404 Not Found:
Attempts to download the pass via its downloadUrl will also fail with a pass not found error.
Nullified passes are also excluded from List Passes results by default. To include them, pass includeNullified=true as a query parameter, or filter by status=nullified.
The Nullify Pass endpoint remains accessible for already-nullified passes (see Idempotency).
External ID reuse
After nullification, the pass’sextId is freed for reuse. You can create a new pass with the same extId within the same organisation. This is useful when:
- A user wants to switch pass type (e.g. loyalty to event ticket) but their
extIdis tied to a single pass - A user loses their device and needs a fresh pass reissued under the same identifier
- A pass needs to be deprovisioned and later re-provisioned for the same user
extId can coexist — uniqueness is only enforced across non-nullified passes.
Billing
Nullified passes still count towards your billing quota. Nullification removes data, not the record. If you need to view nullified passes, use thestatus filter on the List Passes endpoint with status=nullified.
Idempotency
The nullify endpoint is idempotent. Calling it on an already-nullified pass returns200 with no further changes.