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

# Deliver passes

> Send holders a link that adds their pass to Apple Wallet or Google Wallet.

Issuing a pass doesn't put it on a phone. You send the holder a link, and they add the pass from a page hosted by TapAce. The page shows **Add to Apple Wallet**, **Save to Google Wallet** or both, depending on the pass's platforms.

There are two kinds of link.

## Permanent link

Every pass has a `distributionUrl`:

```json theme={null}
{
  "object": "pass",
  "id": "pass_7hGk2LmQ9xVt4RnB8cYe",
  "distributionUrl": "https://pass.tapace.lk/6BkJLsso1xyB"
}
```

The link never changes, so you can store it and send it at any time, for example in a welcome email or a text message. Anyone with the link can add the pass, so share it only with the holder.

## Expiring links

For a link that stops working after a set time, [create a download link](/api-reference/passes/create-download-link):

```bash theme={null}
curl https://api.tapace.lk/v1/passes/pass_7hGk2LmQ9xVt4RnB8cYe/download-links \
  -H "Authorization: Bearer $TAPACE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "expiresInSeconds": 3600 }'
```

```json theme={null}
{
  "object": "download_link",
  "id": "dlink_Vb3Nq8Lm2Xr7Tk4Pz9Wc",
  "passId": "pass_7hGk2LmQ9xVt4RnB8cYe",
  "url": "https://pass.tapace.lk/dl/kX2r9QvL7mT4nB8cYe3WpZ",
  "expiresAt": "2026-10-13T11:00:00.000Z",
  "createdAt": "2026-10-13T10:00:00.000Z"
}
```

The `url` is returned only once, so send it straight away. You can [revoke a link](/api-reference/passes/revoke-download-link) before it expires. Once the pass is in a wallet it stays there after the link expires.

## After the pass is added

* The pass updates itself when you [update it](/guides/update-passes). You never need to send a new link.
* Subscribe to the [`pass.installed` and `pass.removed` webhooks](/guides/webhooks) to find out when a holder adds or removes the pass.


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