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

# Apple Poster Designs

> Give Apple Wallet passes a full-bleed poster face, with the generic poster design, its artwork and field layout, and up to two featured action buttons.

<Warning>Poster designs are in **closed beta**. The payload shape may still change. [Contact PassEntry](mailto:support@passentry.com) for access.</Warning>

Apple's poster designs replace the standard pass face with a full-bleed image, your fields laid over it, and an information panel underneath. PassEntry supports two of them, set on the pass template through `appleEnhancedDesign.type`:

| Design        | What it is                                                              | Template types                 | Extra entitlements   |
| ------------- | ----------------------------------------------------------------------- | ------------------------------ | -------------------- |
| `eventTicket` | The poster event ticket, with event details, seating and an event guide | Event ticket                   | NFC and pass binding |
| `generic`     | A poster face with your own fields and up to two action buttons         | Event ticket, generic, loyalty | None                 |

This guide covers the `generic` design. For the event ticket design, see the `enhancedData.eventTicket` fields on [Create Pass](/api-reference/v1/passes/create-pass).

## One pass, every device

The generic poster renders on **iOS 27 and later**. Older versions of iOS cannot read the poster layout at all, so every pass carries a second copy of the same fields in its template's standard layout. An iPhone on iOS 26 shows the standard pass, an iPhone on iOS 27 shows the poster, and you issue one pass either way.

The layout a device falls back to follows the template type: a generic template falls back to a generic pass, a loyalty template to a store card, an event ticket template to an event ticket.

## Prerequisites

* Your organisation has poster designs enabled. [Contact PassEntry](mailto:support@passentry.com) if you need access.
* Your template is an event ticket, generic or loyalty template. Stamp card and transit templates cannot use a poster design.
* You have artwork ready for the poster background. Artwork is required, including when all you want is the action buttons.

## Enabling the design

Set the design type and upload the artwork on the pass template.

```json Enable the generic poster theme={null}
PATCH /api/v1/pass-templates/YOUR_TEMPLATE_UUID

{
  "passTemplate": {
    "appleEnhancedDesign": {
      "type": "generic",
      "images": {
        "artwork": "https://www.example.com/artwork.png"
      }
    }
  }
}
```

| Parameter                            | Required | Description                                                                                                                                      |
| ------------------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `appleEnhancedDesign.type`           | Yes      | `generic` for the poster face described here. Send `null` to turn the poster off and return the template to its standard layout.                 |
| `appleEnhancedDesign.images.artwork` | Yes      | Poster background. Maximum 1074x1344 px. Keep important content away from the top and bottom edges, which sit under the header and chin regions. |

Passes already issued from the template are rebuilt with the new design and pushed to the wallet.

The `secondaryLogo` and `venueMap` images belong to the event ticket design. The generic poster has no event guide to show a venue map in, and takes its chin logo from the template's standard logo image.

## What the poster shows

The poster face has fewer slots than the standard layout, so PassEntry maps your existing fields into it rather than asking you to author them twice.

| Poster slot       | Filled from                                                                                                                  |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Header            | Your first header field                                                                                                      |
| Main fields       | Up to three fields, taken from your central fields first, then your details fields, in the order they appear on the template |
| Information panel | Everything that did not fit above                                                                                            |
| Back of the pass  | Your back fields, unchanged                                                                                                  |

Nothing is dropped. A field that overflows the poster face moves into the information panel underneath it, and the same fields keep their usual places on devices that render the standard layout.

The template's colours apply to the poster as you set them.

## Featured actions

Featured actions are up to two buttons under the poster. Each one opens a URL, and Apple renders the button from the action type you choose.

Author them on the template, in the `one` and `two` slots:

```json Add featured actions theme={null}
PATCH /api/v1/pass-templates/YOUR_TEMPLATE_UUID

{
  "passTemplate": {
    "appleEnhancedDesign": {
      "type": "generic",
      "featuredActions": {
        "one": {
          "type": "viewSchedule",
          "url": "https://www.example.com/schedule"
        },
        "two": {
          "type": "viewOffersRewards",
          "url": "https://www.example.com/offers"
        }
      }
    }
  }
}
```

Rules:

* Filling an empty slot needs both a `type` and a `url`. Sending one without the other is rejected.
* `url` must be an `https://` URL.
* The two slots must use different types.
* `featuredActions` is only accepted when `type` is `generic`. Sending it on the event ticket design returns a `422`.

### Action types

Apple defines the full set and renders each one its own way. Pick the one that matches where the button leads.

| Type                 | Use it for                                  |
| -------------------- | ------------------------------------------- |
| `viewSchedule`       | A schedule, line-up or agenda               |
| `watchTrailer`       | A trailer or preview video                  |
| `listenToMusic`      | A playlist, album or track                  |
| `call`               | A page where someone can reach you by phone |
| `place`              | A venue or location page                    |
| `addToBalance`       | Topping up a balance                        |
| `order`              | Ordering food, drink or merchandise ahead   |
| `shop`               | An online store                             |
| `membershipBenefits` | What a membership includes                  |
| `bookAppointment`    | Booking an appointment                      |
| `bookCar`            | Booking a car or transfer                   |
| `bookFlight`         | Booking a flight                            |
| `bookStay`           | Booking somewhere to stay                   |
| `viewOffersRewards`  | Current offers or rewards                   |

Every action takes an `https://` URL, so `call` points at a web page rather than a `tel:` link.

### Changing a slot later

Send only the slot you want to change. An omitted slot keeps whatever it holds.

```json Repoint slot two theme={null}
PATCH /api/v1/pass-templates/YOUR_TEMPLATE_UUID

{
  "passTemplate": {
    "appleEnhancedDesign": {
      "featuredActions": {
        "two": {
          "url": "https://www.example.com/new-offers"
        }
      }
    }
  }
}
```

To remove a slot, send it as `null`:

```json Remove slot two theme={null}
{
  "passTemplate": {
    "appleEnhancedDesign": {
      "featuredActions": {
        "two": null
      }
    }
  }
}
```

## Per-pass artwork

The poster background comes from the template, and every pass inherits it. To give one pass its own poster, send `artworkImage` under `templateOverride` when you create or update the pass.

```json Give one pass its own poster theme={null}
POST /api/v1/passes?passTemplate=YOUR_TEMPLATE_UUID

{
  "pass": {
    "templateOverride": {
      "artworkImage": "https://www.example.com/artwork/jane.png"
    }
  }
}
```

Send an HTTPS URL or a base64 data URI, or point at an image you have already uploaded with `{"imageAssetId": "YOUR_IMAGE_ASSET_ID"}`. The 1074x1344 px limit still applies. Send `null` to drop the override and go back to the template's artwork.

## Per-pass actions

A pass takes a copy of the template's featured actions when it is created, so most passes need nothing extra. To point one pass somewhere else, send the slot under `enhancedData.generic` on the pass.

```json Override an action for one pass theme={null}
POST /api/v1/passes?passTemplate=YOUR_TEMPLATE_UUID

{
  "pass": {
    "enhancedData": {
      "generic": {
        "featuredActions": {
          "one": {
            "url": "https://www.example.com/schedule/vip"
          }
        }
      }
    }
  }
}
```

The same body works on [Update Pass](/api-reference/v1/passes/update-pass). Slot rules match the template: send both keys to fill an empty slot, send one key to change one value, send `null` to remove the slot, and omit the slot to leave it alone. Types must still differ across the two slots once your change is applied.

<Info>After a pass is created, its own actions win. Editing the template's featured actions changes new passes, not existing ones, so a per-pass override is never overwritten later.</Info>

## What's next

* [Create Pass Template](/api-reference/v1/pass-templates/create-pass-template) for the full template payload
* [Create Pass](/api-reference/v1/passes/create-pass) for per-pass data
* [Design Guide](/documentation/passes/design/guide) for image requirements across both wallets


## Related topics

- [PassEntry changelog: Dashboard, API, and SDK updates](/changelog/2025/updates.md)
- [Design Guide](/documentation/passes/design/guide.md)
