API reference · Passes
Update a pass
PUT/v1/passes/{serial}1 operation, only when something changesSafe to retry with Idempotency-KeyReplaces its fields. Installed passes refresh on holders' phones, and a field with a changeMessage shows a notification when its value changes.
Path
serialstringrequiredThe pass's serialNumber.
Body
All of the pass's fields, as they should now be: a field you leave out is removed. Or, for a pass with placeholders, only data and holder: they're merged over its values ("" clears one) and its design is filled again.
issuerstringOptional: the pass's own set. A pass keeps its set for life, so naming another is refused.
dataobjectValues for the placeholders in its text, such as { "points": 120 }.
holderobjectThe holder's name and email. Kept with the pass, so you can find one person's passes.
unlinkTemplatebooleanFor a pass made from a template: true to replace its design, which stops the template updating it.
Answer
200Updated
notifiedDevices is how many Apple devices are being sent it. platforms: Apple queued, no_devices or no_push_key (its issuer has no push key); Google queued or not_saved.
200Nothing changed
The same fields again: no new version, nothing sent, and no operation used. Safe to send on every change in your system.
Errors
Every error has the same shape: see Errors.
| Status | Code | When |
|---|---|---|
| 400 | validation_error | A field is missing, too long or unknown. |
| 400 | placeholder_missing | A required placeholder has no value. |
| 404 | not_found | No pass with that serial number in this workspace. |
| 409 | pass_revoked | It's revoked, so it can't change. |
| 409 | template_linked | It was made from a template: send data and holder, or "unlinkTemplate": true to replace its design. |
| 409 | external_id_conflict | Another pass has that externalId. |
| 409 | idempotency_conflict | The Idempotency-Key was already used for a different request. |
| 422 | issuer_immutable | issuer names another set: a pass keeps its set for life. |
| 429 | usage_limit_exceeded | This month's operations on your plan are used up. |
| 429 | workspace_limit_reached | This workspace's monthly limit, set by its organization, is used up. |
| 429 | platform_usage_limit | A test pass, and the 1,000 test operations a month are used up. |