Discount codes and vouchers
The difference between a discount code and a voucher, when to use which, and how to set a percentage, a validity period and a usage limit.

This article creates a discount code: a word your visitor types in that makes their order cheaper. You also learn where the line with a gift voucher runs, because those two are constantly mixed up. Allow ten minutes.
What is a discount code?
A discount code is a rule with a name. The rule says, for instance:
"ten per cent off" or "two euros off". The name is the word your visitor types
in at checkout, MEMBERS10 for instance.
Important: a discount code is not money. It does not run out because somebody uses it. A hundred people can use the same code and get their discount every time, until you set a limit. That is precisely why that limit always has to be there — we come back to that below.
Discount or gift voucher?
This is the distinction that goes wrong most often. They resemble each other only at the moment of checkout, where they are typed into the same box.
| Discount code | Gift voucher | |
|---|---|---|
| What it is | A rule: 10% less, or 2 euros off | Prepaid money: a balance |
| Who may use it | Anyone who knows the code | Usually one person, the recipient |
| Does it run out | No, until your end date or your maximum | Yes, the balance is used up |
| Is money already in | No, it costs you money | Yes, somebody has paid for it |
| Can you use it in parts | No, it applies per order | Yes, the remaining balance stays |
| Is it on your balance sheet | No | Yes, as a liability |
| Typical for | A promotion, a members' discount | A gift, a way of putting things right |
Three examples from association life
The members' discount. Your local history society gives members two euros
off every guided tour. This is a discount code: it is a rule that applies
to a group of people, it does not run out, and you put no money against it.
Code: MEMBERS. Limit it to your members by only putting it in your members'
magazine, and put an end date on it that coincides with the end of your
working year.
The early-bird discount. Whoever buys their ticket for the dinner evening
before 1 March pays three euros less. This is a discount code with an end
date, and that end date is the whole point. Code: EARLY26. After midnight on
28 February it no longer works, and you do not have to do anything yourself on
that day.
You can, incidentally, do the same thing without a code: give your product a price that applies until 28 February and a second, dearer price that starts after that. See Products and prices. The difference: with a price the discount applies to everyone, with a code only to whoever knows it.
Putting things right. A visitor stood in the rain for an hour because the guide did not turn up. You want to put something right. This is not a discount code but a gift voucher: you give one person an amount they may use up whenever they like. A discount code would turn out badly here — they could forward it to their whole street. See Gift vouchers; that is also where you can read how to issue a voucher by hand.
Rule of thumb: if money has come in, or if you are personally giving somebody something back, it is a gift voucher. If you are running a promotion, it is a discount code.
What you need beforehand
- An account with the Owner or Administrator role.
- At least one product with a price, otherwise there is nothing to deduct.
- An idea of your promotion: how much discount, for whom, and until when.
- Ten minutes.
If you come across a word you do not know, it is in the glossary.
Creating a discount code
Step 1 — opening the form
- In the menu on the left, click Sales and then Discount codes.
- You now see the list of your codes: the code itself, the type, the value, the validity and how often it has been used.
- Click New discount code at the top right.
Step 2 — the code and the value
The first block is called The code.
| Field | What you fill in |
|---|---|
| Code | The word your visitor types in. At most forty characters. |
| Type | Percentage or Fixed amount. |
| Percentage | Appears with Percentage: 10 or 12.5. |
| Amount | Appears with Fixed amount: 5 or 5.50. |
| Active | Switched on. Off means: the code is refused. |
The code is stored in capitals by itself, and spaces at the front and the
back are trimmed off. If your visitor types members10, that works too.
A percentage is stored internally in basis points: 10% is 1000, 12.5% is 1250. That way 12.5% is still exactly 12.5% after a thousand orders. A fixed amount is stored in whole cents: 5.50 euros is 550 cents.
Note: a code has to be unique within your organisation, not across the
whole platform. Another association may perfectly well use MEMBERS10 too;
your codes stand apart from each other.
Step 3 — validity and limits
The second block is called Validity and limits, with the sentence underneath: set at least one limit.
| Field | What it does |
|---|---|
| Valid from | Before this moment the code is refused. Empty means: always. |
| Valid up to and including | After this moment it is refused. Empty means: no end. |
| Maximum number of times | Across all visitors together. After that it is used up. |
| Per visitor | How often one visitor may use it. A visitor is recognised by their e-mail address (capitals don't matter); the shop has no accounts. Once used up, the buyer sees at payment why the code was removed. |
| From an order amount of | Below this amount the code does nothing. It looks at the total of the whole order. |
| Only for these products | The discount is only calculated on these products or events; the rest of the order pays the normal price. Empty means: everything. |
Note: Valid from and Valid up to and including are not dates but moments, with a time attached. If you set the end date to 28 February, a time is attached by default. If you want your early-bird discount to work throughout the 28th, set the time to 23:59.
The two limits you can rely on most firmly are the validity period and the maximum number of times: those are checked on every attempt. If you want to be sure that a promotion costs you at most a certain amount, set a maximum number and work it out: a hundred times three euros is three hundred euros.
Step 4 — saving
Click Create. Your code is in the list straight away and works from now on, unless you have set a Valid from in the future.
Test it once yourself in your own ticket shop before you send it round. A code that turns out not to work on the evening of your members' meeting costs more time than that one test.
How do you come up with a good code?
A code is copied from a piece of paper, often by somebody in a hurry on a phone. It should be able to stand up to that.
What a good code does:
- Short. Four to ten characters.
MEMBERS10is good,MEMBERSDISCOUNTWORKINGYEAR2026is not. - Pronounceable. You are going to have to dictate it over the phone.
- Without confusing characters. No
0next to anO, no1next to anlor anI. "Was that a nought or an o?" is exactly the phone call you do not want. - With a year or a season in it when you use it again every year:
EARLY26instead ofEARLY. That way you still know next year which code was from when, and last year's code can quietly stay in place. - Without spaces, punctuation or accents.
What you had better not do:
- The name of your association as a code. People guess that.
- Something that looks suspiciously like another word (
SUPPORTandSUPPORTS). - The same code for two promotions. You then no longer know which of the two caused those three hundred redemptions.
A few codes that work well in practice: MEMBERS10, EARLY26, SCHOOL,
NEIGHBOURS, XMAS26, WELCOME.
Why a code should always be limited
This is the most important paragraph of this article.
A discount code does not run out. If you put no limit on it, it keeps working until you switch it off yourself. And codes leak. Somebody puts your members' discount on a bargain forum, somebody shares the screenshot in a group chat, somebody forwards the email to their colleagues. That is not ill will, it is simply what happens to codes.
That is why the form expressly asks for at least one limit. It does not stop you if you forget — all the more reason to do it yourself. Choose one that suits your promotion:
| Your promotion | Limit on |
|---|---|
| Early-bird discount | An end date |
| Members' discount | An end date per working year, and a maximum number |
| Promotion in a newspaper or leaflet | A maximum number |
| Discount on one event | The products of that event, plus an end date |
| Discount on large orders | A minimum amount |
In the list of codes there is a Used column. If you have set a maximum, it
says 12 / 100. That column is not there for the statistics but so that you
can see whether a code has leaked: three hundred redemptions on a members'
discount for an association with eighty members means that it is knocking
about somewhere.
If you notice that, the quickest answer is: open the code and switch Active off. It is then refused, even within its validity, and you are not throwing it away — you can still see how often it has been used.
The counter, incidentally, only goes up when payment has actually been made in your ticket shop and the code really gave a discount. Somebody who types the code in and then drops out does not use up your maximum.
What your visitor sees
Your visitor types their code on the checkout page of your ticket shop, in the Discount code or gift voucher field.

It is one field for both, and that is deliberate: somebody with a slip of paper in their hand does not always know whether what is on it is a discount or a voucher, and does not need to know either. Behind the scenes it is first checked whether it is a discount code, and then whether it is a gift voucher.
They may also stand side by side. If your visitor first types their discount code and then their gift voucher, the discount comes off the subtotal first and the voucher then covers what is still to be paid. If a balance is left on the voucher, that is mentioned alongside.
Removing a code is possible too: there is a remove link next to it.
The discount is spread across the order lines before the VAT is calculated. You do not notice that as a visitor, but it is the reason your VAT adds up when your order contains food at 6% and drink at 21%.
At the desk
The same codes work at the till. The staff member types the code into the Discount code field, and the discount simply appears on the till receipt. See The counter till.
At the desk the till checks fewer things than your ticket shop: only whether the code exists, is set to Active, falls within its validity and has not reached the maximum number. Only for these products, From an order amount of and Per visitor do not apply there: the discount comes off the whole till receipt. A use at the desk does not count in the Used column either. If you want a code that stays strictly limited, do not give it to your desk staff.
When a code is refused
The message your visitor gets is deliberately general: we do not know this code, or it is no longer valid. That is on purpose — a precise message would help people to guess codes.
These five things are checked:
- Does the code exist within your organisation?
- Is it set to Active?
- Is now within Valid from and Valid up to and including?
- Has the maximum number of times not yet been reached?
- Does the order reach the minimum amount?
If the order does not reach the minimum amount, or it contains none of the products from Only for these products, the code is accepted but produces nought euros. That is confusing for your visitor; so always mention the minimum amount and the products in the text in which you announce the code.
Per visitor is only checked when your visitor clicks to pay, because only then is their e-mail address known. If it has been used up, the code is taken off and they see why.
A discount can never be more than the subtotal: a code of fifty euros on an order of twelve euros makes that order free, not negative.
Common mistakes
Creating a code without any limit at all. It then works for all eternity for everybody who knows it. Set at least an end date.
Setting the end date to the day itself with the default time attached. Your code then stops halfway through that day. Set the time to 23:59.
Filling in a percentage as a decimal.
0.1 instead of 10. You get the message: fill in a percentage, 10 or 12.5
for instance.
Using a discount code where a gift voucher belongs. If you are personally giving somebody something back, use a gift voucher. A discount code can be forwarded.
Deleting a leaked code instead of switching it off. Switch Active off. Deleting also wipes the history, and you need that to explain why three hundred discounts were sold.
What if …
What if my code does not work?
Work through the five checks above, in that order. Then look in the list: if
Used already says 100 / 100, it is simply used up.
At the top of the list there is also a Usable now filter. Switch that on: if your code is not among them, you know that it is down to the validity or to the Active tick.
What if my code is on a bargain forum?
Open the code and switch Active off. Then create a new code with a different name for the people who are entitled to it, and this time put a maximum number on it.
What if a visitor says they should have had a discount?
Open the order and look in the Amounts block under Discounts and vouchers. If a code was used, it is shown there too, under Discount code. If the discount says nought, they did not type the code in, applied it too late, or their order did not meet the code's conditions. If you want to put it right, give them a gift voucher for the difference instead of recalculating the order. See Gift vouchers.
What if I want to run the same promotion again next year?
Leave the old code in place with its end date and create a new one with the year in it. You then keep your figures from last year, and you can compare the two promotions.
What if I want only one particular person to get a discount?
That is not a discount code. Use a gift voucher: it is in a name, has a balance, and cannot be forwarded without you noticing it from the history.
Frequently asked questions
Can a discount code and a gift voucher go on one order together? Yes. The discount comes off the subtotal first, then the voucher covers what is left.
Does a code count as soon as somebody types it in? No. The counter only goes up when the order has been paid in your ticket shop. Whoever drops out does not use up your maximum.
Can a discount bring an order below nought? No. A discount is never more than the subtotal. What is left over does not stay in place for a next time — a gift voucher is what that is for.
How many codes may I create? As many as you like. Do keep them apart with clear names, because the list is sorted on code and not on promotion.
Can I see which orders were paid with which code? You can see per code how often it has been used. With an order you can see in the Amounts block, under Discounts and vouchers, how much discount came off, and with which code, under Discount code. A gift voucher that was used is shown there too. See Following up orders.
Updated on 2026-09-24
Read next
-
Selling and ticketing
Events
Setting up a one-off event — dinner evening, quiz, party or performance: choose the date a...
-
Selling and ticketing
Sharing and embedding your ticket shop
Finding your link and spreading it — on your site, in a newsletter, on social media, with...
-
Selling and ticketing
Time slots
Sell per hour or per part of the day, with a capacity that still adds up when someone is s...
Still stuck? Write to us at support@passavo.eu