Rentalbuddy

Create and manage promo codes

10 min read

Promo codes are discount codes your customers type in themselves when they book. You create them under Promo codes in the menu.

Two things are worth knowing before you start, because both surprise operators:

  • You do not need to create anything in Stripe. When you save a code, Rentalbuddy creates it in your connected Stripe account for you — both the discount and the code itself. Never create a promotion code by hand in Stripe and expect it to show up here; make it in Rentalbuddy.
  • The code works across all your locations. A code is not tied to one location or one product. Anyone booking anywhere on your account can use it.

Create a discount code

  1. Open Promo codes in the menu.
  2. Press Create promo code.
  3. Under Information, leave Type as it is — Promo Code is the only type you can create today.
  4. Fill in Code. This is what the customer types at checkout. The helper text under the field says it plainly — "Must be unique across all your locations. Customers will enter this code at checkout."
  5. Choose a Discount type:
    • Percentage — a percentage off the whole order. Fill in Percent (1 to 100).
    • Fixed amount — a set sum off the whole order. Fill in Discount amount, in your account currency.
  6. Under Rules, set Valid until if the code should stop working on a date. Leave it empty and the code never expires — "Leave empty for no expiration date."
  7. Set Max usage total if the code may only be used a limited number of times. Leave it empty for unlimited; the field itself shows Unlimited until you type something.
  8. Leave Status of the code switched to Active.
  9. Press Save. You get a Created! message and the code appears in the list.

Whichever discount type you pick, the discount applies to the whole order, not to a single product. There is no way to say "20% off helmets only".

Writing the code itself

Keep it simple: plain letters A–Z and digits, no spaces, no punctuation. Codes with Swedish or other accented characters (å, ä, ö) have caused failures, and the message you get back is the unhelpful Couldn't create promo code — it does not tell you which field was the problem. If saving fails and the fields all look filled in, retype the code with plain letters and numbers only and try again.

If the code is already in use you get a clearer message on the field: This promo code already exists. Please choose a different code. Codes must be unique across your whole account, including codes you deactivated earlier.

Messages you may see while filling the form

  • Enter a code — the Code field is empty.
  • Select a discount type — no Discount type chosen.
  • Enter a percentage from 1 to 100 — the Percent value is outside that range.
  • Enter an amount greater than 0 — the Discount amount is zero or blank.
  • Please fill out a discount — no discount value at all.

What "valid until" actually means

This is the single most misread setting.

Valid until is about when the customer books, not about when they rent. It is the last moment the code can be entered at checkout. A customer booking on the last day the code is valid can still book a rental that takes place months later — the rental dates are irrelevant to the code.

So a code with Valid until set to 30 June:

  • Booking made 29 June for a rental in August — the code works.
  • Booking made 1 July for a rental tomorrow — the code does not work.

There is no "valid from" date. A code starts working the moment you save it. If you want a code to go live later, create it later, or create it inactive and switch Status of the code to Active when the campaign starts.

Usage limits

Max usage total is a total across all customers, not per customer. Set it to 50 and the code stops working after the fiftieth booking that used it, whoever made them. Leave it empty and it can be used any number of times.

There is no per-customer limit and no per-day limit in the form today. If you need a code that only one person can use, make a unique code for that person.

After you save — what you can and cannot change

Once a code exists, open it from the list to see two tabs: Settings and Usage.

On Settings, almost everything is locked. Type, Code, Discount type, the discount value, Valid until and Max usage total are all fixed at creation and greyed out afterwards. The one thing you can change is Status of the code, switching between Active and Inactive.

That means:

  • To stop a code immediately, open it, switch Status of the code to Inactive and press Save. It stops working for customers at once.
  • To change a discount, an expiry or a limit, you cannot. Deactivate the old code and create a new one.
  • There is no delete. Codes stay in the list; use the filter to hide the ones you are done with.

A code that has already expired cannot be switched back on — the toggle is disabled once the expiry date has passed.

Finding codes in the list

The list has a search box, Search by code, which matches the code text.

Next to it is a Filters dropdown:

  • Active and inactive — the default. Everything except expired codes.
  • Active — codes that are switched on and not past their expiry.
  • Inactive — codes switched off but not expired.
  • Expired — codes that are switched off and either past their expiry date or out of uses.
  • Show all — everything.

The columns are Type, Code, Discount, Times used, Validity Period, Status and Actions. Validity Period shows the date the code was created, then either the expiry date and how many days that is, or Ongoing if there is no expiry. The Discount column shows a percentage or an amount; Value missing means the code has no discount attached and will not do anything.

In Actions you can copy the code text to your clipboard — Copy promo code text — which is handy when you are pasting it into a newsletter.

Very large accounts should note that the list loads the most recent codes rather than an unlimited history, so search for a specific code rather than scrolling if you have created hundreds.

Seeing who used a code

Open a code and switch to the Usage tab.

At the top you get three figures:

  • Orders with this code — bookings in Rentalbuddy that used the code.
  • Uses in Stripe — Stripe's own redemption count.
  • Total discount — the money given away in total.

The two counts can differ, and that is expected. The page says so itself: "Orders across all locations on your account that used this promo code. The Stripe count may differ — for example if a checkout was cancelled, changed in admin, or recorded differently in Stripe."

Below that is the list of the actual bookings, with Created, Name, Order No, Start, Value, Discount, Payment Status, Status, Channel and Location. Click a row to open that booking.

Two switches change what you see:

  • Include canceled bookings — off by default, so cancelled bookings are hidden.
  • Show current location only — narrows the list to the location you are working in. When it is filtering, a caption tells you how many of the total you are looking at.

If nobody has used the code yet you see No bookings have used this promo code yet.

The 100% test code trick

This is the fastest way to test your whole booking flow end to end without paying anything or refunding yourself afterwards.

  1. Create a promo code with Discount type set to Percentage and Percent set to 100.
  2. Give it something nobody will guess, and set Max usage total to a small number such as 1 or 2.
  3. Make a real booking in your own booking widget and enter the code.

Because the order comes to zero, the payment step still appears, but with a zero total Stripe asks for no card details — the customer just confirms. You get the confirmation email, the PIN code, the lock behaviour — everything a real customer gets, with no money moving and nothing to refund.

Afterwards, open the code and set Status of the code to Inactive so nobody stumbles onto it.

What the customer sees

In the booking widget, the customer enters the code in the field labelled Campaign code in the cart, then confirms it. If the code is wrong, expired, switched off or used up, they get The campaign code is not valid — the same message in every case, so it will not tell them which of those it was.

On the booking in admin, an applied code shows in the price summary as a discount line reading Promo code followed by the code itself and the discount in brackets, for example Promo code SPRING25 (25%).

The code shows as active but doesn't work at checkout

Checkout checks the code against Stripe, not against the list you see on the Promo codes page — so a code can look fine in admin and still be refused. Whatever the cause, the customer always gets the same The campaign code is not valid message (see What the customer sees above), so their report won't tell you which of these it was. Work through them in order:

  1. Status of the code. Open the code and confirm the toggle says Active. Deactivating and reactivating takes effect immediately.
  2. Valid until. It is the last moment the code can be entered at checkout, not the rental date — see What "valid until" actually means. A booking made the day after expiry is refused even for a rental inside the dates you had in mind.
  3. The usage limit. On the Usage tab, compare Uses in Stripe with your Max usage total. Stripe's own count is the one that decides at checkout, and it can run ahead of Orders with this code — a code can be used up in Stripe while the admin figure still looks under the limit.
  4. Exactly what the customer typed. The widget sends the text as typed — a stray space before or after the code is enough to make it fail. Ask the customer to retype it with no spaces; codes written in plain letters A–Z and digits (see Writing the code itself) leave the least room for this.

If all four check out, enter the code yourself in your own booking widget — that runs the exact same check the customer's browser does, and tells you whether the problem is the code or something on their side.

Gift cards and punch tickets

You will see the words Gift Cards and Punch Ticket in places in the system, and older answers from support may refer to them. Neither can be created todayPromo Code is the only type the form offers. If you want to sell something gift-card-like right now, the usual workaround is to issue a single-use promo code with a Fixed amount discount and a Max usage total of 1, and take payment for it separately.

Common situations

A code stopped working and I don't know why. Check three things on the code, in this order: is Status of the code set to Active, is Valid until in the past, and has Times used reached Max usage total. Any one of the three switches it off for customers.

I need to change the discount on a running campaign. You cannot edit it. Set the old code to Inactive and create a new code with the new discount.

A customer says the code did not apply. Open their booking and look for the Promo code line in the price summary. If it is not there, the code was not entered at checkout — a code cannot be added to a booking afterwards, so refund the difference manually if you want to honour it.

I want a code for just one location. Not supported. Any code works at every location on your account. The nearest thing is to hand a code out only to that location's customers, and use Show current location only on the Usage tab to see where it was actually used.

I want a code for one product only. Not supported either. The discount always applies to the whole order.

Related guides