Appearance
Discount codes
Discount codes let you run promotions — early-bird deals, partner offers, press comps — without creating separate ticket types. You create the codes, set how much they take off and for how long, and attendees type them in at checkout. This page covers creating and managing codes on the Promo codes page and what buyers experience when they apply one.
A promo code takes a percentage or a fixed amount off the price of a ticket.
Discounts through your sales team
If your sales staff or resellers hand out the discount, use Sales invitations instead of codes: each rep gets a personal link, every registration is credited to them, and an invitation never stacks with a promo code.
Creating a code
- Open Promo codes for your event.
- Choose Create code.
- Pick the Generation method (see below).
- Choose the Discount method and its value.
- Set the Ticket scope, Usage limit, and Valid period.
- Optionally add a Remark — an internal note of up to 200 characters, such as a partner's name. Buyers never see it.
- Leave Active after save ticked unless you want the code to start paused.
- Save with Create promo code — or Create and add another to keep going.
Generation methods
You don't have to type every code by hand. When creating (not editing), pick one:
| Method | Use it for |
|---|---|
| Manual | One code you name yourself, e.g. EARLYBIRD10. |
| Random | A batch of system-generated codes (up to 500 at once). |
| Upload | Paste your own list, one code per line. |
TIP
When codes go out through different partners, create each partner's batch separately and put the partner's name in Remark. The remark shows in the export, so you can tell later where a redemption came from.
Fixed amount vs. percentage
The Discount method decides how the price is reduced. There are two:
| Method | Effect |
|---|---|
| Amount off | Subtracts a fixed amount from the full price of each applicable ticket. |
| Percent off | Takes a percentage off the full price (1–100%). |
- Percent off must be between 1 and 100.
- Amount off must be greater than 0. A code with a zero value isn't accepted.
Choose the method that matches how you describe the promotion: "20% off" is Percent off; "$10 off" is Amount off. To make a ticket free with a code, use Percent off at 100.
Ticket scope
A code can apply to:
- All tickets — every ticket type on the event, or
- Selected tickets — only the ticket types you check.
If you choose selected tickets you must pick at least one. When a buyer tries a code against a ticket it doesn't cover, checkout tells them the code doesn't apply to the tickets they picked.
Usage limits & validity window
Usage limit
- Unlimited — the code can be redeemed any number of times.
- Limited — set a maximum number of uses. Each ticket the discount is applied to counts as one use; once they're used up, further attempts are refused.
The list shows redemptions as used / max (for example 12 / 100), so you can see how much of a limited code is left.
TIP
A limited code's uses are returned if an order that consumed it is later cancelled, expires unpaid, or is rejected in review — so a redemption that never becomes a real registration doesn't permanently burn a use.
Valid period
By default a code follows the ticket sale window — it's usable whenever the tickets themselves are on sale. To run a shorter promotion, untick Default sale period and set an explicit Valid from and Valid to (both are required if you set a custom window).
Outside the window, checkout refuses the code: before Valid from it's treated like any code that isn't valid, and after Valid to the buyer is told it has expired.
Active status
Every code also has an Active / Inactive state, independent of its window. You can:
- pause a single code from its row (Pause / Activate), or
- select several and use Activate selected / Pause selected.
A paused (inactive) code is refused at checkout even if it's inside its valid window.
Uniqueness (the "already exists" error)
Codes must be unique within an event (case-insensitive). If you try to create a code that already exists on the event, bagevent refuses it with a discount code already exists error. Randomly generated codes are guaranteed unique automatically.
If you hit this, either choose a different code or find and edit the existing one's settings instead of making a duplicate.
How attendees apply a code
Attendees redeem codes on your public registration page:
- They select their tickets.
- They enter the code in the discount / promo field at checkout.
- The order total updates to reflect the reduction.
- They complete the order (and pay the reduced amount, if anything is still owed).
The applied code is stored on the order and the attendee, so you can see it in the order and attendee details and in your data export.
Invalid, expired, and exhausted codes
At checkout bagevent validates the code. A code that doesn't exist, was deleted, is paused or hasn't started yet gets the same message on purpose — otherwise anyone trying words could work out which ones are real codes, including ones about to start.
| Situation | What the buyer sees |
|---|---|
| Code doesn't exist, was deleted, is paused, or is before its valid-from time | "That promo code is not valid for this order. Check the code, or clear it to pay full price." |
| After the valid-to time | "That promo code has expired. Clear it to pay full price." |
| Limited code with no uses left | "That promo code has been used up. Clear it to pay full price." |
| Code doesn't cover the chosen tickets | "This code doesn't apply to the tickets you picked." |
| Too many codes that didn't work, one after another | "Too many code attempts. Wait a few minutes and try again." |
Managing existing codes
From the Promo codes list you can:
- Search codes by text.
- Edit a code by clicking its row. The code itself can't be changed, and once a code has been used, its discount method, value and ticket scope can't change either — pause it and create a new one instead.
- Pause / Activate, Delete, or do any of these in bulk with the row checkboxes.
- Export CSV — download all codes for the event with their reward, scope, used/max counts, remark and status.
WARNING
Deleting or pausing a code does not undo orders that already used it. It only stops future redemptions.
Related
- Tickets — the ticket types a code can be scoped to.
- Exporting data — see which codes were used, and by whom.
- Approving attendees — how a rejected registration returns its code use.
- Quick start