Skip to main content

Season passes

This guide explains how season passes work on Cooltix and what you need to set up and manage them.

T
Written by Tamás Szücs

Season passes allow customers to purchase access to multiple events at once under a single pass, with their spot automatically reserved across all linked events.

Please note: Season pass management is currently available via the Cooltix API only. A self-service interface in the admin panel will be introduced in a future release. Contact your Cooltix account manager for assistance with setup.


Overview

A season pass is a new ticket type (product) alongside regular tickets (and currently add-ons). It links a pass event — where the pass itself is sold — to one or more standard events, where the actual performances or matches take place.

When a customer purchases a fixed season pass, the system automatically:

  • Reserves their spot (and seat, for seated events) on every linked standard event.

  • Creates an order and attendee record on each linked event.

  • Issues a single voucher with one shared code valid at all linked events.

  • Sends one confirmation email to the customer. No separate email is sent per event.

Currently available season pass types: Fixed season passes for seated events only. Flexible (free-choice) passes and general admission events will be introduced in later phases.


Key concepts

Pass event and standard events

The pass event is the event where the season pass product lives and where customers buy it. The standard events are the individual events the pass gives access to (e.g. each match in a season). A pass event and its standard events are linked at the product level.

An event can act as both a pass event and a standard event at the same time — for example, if the opening match is also where the season pass is sold.

One standard product per pass per event

Each season pass product can be linked to at most one product per standard event. You cannot assign two products from the same standard event to the same pass.

Multiple pass products on the same pass event can each link to different standard event products.

Shared voucher code

All attendee records created by a single season pass purchase share the same voucher code. The customer presents this one code at the entrance of every event. The code is unique at the event level, not system-wide.

Capacity and seat reservation

At the moment of purchase, the system reserves capacity on every linked standard event. For seated events, the specific seat chosen during purchase is held on all linked events — the customer always has the same seat throughout the season.


Season pass rules

  • A season pass product can be linked to at most one product per standard event.

  • A standard event product can only be assigned to one season pass product.

  • Standard events can only be linked to a pass if they have no sales yet.

  • Once a standard event has sales, its assignment to a pass cannot be changed or removed.

  • Invalidating a season pass invalidates all linked attendee records across all events.

  • Season passes and their linked tickets cannot be resold.

  • Re-validation of an invalidated season pass is not permitted.

  • Partial refunds per event are not supported by Cooltix.

  • The voucher code is unique at the event level, not system-wide.


Setting up a season pass

1. Create the pass event

Create the event where the season pass will be sold. This is typically a dedicated "Season" event or the first event of the series.

2. Create the standard events

Create each individual event that the pass will cover. These do not need to exist before you set up the pass — standard events can be linked to an existing pass later.

3. Create the season pass product

On the pass event, create a new product of type Season Pass and set:

  • Name: display name shown to customers

  • Price / tier price, service fee, VAT

  • Sales start / end (optional)

  • Visibility (optional)

  • Tickets per order (optional)

  • Description (optional)

Validity dates are not set on the season pass itself — validity is inherited from each linked standard event!

4. Link standard events to the pass

Assign one product from each standard event to the season pass. For each assignment, specify:

  • The standard event

  • The specific product on that event the pass covers

Important: You can only link a standard event to a pass if no tickets have been sold on that standard event yet. Once sales have started on a standard event, its assignment cannot be changed or removed.

Assignments can be initiated from either side — from the pass product or from the standard event product. You do not need to link all standard events at once; additional events can be assigned later as long as the standard event has no sales yet.

5. Publish the pass event

Once the pass event is published and the pass product is live, customers can begin purchasing. Standard events linked to the pass do not need to be published for the pass to go on sale.


Adding standard events after sales have started

If you add a new standard event to a fixed season pass after passes have already been sold, the system will automatically create attendee records and reserve capacity for all existing pass holders at the moment the new standard event is published.

For seated events, the seat assigned to each pass holder's original purchase will be reserved on the new event automatically, matched by seat label.

Important: You can only add a standard event to an existing pass if that standard event has no sales yet. Once a standard event has had any sales, it cannot be assigned to a pass.


Managing season pass orders

Re-sending confirmation

You can re-send the pass confirmation email at any time from the Orders section of the pass event. The customer will receive their voucher again with the appropriate event template.

Re-downloading a pass

Pass vouchers can be re-downloaded from the Attendees section of the pass event.

Invalidation

Invalidating a season pass invalidates the pass record and all linked attendee records across every standard event at the same time. An invalidated pass cannot be re-validated.

  • Re-validation of a season pass is not permitted.

  • Check-in and check-out actions are not available on the pass record itself — only on individual standard event attendees.

  • Resale is not permitted for season passes or for the tickets created by them.

Refunds

Refunding a season pass cancels the entire purchase — the pass and all linked attendee records across every standard event are invalidated. Partial refunds (for individual events within a pass) are not supported. Partial amounts can be refunded through your payment provider if needed, but this does not affect the validity of the pass or its linked records in Cooltix (so please inform your Cooltix account manager about this).

Dashboard and exports

Season pass purchases are treated as online sales in all reports and exports — they appear alongside regular ticket sales in revenue, capacity, and sales dashboards.


Season pass renewal

Pass renewal is currently handled via the existing discount code with hidden ticket reveal mechanism.

To set up renewal for a new season:

  1. Create the new pass event and the new season pass product.

  2. Optionally assign the relevant standard events for the new season.

  3. Go to Discount codes on the new pass event.

  4. Add the voucher codes from the previous season's passes as discount codes, with the Reveal hidden tickets option enabled and the new season pass product selected.

  5. Publish the new pass event to open sales.

Customers renewing their pass enter their old voucher code on the new event page. If the code is valid, the new season pass becomes available for purchase. For seated events, entering the old code also unlocks the customer's previous seat, giving them the option to keep the same spot.


Check-in

Season pass holders use the same QR code (voucher code) at the entrance of every event in the series. Because one voucher code can be linked to multiple attendee records across different events, the check-in system applies a multi-step resolution process when a code is scanned.

Step 1 — Look up attendees by voucher code

The system retrieves all check-in eligible attendee records associated with the scanned code. Attendee records created for the pass event itself (i.e. the season pass purchase record) are excluded — only standard event attendees are considered.

If no matching attendees are found, an Attendee not found error is returned.

Step 2 — Evaluate check-in operator permissions

The system determines which of the retrieved attendees the check-in operator has permission to check in:

  • If the operator has no permission for any attendee, an Attendee not found error is returned.

  • If the operator has no permission to check in any attendee, but all attendees belong to events the operator does have access to, an error is returned: This ticket cannot be checked in.

  • If the operator has permission for at least one attendee, the process continues with those attendees only.

Step 3 — Evaluate attendee validity

The system checks whether the remaining attendees are currently valid:

  • None are valid yet: an Attendee not yet valid error is returned. The validity start shown here is the earliest validity start among the eligible attendees.

  • None are valid anymore: an Attendee no longer valid error is returned. The validity end shown here is the latest validity end among the eligible attendees.

  • Some not yet valid and some no longer valid, but none currently valid: an Attendee not currently valid error is returned.

  • At least one is currently valid: the process continues with the valid attendees.

Step 4 — Check in

The system checks how many valid, eligible attendees remain:

  • Exactly one: the system proceeds to check in that attendee.

  • More than one: an error is returned listing the events associated with each eligible attendee. The check-in operator can then select the correct event and retry.

If multiple simultaneous events are found for the same code (parallel events), the system returns an error rather than guessing. The operator must select the correct event explicitly.

Did this answer your question?