Discount codes
Discount codes are promo codes guests enter at checkout to lower their booking total. You build them in the Discounts area, set how much they take off and the rules around when and to whom they apply, then share the code — or attach it to a membership plan as a member perk.
This guide walks through every setting on a discount, in the order you'll meet them: pick a type, create the code, then fine-tune the amount, limits, eligibility, schedule, and which packages it covers.
Discount code types
Rex supports three types. Pick the one that matches what the promotion should do.
Percent
Takes a percentage off the total — e.g. 20% off.
Fixed
Takes a flat dollar amount off the total — e.g. $15 off.
BOGO (Buy One Get One)
Doesn't reduce the cart total directly. Instead, when a "buy" item is in the cart, a "get" item is discounted — free, a percentage off, or a fixed amount off.
For a closer look at Percent vs. Fixed and when to use each, see Discount code types.
Create a discount code
Go to Discounts
Open Promote, then Discounts. You'll see the list of existing codes (empty on your first one).
Open the create form
Click New Discount. A dialog opens asking for the basics: Discount Name (an internal label for the admin list and reports), Coupon code (what guests type at checkout), Discount Type, and Amount.
Save
Click save. The dialog closes and you land on the discount's detail page, where every other setting lives.
These same steps, on their own, are in Create a discount code.
Discount settings, explained
The discount detail page holds everything else. The main settings sit in one card; three more cards — BOGO Configuration, Minimum Purchase Requirements, and Eligibility — open their own dialogs. Here's what each setting does.

Main settings
| Field | Description |
|---|---|
| Discount Name | Internal label shown in the Discounts list and reports. Guests never see it. |
| Coupon Code | What guests type at checkout. Case-insensitive and must be unique. |
| Discount Type | Percent, Fixed, or BOGO (see above). Changing it changes which fields show. |
| Amount | The percentage (Percent) or dollar amount (Fixed) taken off. Hidden for BOGO, where the amount is set inside BOGO Configuration. |
| Max Usage Limit | Total redemptions before the code stops working. Leave blank for unlimited. |
| Max Usage Interval | The rolling window the Max Usage Limit applies to: All Time, Per Day, Per Week, Per Month, or Per Year (see the deep-dive below). |
| Applied Only For Durations | Restricts the code to bookings of certain lengths — e.g. only valid on 2-hour bookings. Leave empty to allow any duration. |
| Is Per Person | When on, the Max Usage Limit is counted per customer (e.g. "1 use per guest") instead of across everyone. |
| Max Usage Duration (Minutes) | Caps the code by total booked minutes rather than by number of redemptions — useful for time-based allotments. |
| Apply to Fees | By default the discount only comes off the base package and add-on price. Turn this on to also discount fees. |
BOGO Configuration
Shown when the type is BOGO. Open the BOGO Configuration card to set the Discounted Item Type (a package or an add-on), pick the Discounted Package or Discounted Add On, and choose the Discount Type for the get item: 100% Off (free), Percent Off, or Fixed Amount Off. The buy item is whichever package or add-on the discount is assigned to.
A BOGO only triggers when both the buy item and the get item are in the same cart. If the guest only has the buy item, nothing is discounted.
Minimum Purchase Requirements
Open this card to turn on Apply Minimum Purchase Requirement and set a Minimum Purchase Amount ($). The booking subtotal must reach that amount before the code is accepted — a clean way to run "$20 off orders over $100".
Eligibility
Open this card to turn on Restrict to specific emails and paste a list of addresses into Emails. Only guests booking with one of those addresses can use the code. Leave it off and the code is open to everyone.
Status
The Discount is Active toggle controls whether the code works at checkout. Switch it off to pause a promo without deleting it — the code and its settings stay intact for later.
How the Max Usage Interval works
Max Usage Interval pairs with Max Usage Limit to control how often a code can be redeemed. Every interval is a rolling window counting backward from the moment a guest tries to apply the code — Rex counts redemptions inside that window and blocks the code once the limit is hit.
| Field | Description |
|---|---|
| All Time | Every redemption ever — the Max Usage Limit becomes a lifetime cap. |
| Per Day | The last 24 hours. |
| Per Week | The last 7 days. |
| Per Month | The last 30 days (a fixed day count, not a calendar month). |
| Per Year | The last 365 days (a fixed day count, not a calendar year). |
Examples: Limit 5 + Per Month = up to 5 redemptions in any rolling 30 days. Limit 1 + Per Day = once per 24 hours. Limit 100 + All Time = a hard lifetime cap of 100. With Is Per Person on, the same windows apply but the count is tracked separately for each guest.
For more on caps and expiry, see Set usage limits and expiry dates.
Make a code good for a set number of bookings
To hand out a code that's good for a fixed number of bookings and then stops — common for membership perks like "10 visits at 50% off" — combine three settings:
- Set the Amount to the discount each booking should get (e.g. 50 for 50% off).
- Set Max Usage Limit to the number of bookings the code covers (e.g. 10).
- Leave Max Usage Interval on All Time so the count is a lifetime allotment, and turn Is Per Person on so each guest gets their own 10.
Max Usage counts redemptions, not guests — "10 visits per member" works because Is Per Person gives each member their own count of 10.
Schedule when a discount is valid
By default a code works any time it's active. To limit it to a date range and weekly time windows — a weekend promo, a happy-hour code — click Edit Schedule on the detail page, set a Start Date and End Date, toggle on the days it should run, and set a start/end time for each. Outside the schedule, the code is rejected at checkout.
Full walkthrough in Schedule a discount.
Limit a discount to specific packages or add-ons
By default a discount applies to every package and add-on at every venue. To scope it, open the Packages or Add-Ons tab on the discount and check only the items it should cover. Once a discount is assigned to specific items, it only applies when the cart includes one of them.
See Assign a discount to packages or add-ons for details.
Hand out unique codes in bulk
To give many people their own code — a per-guest promo, a partner campaign, an influencer drop — clone an existing discount instead of building each by hand. On the Discounts list, open the row actions on a code with the settings you want and choose Clone. In the Clone Discount dialog, enter a Discount Name for the batch, an optional Prefix (up to 3 characters, prepended to every generated code), and the Number of codes (1–999). Rex generates that many unique codes, all sharing the source's amount, schedule, and rules.
After cloning, use the Export button on the Discounts list to download the generated codes as a CSV to share or hand off.
Manage and report on codes
The Discounts list (Promote > Discounts) is where you search, sort, edit, clone, delete, and export codes.
- Search by name or coupon code — results filter as you type.
- Sort by any column — click a header to sort, click again to reverse.
- Edit — click a row to open its detail page.
- Delete — use the row actions for one code, or select several with the checkboxes and click Delete Selected.
- Export — click the Export button (top right) to download a CSV; it respects whatever search filter is applied.
The list doubles as your usage report: the Times Used column shows each code's live redemption count. Export the list for a complete record.
More in View the discount usage report.
How guests apply a code
At the payment step of the booking flow, guests enter the code in the Discount Code field and click Apply; the total updates. Only one discount code can be applied per reservation.
See How guests apply a discount code at checkout.
Apply discounts to memberships
Discounts are also how you grant perks to members. Create the discount codes first using the steps above, then attach them to a plan: open Memberships, click the membership plan, and scroll to its Benefits section. There you'll see a searchable list of your discounts with a checkbox on each — check the ones members on that plan should get, and they're granted automatically. Members receive the discount as part of their membership, with no code to type.

Pair this with the "set number of bookings" recipe above to build perks like "10 visits at 50% off" — create the discount with Max Usage 10, Is Per Person on, then attach it in the plan's Benefits section.
For setting up the plans themselves, see Memberships.
If a code stops working unexpectedly, check Why is my discount code not working? — most issues come down to the schedule, usage limit, eligibility list, or package scope.
Updated Jun 18, 2026
Was this helpful?