---
title: "Passes"
description: "Sell season passes, memberships and bundles that cover a regular rider's own place on chosen tickets."
---

> Documentation Index
> Fetch the complete documentation index at: http://localhost:4321/llms.txt
> Use this file to discover all available pages before exploring further.

# Passes

> **Administrators only**
>
> This part of the portal is only visible to people with the **Administrator** role. If you can't see it in your menu, ask an administrator. See [Roles and permissions](/reference/roles-and-permissions).

A **pass** is bought once, up front, and then applies to the holder's **own place** on the tickets you choose. Manage passes under **Operations > Passes**.

There are three types of pass:

| Type | What the holder gets | How long it lasts |
|---|---|---|
| **Season pass** | Their own place is **free** on covered tickets. | 1, 3, 6 or 12 months from the day they pay. |
| **Membership pass** | A **percentage off** their own place on covered tickets. | 1, 3, 6 or 12 months from the day they pay. |
| **Bundle pass** | A set number of **free sessions**. Each booking uses one. | Optional: never expires, or expires after 1, 3, 6 or 12 months from the day they pay. |

## Create a pass

| Field | Notes |
|---|---|
| **Name** | For example "Summer season pass", "Gold membership" or "10 session bundle". |
| **Description** | Required. Shown to customers on the booking site. Supports formatting. |
| **Type** | Season pass, Membership pass or Bundle pass. The fields below change to suit. |
| **Price** | Must be above zero, in your system currency. Paid in full on purchase. |
| **Valid for** | Season and membership passes: 1, 3, 6 or 12 months, counted from the day the customer pays. |
| **Discount (%)** | Membership passes only: above 0 and up to 100. Taken off the price of the holder's own place. |
| **Sessions** | Bundle passes only: from 1 to 500. |
| **Expires** | Bundle passes only: **Never**, or after 1, 3, 6 or 12 months. |
| **Tickets it covers** | Tick at least one. Events can't be covered. |
| **Enabled** | Untick to stop sales. |

## How a customer uses it

1. They buy the pass on the booking site's **Passes** page with their email address. That email becomes a customer if it isn't one already.
2. The pass starts the day payment **arrives**. Until then it shows as **Awaiting payment** and does nothing. They get a "Pass purchased" email.
3. When they book with the same email, Gravity Pass spots the pass by itself. If it's still valid **on the date of the session** and covers a ticket in their basket, it applies to **one place**: the dearest covered ticket. A season pass or bundle pass makes that place free, and a membership pass takes its percentage off.
4. Anyone else on the booking pays as usual. A pass is **personal** and can't be passed on.

### Bundle sessions

Each booking made with a bundle pass uses **one session**, however many people are on the booking. Cancelling the booking gives the session back. A bundle with no sessions left shows as **Used up** and no longer applies.

### If a customer holds more than one pass

Only one pass is used per booking. The type decides which: **season pass** first, then **bundle pass**, then **membership pass**. If a customer holds several of the same type, the one that takes the most off is used.

Prices are worked out in this order: **tickets**, then any **pass** the booker holds, then **vouchers**. A booking that ends up at zero is confirmed straight away, with no payment.

The pass used is recorded on the booking and shown to you in [Bookings](/daily/bookings), as a line in the price breakdown named after its type, such as "Bundle pass".

> **Returning customers prove they own their email**
>
> Existing customers have to enter a code emailed to them before booking. That is what stops anyone else using their pass.

## Editing and deleting

- **Changes only affect passes sold from now on.** Holders keep the type, price, tickets and terms they bought.
- **Delete** stops new sales. Passes already sold keep working until they expire or run out.
- Passes show on the customer's page in the portal, with their dates and an **Active**, **Expired**, **Used up**, **Revoked** or **Awaiting payment** badge. Bundle passes also show how many sessions are left, such as "7 of 10 left".

## Changing a pass a customer already holds

On the customer's page, under their passes:

- **Modify** (bundle passes only) changes how many sessions are left, up or down. Raising it above the original number raises the total too.
- **Revoke** takes a paid pass away straight away, so it stops applying to new bookings. Bookings already made with it are untouched.

> **No refund button for passes yet**
>
> Revoking a pass does not refund it, and there's no way to refund a pass from the portal yet. Refund it in your Stripe dashboard, then revoke the pass, and disable or delete it if you don't want to sell it any more.

Source: http://localhost:4321/selling/passes/index.mdx
