curl -X PATCH https://api.tapace.lk/v1/passes/pass_7hGk2LmQ9xVt4RnB8cYe \
-H "Authorization: Bearer $TAPACE_API_KEY" \
-H "Idempotency-Key: 0b9e4c1a-7d2f-4e8b-a6c3-5f1d9e2b7a40" \
-H "Content-Type: application/json" \
-d '{
"fieldValues": { "points": 150 },
"notificationMode": "notify"
}'
{
"pass": {
"object": "pass",
"id": "pass_7hGk2LmQ9xVt4RnB8cYe",
"status": "active",
"fieldValues": { "memberName": "Nimal Perera", "points": 150 },
"updatedAt": "2026-10-13T10:30:00.000Z"
},
"update": {
"object": "pass_update",
"id": "pupd_Lm4Xq8Vt2Nr7Kz3Pw9Bc",
"passId": "pass_7hGk2LmQ9xVt4RnB8cYe",
"notificationMode": "notify",
"walletChanged": true,
"changes": {
"fields": [
{ "key": "points", "label": "Points", "from": "120", "to": "150" }
]
},
"delivery": {
"apple": { "status": "pending", "devices": 1, "error": null },
"google": { "status": "pending", "message": "pending", "error": null }
},
"createdAt": "2026-10-13T10:30:00.000Z"
}
}
Passes
Update a pass
Changes a pass’s field values and pushes them to every wallet that has it.
PATCH
/
v1
/
passes
/
{id}
curl -X PATCH https://api.tapace.lk/v1/passes/pass_7hGk2LmQ9xVt4RnB8cYe \
-H "Authorization: Bearer $TAPACE_API_KEY" \
-H "Idempotency-Key: 0b9e4c1a-7d2f-4e8b-a6c3-5f1d9e2b7a40" \
-H "Content-Type: application/json" \
-d '{
"fieldValues": { "points": 150 },
"notificationMode": "notify"
}'
{
"pass": {
"object": "pass",
"id": "pass_7hGk2LmQ9xVt4RnB8cYe",
"status": "active",
"fieldValues": { "memberName": "Nimal Perera", "points": 150 },
"updatedAt": "2026-10-13T10:30:00.000Z"
},
"update": {
"object": "pass_update",
"id": "pupd_Lm4Xq8Vt2Nr7Kz3Pw9Bc",
"passId": "pass_7hGk2LmQ9xVt4RnB8cYe",
"notificationMode": "notify",
"walletChanged": true,
"changes": {
"fields": [
{ "key": "points", "label": "Points", "from": "120", "to": "150" }
]
},
"delivery": {
"apple": { "status": "pending", "devices": 1, "error": null },
"google": { "status": "pending", "message": "pending", "error": null }
},
"createdAt": "2026-10-13T10:30:00.000Z"
}
}
Send only the fields that change. See Update passes for how notifications and delivery work.
string
required
The pass ID.
string
required
A unique value for this update.
object
New values keyed by field key. Each value is a string, a number, or
null to clear an optional field. Fields you leave out keep their values.string
default:"silent"
silent updates the pass quietly. notify also shows a notification on the holder’s lock screen.Response
object
A record of this change.
Errors
| Status | When |
|---|---|
400 | A key isn’t a per-pass field, a required field would be cleared, nothing changed, or the pass is voided. |
404 | The pass doesn’t exist. |
409 | The pass changed while this update was being saved. Retry the request. |
curl -X PATCH https://api.tapace.lk/v1/passes/pass_7hGk2LmQ9xVt4RnB8cYe \
-H "Authorization: Bearer $TAPACE_API_KEY" \
-H "Idempotency-Key: 0b9e4c1a-7d2f-4e8b-a6c3-5f1d9e2b7a40" \
-H "Content-Type: application/json" \
-d '{
"fieldValues": { "points": 150 },
"notificationMode": "notify"
}'
{
"pass": {
"object": "pass",
"id": "pass_7hGk2LmQ9xVt4RnB8cYe",
"status": "active",
"fieldValues": { "memberName": "Nimal Perera", "points": 150 },
"updatedAt": "2026-10-13T10:30:00.000Z"
},
"update": {
"object": "pass_update",
"id": "pupd_Lm4Xq8Vt2Nr7Kz3Pw9Bc",
"passId": "pass_7hGk2LmQ9xVt4RnB8cYe",
"notificationMode": "notify",
"walletChanged": true,
"changes": {
"fields": [
{ "key": "points", "label": "Points", "from": "120", "to": "150" }
]
},
"delivery": {
"apple": { "status": "pending", "devices": 1, "error": null },
"google": { "status": "pending", "message": "pending", "error": null }
},
"createdAt": "2026-10-13T10:30:00.000Z"
}
}