Payments
Discount Codes
Last updated 8 July 2026
Discount Codes
Discount codes let owners and managers create reusable venue promo codes for online booking, public purchases, and checkout. Codes can be percentage or fixed amount discounts, limited by dates, spend, usage, channel, purchase type, service, and client audience.
TL;DR
- Go to Discount codes to create, edit, archive, restore, copy, or delete codes.
- Core codes are available on all plans; client-audience targeting and the Discounts report require PRO.
- Codes can apply to Online booking, Checkout, gift-card purchases, package purchases, membership first payments, products, add-ons, services, and custom checkout lines.
- Discount codes do not stack with manual discounts or fixed loyalty discount rewards at checkout.
Discount codes are managed from the web route Discount codes and the mobile Discount Codes screen. Customers can enter a Promo code during online booking, gift voucher purchase, and package purchase when the code is eligible. Staff can apply a Discount code during checkout on web or mobile.
What are discount codes?
Discount codes are venue-owned promo codes that apply a reusable discount to eligible purchases. OpenChair normalises the code per venue, validates eligibility at redemption time, and records each redemption for reporting and receipts.
| Area | What discount codes can affect |
|---|---|
| Online booking | Service deposits and booking totals before gift cards or store credit are applied. |
| Checkout | Open orders on web or mobile, separate from manual discounts. |
| Gift cards | Storefront gift-voucher purchases. The client pays less, but the gift card keeps its full value. |
| Packages | Public package purchases. |
| Memberships | Membership first payment where membership promo support is available. |
| Reports | PRO Discounts report totals, channel split, top codes, staff attribution, and CSV export. |
| Campaigns | PRO campaign builder can attach active codes to campaign copy, booking links, and promotion impact reporting. |
Create a discount code
Create discount codes from the web Discount codes page or the mobile Discount Codes screen.
- Open Discount codes.
- Select Add discount code.
- Complete Basics.
- Review Rules.
- Choose Eligible purchases.
- Choose Eligibility.
- Optional: configure Promotion on web.
- Select Create code.
On mobile, the create sheet is titled Add discount code and the save button is Create code. On web, the edit sheet uses Save changes.
Settings
| Setting | Options | Default |
|---|---|---|
| Code | 1 to 40 characters, entered in uppercase | Blank |
| Type | Percentage or Fixed amount | Percentage |
| Percent off | 0.01 to 100 | 15 |
| Amount off | Fixed amount above 0 | Blank |
| Name | Internal label, 1 to 120 characters | Blank |
| Status | Draft, Active, Archived on edit | Active |
| Channels | Online booking, Checkout, or both | Both |
| Internal note | Optional, up to 500 characters | Blank |
| Starts | Optional start date and time | No start date |
| Ends | Optional end date and time | No end date |
| Max discount | Optional cap for percentage codes | No cap |
| Min spend | Minimum eligible subtotal | 0 |
| Usage cap | Optional total redemption cap | None |
| Per client | Optional per-client redemption cap | None |
| Client eligibility | Everyone or Client audience | Everyone |
Validation blocks invalid setups. For example, selected purchase targets must include at least one target, end dates must be after start dates, and at least one channel must be selected.
Eligible purchases
Eligible purchases controls what a code can discount. A code must have at least one enabled purchase category.
| Category | Scope options |
|---|---|
| Services | All or selected services. |
| Add-ons | All or selected add-ons. |
| Products | All or selected products. |
| Gift cards | All gift-card purchases. |
| Packages | All or selected packages. |
| Memberships | Membership first payment only. |
| Custom checkout lines | Custom checkout lines. |
The Preset buttons help set common scopes quickly. If you enable Gift cards, the form warns that the gift card keeps its full value.
Client eligibility
Client eligibility is either Everyone or Client audience. Client audience targeting requires PRO.
Audience-targeted codes can use system audiences such as New, Regular, or VIP, or saved client audiences. OpenChair checks the customer's current audience eligibility when the code is redeemed. Blocked clients are always suppressed, and archived clients or clients who no longer match a dynamic audience cannot redeem the code.
Storefront promotion
Web can promote one active online-booking discount code on the public storefront. The promotion appears as a customer-facing offer and can auto-apply when eligible.
| Promotion setting | Options |
|---|---|
| Promote on storefront | On or off |
| Draft offer copy | AI draft for the title, description, and CTA label |
| Public title | Required when promoted, up to 120 characters |
| Public description | Optional, up to 240 characters |
| CTA label | Default Book with offer, up to 40 characters |
| Placement | Storefront strip |
| Promotion starts | Optional |
| Promotion ends | Optional |
| Auto-apply when eligible | On or off |
Promotion is blocked unless the code is Active, includes Online booking, and is available to Everyone. Saved-audience offers cannot be promoted publicly yet. Saving a new promoted code replaces the previously published storefront offer.
Use Draft offer copy to generate editable public copy for the promoted offer. The draft uses Sparks and does not publish anything until you save the discount code.
The web detail view also includes Copy link and Preview for promoted offers.
Apply a code at checkout
Staff can apply eligible codes to an open checkout order on web or mobile.
On mobile:
- Open checkout.
- Open Discount code.
- Select Add code.
- Enter the code in the Discount code field.
- Select Apply.
If a code is applied, mobile shows the code and discount amount. Use the remove icon to remove it. Errors include Discount code needs internet, Enter a discount code, Manual discount already applied, Discount code not applied, and Discount code not removed.
Checkout blocks stacking:
| Existing discount | Result |
|---|---|
| Manual discount | The code is rejected until the manual discount is removed. |
| Existing discount code | The current code must be removed before another code can be applied. |
| Fixed loyalty discount reward | The loyalty discount must be removed before applying a code. |
| Gift card or store credit | Can be used after the discount has reduced the eligible total. |
Customer promo-code entry
Customers see Promo code in supported public purchase flows. Online booking also supports promoted storefront offers and campaign links that carry a code into booking.
| Flow | Customer-facing labels |
|---|---|
| Online booking | Promo code, Apply, Checking..., and applied offer text. |
| Gift voucher checkout | Add promo code, Hide promo code, Promo code, and Go back to edit the promo code before creating a new payment. |
| Package purchase | Promo code and applied promo summary. |
Codes are validated before payment intent creation where public payment is involved. The redemption row is completed after the booking, purchase, or order anchor exists.
For campaign-specific setup, see Campaign Discount Codes.
Reporting
The Discounts report is PRO-gated. Owners and managers can filter by Code, Service, Staff, Channel, Category, Status, Attribution, and Placement.
Report actions include Clear filters and Export CSV. If export fails, the page shows Discounts report not exported. Mobile report surfaces include Discounts, Channel split, Top codes, and Staff attribution.
Cancelled bookings and voided orders keep audit rows but are excluded from realised totals.
Who can use this
| Role | Access |
|---|---|
| Owner | Can create, edit, archive, restore, delete eligible codes, promote storefront offers, and use the PRO Discounts report. |
| Manager | Can manage discount codes and reports where their role has access. |
| Staff | Can apply and remove eligible discount codes at checkout. |
| Customer | Can enter eligible promo codes in public booking and purchase flows. |
Common mistakes
| Mistake | What to do instead |
|---|---|
| Promoting a draft code | Set the code to Active before using Promote on storefront. |
| Promoting a checkout-only code | Add Online booking to Channels before promoting. |
| Creating a selected-service code with no services | Choose at least one service or switch the service scope to All. |
| Applying a code after adding a manual discount | Remove the manual discount first. Discount codes and manual discounts do not stack. |
Troubleshooting
| Issue | Solution |
|---|---|
| Choose at least one channel. | Select Online booking, Checkout, or both. |
| Select at least one eligible service. | Add a selected service or change the service scope to All. |
| Client-audience targeting is available on Pro. | Upgrade to PRO or switch Client eligibility to Everyone. |
| Only online-booking codes can be promoted | Add Online booking under Channels. |
| Saved-audience offers cannot be promoted publicly yet | Change Client eligibility to Everyone before promoting. |
FAQ
What are discount codes?
Discount codes are reusable venue promo codes that reduce eligible online booking, checkout, gift-card, package, membership, product, add-on, or custom checkout purchases. OpenChair validates each code before it changes the payment amount.
Who can create discount codes?
Owners and managers can create, edit, archive, restore, and delete eligible discount codes. Staff can apply eligible codes at checkout but do not manage the code setup.
Can discount codes stack with manual discounts?
No. Checkout blocks discount codes when a manual discount or fixed loyalty discount reward is already applied. Gift cards and store credit can still be used after the discount has reduced the eligible total.
Can I promote a discount code on the storefront?
Yes. One active online-booking code for everyone can be promoted on the public storefront with a Public title, optional Public description, CTA label, and Storefront strip placement.