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

# Wallet passes

> Save Masivo coupon codes in Apple Wallet and Google Wallet.

A wallet pass is a coupon code packaged for Apple Wallet and Google Wallet.
Masivo issues the pass through the Storefront API. The phone stores the pass.
Masivo stays the source of truth for whether the code can still be used.

Claiming a pass assigns it to a customer. It does not redeem the coupon.
Redemption still uses [`POST /coupons/redeem`](https://docs.masivo.ai/api-reference/coupons/redeem/post).

## How it works

```mermaid theme={null}
flowchart LR
  A[Storefront campaign link] --> B[Visitor opens claim_url]
  B --> C[Next free code ISSUED]
  C --> D[Pass on the phone]
  D --> E[Claim optional]
  E --> F[Redeem coupon]
  F --> G[Pass REDEEMED]
```

1. Save [Apple and Google credentials](https://docs.masivo.ai/guides/settings/wallet-passes.md).
2. Design a [template](https://docs.masivo.ai/guides/wallet-passes.md#create-a-template) and enable it on
   a coupon campaign.
3. Call [issue](https://docs.masivo.ai/api-reference/guides/add-coupon-to-wallet.md) once per campaign
   and share the same `claim_url`. Each visitor gets a code.
4. Redeem the code with the `customer_id`. The pass is linked to that
   customer on its first redeem.

## Status

| Status | Meaning |
| - | - |
| `ISSUED` | Created, not linked to a customer yet |
| `CLAIMED` | Linked to a customer who still has uses left |
| `REDEEMED` | The coupon code was redeemed |
| `EXPIRED` | The campaign end date passed |
| `REVOKED` | Invalidated manually or because the customer was deleted |

## What the pass shows

Templates live in **Settings → Wallet passes → Templates**. Apple Wallet and
Google Wallet only support their own layouts, so templates fill those slots.
They are not HTML.

| Slot | Template field |
| - | - |
| Title next to the logo | Header |
| Large offer | Offer label + offer text |
| Coupon code | Code label + allocated code |
| State | Status label + current status |
| Barcode | QR or Code 128 of the code |
| Colors | Background, foreground, label |
| Images | Logo (top-left), icon (stacked list), illustration (right) |

Credentials are per account: an Apple Pass Type ID certificate and a Google
Wallet issuer service account. See
[Wallet pass credentials](https://docs.masivo.ai/guides/settings/wallet-passes.md).

## Detecting a pass without reading the phone

Apps cannot list passes stored in Apple Wallet or Google Wallet. Detection uses
Masivo records:

1. Passes linked to a `customer_id`, from
   [`GET /customers/{id}/wallet-passes`](https://docs.masivo.ai/api-reference/customers/\[id]/wallet-passes/get).
   A pass is linked on its first redeem.
2. Every pass of the account, filtered by campaign, customer, status, or code,
   from `GET /wallet-passes`.

See the [dashboard guide](https://docs.masivo.ai/guides/wallet-passes.md) and the
[Storefront API guide](https://docs.masivo.ai/api-reference/guides/add-coupon-to-wallet.md).


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