Revenue → Coupons in the sidebar, then New.
The code itself
Codes are stored in capitals. Type summer25 and it is kept as SUMMER25, which the form shows you under Stored as before you save. Customers can type it either way.
Give it a name as well — that is what you see in your own lists, so make it the one you will recognise in six months.
What it takes off
- Percentage — a proportion of the hire.
- Fixed amount (NZD) — a flat sum off.
When it can be used
Everything here is optional, and each condition narrows the coupon further:
- Valid from / Valid until — when the code can be redeemed. This is about when the customer books.
- Pickup from / Pickup by — which hires it applies to. This is about when they travel.
Those two are genuinely different, and mixing them up is the usual reason a promotion behaves oddly. "Book by the end of the month, travel any time in winter" is a valid-until date plus a pickup window.
- Minimum hire value — note this is ex GST, so set it against the GST-exclusive figure, not the price the customer sees.
- Minimum hire length (days) — keeps a discount off one-night hires.
Stopping it being over-used
- Max redemptions (total) — the whole promotion stops after this many.
- Max per customer — set to 1 for a genuine one-per-person offer.
Leaving either empty means no limit.
Switching it on and off
The status field controls whether the coupon is live. Use it to pause a promotion rather than deleting the coupon, so your reporting keeps the history of what was redeemed.
If it did not work
- The customer says the code is not recognised. Check the status is live, and that today sits inside the valid-from and valid-until window.
- It is rejected on a booking that looks eligible. Work through the conditions in order: minimum hire value is ex GST and catches people out; then minimum days; then the pickup window.
- It stopped working part-way through a promotion. You have probably hit the total redemption cap.