> ## Documentation Index
> Fetch the complete documentation index at: https://tapace.lk/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a pass update

> Returns one change to a pass and how far it has reached each wallet.

[Updating a pass](https://tapace.lk/docs/api-reference/passes/update.md) returns an `update` whose `delivery` usually starts as `pending`. Fetch it again with its ID to see when each wallet has the change.

**id** `string` *required*

The pass ID.

**updateId** `string` *required*

The update ID, starting with `pupd_`.

## The pass update object

**id** `string`

Unique ID, starting with `pupd_`.

**passId** `string`

The pass that changed.

**actor** `object | null`

Who made the change: `id`, `name` and `email`. For a change made through the API, `id` is the API key's ID and the other two are `null`.

**notificationMode** `string`

`silent` or `notify`.

**walletChanged** `boolean`

Whether the change is visible in wallets. Changes to holder details made in the dashboard are recorded with `false` and aren't delivered.

**changes** `object`

What changed.

**properties**

**fields** `array`

Each changed field with its `key`, `label`, `from` and `to` values.

**barcodeValue** `object`

`from` and `to`, when the barcode value changed.

**featuredActions** `array`

Each Featured Action whose link changed, with its `key`, `type`, `from` and `to` links. `null` stands for no link.

**relevance** `object`

`from` and `to`, when the pass's Lock Screen lists changed. Each holds the `locations` and `dates` the pass shows, including any it takes from the template.

**stamps** `object`

`from` and `to` counts and the card's `total`, when a stamp card's count changed.

**points** `object`

When a points card's balance changed: `from` and `to` balances, `change`, the amount asked for (it stays as sent even when a limit stopped the balance short, and for a deployment it's the difference), and the template's `goal`, or `null` without one.

**event** `object`

Present when the change came from [saving the template's event details](https://tapace.lk/docs/api-reference/templates/save-event.md): `eventUpdateId`, the `tevu_` ID of that save.

**holderName** `object`

`from` and `to`, when the holder's name changed in the dashboard. `holderEmail` works the same way.

**deployment** `object`

Present when the change came from rolling out a new template design: `deploymentId`, `fromRevision`, `toRevision` and `notified`.

**voided** `boolean`

`true` when this update voided the pass.

**googleMessage** `object | null`

The `header` and `body` of the notification sent to Google Wallet, when there is one.

**delivery** `object`

Progress per wallet.

**properties**

**apple** `object`

`status` (see [delivery status](https://tapace.lk/docs/guides/update-passes.md#delivery-status)), `devices`, the number of Apple devices the update was sent to, and `error`, which explains a `failed` status.

**google** `object`

`status`, `error`, and `message`: the state of the Google notification, which is `not_requested`, `pending`, `sent`, `limit_reached` or `failed`.

**retryable** `boolean`

`true` when this is the pass's latest wallet change, a wallet failed to receive it, and nothing is still pending. It can then be resent from the pass's page in the dashboard.

**createdAt** `string`

When the change was made.

**updatedAt** `string`

When its delivery status last changed.

### Errors

| Status | When |
| - | - |
| `404` | The pass or the update doesn't exist. |

```bash cURL theme={null}
curl https://api.tapace.lk/v1/passes/pass_7hGk2LmQ9xVt4RnB8cYe/updates/pupd_Lm4Xq8Vt2Nr7Kz3Pw9Bc \
  -H "Authorization: Bearer $TAPACE_API_KEY"
```

```json 200 theme={null}
{
  "object": "pass_update",
  "id": "pupd_Lm4Xq8Vt2Nr7Kz3Pw9Bc",
  "passId": "pass_7hGk2LmQ9xVt4RnB8cYe",
  "actor": { "id": "cmgx4k2p90001ab12cd34ef56", "name": null, "email": null },
  "notificationMode": "notify",
  "walletChanged": true,
  "changes": {
    "fields": [
      { "key": "points", "label": "Points", "from": "120", "to": "150" }
    ]
  },
  "googleMessage": { "header": "Pass updated", "body": "Points: 150" },
  "delivery": {
    "apple": { "status": "delivered", "devices": 1, "error": null },
    "google": { "status": "delivered", "message": "sent", "error": null }
  },
  "retryable": false,
  "createdAt": "2026-10-13T10:30:00.000Z",
  "updatedAt": "2026-10-13T10:30:04.000Z"
}
```

```json 404 theme={null}
{
  "error": {
    "type": "not_found_error",
    "message": "Update not found."
  },
  "requestId": "req_8f3a2c1d9e7b6a54"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.