Change field values
Send only the fields that change toPATCH /v1/passes/{id}. Fields you leave out keep their values.
- Use the field keys from the template, the same ones you send when issuing.
- Send
nullor an empty string to clear an optional field. A required field can only be cleared if the template gives it a default value. - Only per-pass fields can be updated. Shared fields change when you edit the template.
Notify the holder
By default an update is silent: the pass changes without an alert. SetnotificationMode to notify to show a notification on the holder’s lock screen:
Google Wallet allows 3 notifications per pass in 24 hours. Beyond that, the pass still updates but no alert is shown.
Delivery status
The response contains the updatedpass and an update object. update.delivery reports how the change reached each wallet:
A silent update changes the pass without an alert banner. Confirm the visible value on the installed pass separately from API delivery status. For Apple Wallet, check Automatic Updates if the display remains stale.
An update usually starts as
pending. To see where it ended up, fetch it again with Get a pass update, using update.id:
Your own IDs and metadata
Store your own reference on a pass withexternalId, and any extra details with metadata. Set them when you issue the pass or change them later with the same PATCH request. Neither appears on the pass, so changing them sends nothing to the holder:
metadata is merged: plan is set, trial is removed, and other keys stay as they are. To find a customer’s passes, call GET /v1/passes?externalId=cus_8812.
Send a message
To tell holders something without changing a value, send a notification. It can go out now or at a time up to a day ahead:- Send to a pass for one holder. On Apple Wallet it appears in the pass’s Message for you field.
- Send to a template for every holder. On Apple Wallet it appears in the pass’s Announcements field.
Roll out a new design
When you update a template with a newdefinition, passes already issued keep their old design. To move them to the new one, deploy the template:
Void a pass
To end a pass, such as a cancelled membership or a refunded ticket, void it. Voiding is permanent: the pass is marked as voided in the holder’s wallet and its field values can’t be changed again. You can still change itsexternalId and metadata.
Delete a pass
To remove a pass and its history, such as when a customer deletes their account, delete it. Deleting voids the pass if it’s active, and the API and dashboard stop returning it at once. To remove a template and all of its passes, delete the template.Use the Node.js SDK
Usetapace.passes.update() for fields or an exact loyalty balance, passes.addStamps() and passes.addPoints() for balance adjustments, and passes.retrieveUpdate() for delivery progress. Use notification methods for messages and deployment methods to roll out a saved design.
See SDK resource methods for examples. Give each intended mutation its own saved operation ID and stable key. Do not repeat a credit just because a phone has not refreshed.