Promo code for direct room bookings
A promo code is a way to give a discount to a guest who books a room on your website themselves: for a campaign, a partner or regular guests. The guest enters the code in the booking form, the server checks the terms and lowers the price. The discount is kept in the booking, the deposit and the guest bill.
Who: the hotel owner and manager create codes; the front desk explains a rejection to a guest.
Before you start: direct booking on the website is working. A promo code applies only when a guest books on the website and only to one room.
Where codes are created#
- Open Rooms and select 💲 Rates. The Hotel settings window opens on the Rates & restrictions tab.
- Below the rate plans and the Revenue block, find the Room promo codes block.
In the list, each code shows "On" or "Off", where it applies ("all room types", "all rates"), the period "until {date}" and "used {N} of {limit}".
Create a promo code#
- Select Add code. The New promo code window opens.
- Code — Latin letters, digits, "-" and "_", 2 to 32 characters. Case does not matter:
summer25andSUMMER25are the same code. - Discount — choose:
- Percent of the stay — and enter Percent (up to 100). Optionally, a Discount cap: the discount never exceeds this amount;
- Fixed amount per booking — and enter Amount, {currency}. The amount is in the hotel currency and is deducted once per booking, not per night.
- If needed — Minimum stay total: the code does not work if the stay before the discount costs less.
- In Where the code works (details below), tick Room types and Rates, set Nights from / Nights to and Minimum nights.
- In Limits and validity, set Total uses, Uses per guest, Accepted from / Accepted until.
- Look at the Example block — "Discount {amount} · total {amount}" for a few nights.
- Turn on Accept the code. It is off by default — turn it on when the campaign starts.
- Select Save. You will see "Code saved".
If it does not save — the reason appears under the field, for example "Enter a code: Latin letters and digits, 2–32 characters.", "Enter a discount greater than zero.", "A percent cannot exceed 100.", "Check the nights dates: “from” must not be later than “to”.".
Where the code works#
| Field | What it limits | How it works |
|---|---|---|
| Room types | which room types | nothing ticked — all |
| Rates | which rate plans | nothing ticked — all. The plan is matched exactly: if a parent plan is ticked, its derived plans are not included automatically — tick them too. A booking without a rate plan counts as Base rate |
| Nights from / Nights to | stay dates | at least one night must fall within these dates; the discount applies only to nights inside the dates, other nights keep their price |
| Minimum nights | length of stay | 1 to 365 |
| Minimum stay total | cost | compared with the cost of the nights before the discount |
Stay nights and code acceptance are different dates. "Nights from/to" is when the guest stays. "Accepted from/until" is when the guest can enter the code (for example, a "Black Friday" code is accepted for one week but applies to nights across the whole winter season).
How the discount is calculated. A percentage is taken from the nights that meet the terms; a fixed amount is deducted once per booking. Then the cap applies. The discount is spread across the nights in proportion to their price, and every night keeps at least the smallest currency unit (for example, 0.01).
Currency. A fixed amount is set in the hotel currency. Such a code does not apply to a rate plan in another currency.
Limits#
- Total uses — how many bookings can be made with the code. Empty — unlimited.
- Uses per guest — 1 by default. The system recognises a guest by phone or email. This limit is checked when the booking is submitted, not when "Apply" is pressed — a guest may see the discount in the form and be refused at the last step.
- A cancellation returns the use: if the guest or the front desk cancels a booking, the code can be applied again. If the booking is reinstated, the use is taken again.
- A no-show does not return the use.
How a guest applies a code#
- In the booking form, at the guest details step, the guest selects Have a promo code?.
- They enter the code in Promo code and select Apply.
- If the code fits — "Promo code {code}", a Discount line and Total with the code with the old amount struck through appear. To remove it — Remove code.
- After booking, the confirmation screen shows "Promo code {code}" and the discount amount.
If no room type has been chosen yet, the form asks: "Choose a room type first — the discount depends on it.".
If the guest changes the dates of a booking already made, the discount is recalculated using the terms the code had at the moment of booking. If the new dates fall outside the terms, the change is refused: "The new dates fall outside the promo code terms, so the booking was not changed…".
Nights the front desk adds to a stay are charged without the discount.
Why the code did not work#
| The guest sees | Reason | What to do |
|---|---|---|
| "This code was not found. Check it and try again." | typo in the code, or the code was deleted | check the spelling |
| "Too many attempts. Please try again later." | many wrong attempts in a row (the counter is shared with the rate plan's corporate code) | wait |
| "This code is currently switched off by the hotel." | "Accept the code" is off | turn it on if the campaign is running |
| "This code is not valid right now." | today is outside "Accepted from/until" | check the acceptance dates |
| "This code has already been used up." | "Total uses" is exhausted | raise the limit |
| "You have already used this code." | "Uses per guest" is exhausted for this phone or email | raise the limit or decline |
| "The code does not apply to this room type." | the type is not ticked in "Room types" | — |
| "The code does not apply to this rate." | the rate plan is not ticked in "Rates" (including a derived one) | tick the plan you need |
| "The stay is too short for this code." | fewer than "Minimum nights" | — |
| "The code does not apply to these dates." | no night falls within "Nights from/to" | — |
| "The code cannot be applied to this rate." | the amount is in the hotel currency, the plan is in another currency | make the code a percentage |
| "The stay total is below the minimum for this code." | less than "Minimum stay total" | — |
| "The code gives no discount for this stay." | the discount came out as zero | check the terms |
| "The price for these dates cannot be calculated. Try other dates." | no price for the dates | check the plan's prices |
| "A promo code applies to a one-room booking only." | the guest is building an order of several rooms | book the rooms separately |
See how codes perform#
The Usage report button in the Room promo codes block opens Bookings with promo codes — from bookings of the past and next 12 months. Columns: Code, Bookings, Nights, Discount, Revenue, Cancelled.
On the guest bill, discounted nights carry the note "promo code {code} −{amount}".
Change or delete a code#
- Change — the Edit button next to the code. Bookings already made keep the terms they were sold with.
- Pause — untick Accept the code.
- Delete — Delete and the confirmation "Delete the code {code}?". Guests can no longer apply it; bookings already made keep their discount.
What is not there yet#
- A promo code on an order of several rooms — one-room bookings only.
- Entering a promo code at the front desk when booking from the admin. For a discount on a front desk booking, change the nightly rate with a reason — see Hotel booking actions.
- Promo codes for bookings from Booking.com, Airbnb and other platforms.
- A promo code mark on the booking card — the code is visible in the usage report and on bill lines.
- A per-night fixed discount — the amount is deducted once per booking.
- Derived rate plans inheriting the code's plan terms — tick each plan.
Related articles#
- Direct booking on the website: one or several rooms
- Hotel rates: seasons, rate plans, guests, restrictions and cancellation
- Pricing rules and the Revenue screen
- Hotel booking actions
FAQ#
A guest entered the code, saw the discount, then got a refusal when booking. Why?#
The "Uses per guest" limit is checked only when the booking is submitted — when the system knows the guest's phone or email. Most likely the guest has already booked with this code.
The discount is 20 %, but the guest got less. Is it a bug?#
Check "Nights from/to" and "Discount cap". The discount applies only to nights inside the code dates and never exceeds the cap.
Can I give a promo code for all bookings, including front desk ones?#
No, a promo code is entered by the guest on the website. For a discount at the front desk, change the nightly rate in the booking with a reason; for regular companies, create a contract — see Company contract rates and agent commission.
A guest cancelled a booking. Can they apply the code again?#
Yes. A cancellation returns the code use. A no-show does not.
Why does a fixed-amount code not work on one of the rate plans?#
That rate plan is sold in another currency. The promo amount is in the hotel currency, so the code does not apply to such a plan. Use a percentage code.