Materials
Coupons, bonuses and local points: why a discount needs a QR code
A paper discount is a promise nobody can count. You do not know how many were printed, how many came back, or how many people copied one at home. A code gives the promise a number and an account.
The problem is not the discount, it is the bookkeeping
Almost every local business has tried paper coupons. Almost every one of them hit the same wall: the print run is unknown, reuse cannot be checked, and once the campaign is over nobody can say what actually worked.
A QR code does not solve that by itself. What solves it is the record behind the code — the one that says how many people the promise belongs to and whether it has already been used.
So the better way to think is not "a QR coupon" but "an account the code leads to". Paper shows, the code checks.
Three different things everyone calls a coupon
This is where the confusion starts, and it is exactly what costs money. These are three mechanics with very different price tags.
What has to live on the server, not in the print shop
All the rules need deciding before printing. After printing you cannot change them — you can only explain to people why it does not work the way they read it.
- How many times it can be redeemed. Once per code, once per person, or unlimited — these are three different campaigns.
- Until which date. Not "while it lasts" but a concrete number. An expired code should say so politely rather than stay silent.
- Where it works. One location, three locations or the whole street. The cashier should see the list, not guess.
- How to stop it. One button that kills the entire batch. You need it exactly once — but precisely when everything is on fire.
- Who redeemed it and when. A log. Without one, a dispute with a guest always ends badly for you.
What it looks like at the till
Everything is settled in five seconds, which is exactly why the mechanics have to be boring and predictable.
- The guest shows the code on a screen or on a flyer.
- The cashier scans it with a phone — no extra hardware needed.
- A short page opens: valid, until which date, how many are left.
- The cashier taps "redeem". The code becomes invalid immediately.
- The log records the location, the time and the discount amount.
The third step is the one that matters most. If the cashier only sees "something opened", they cannot decline politely and cannot explain what is wrong. The page has to answer in words, not in colour.
Where money most often leaks away
A paper coupon with no record
You do not know the print run. Somebody printed twenty more at home. At the end of the campaign it is impossible to say whether it worked or whether you simply handed a discount to your regulars.
A code backed by a record
You can see how many were issued, how many were redeemed and at which location. A batch can be stopped with one click. A discount stops being a gift handed out blind.
A simple question before launch: if someone photographs this coupon and posts it in the neighbourhood chat, how many people can use it? The answer should be "none".
A shared point for several businesses
The interesting part starts when several businesses on one street agree to work together. A café, a bakery and a bookshop can run one shared point, and the guest moves between them instead of picking one programme.
But a shared point is above all an agreement about money. Who pays for the reward, how the cost is split, who can see the list of participants, and what happens if one location leaves halfway through. Those questions get settled on paper, before the first print run.
Technically it is simple: one code in a window leads to a page showing the rules, the balance and the nearest locations. The hard part is always organisational.
Play money and real money are not the same thing
Levels, collections, "visit three places and get a gift" — all of this works well when the reward is clear within three seconds. If a guest has to read the rules, they will not.
And one careful note: do not call your bonuses electronic money if by law they are not. "Point", "discount", "gift" is one thing. "Currency", "wallet", "transfer between people" is something else entirely, with different rules and different permissions.
The simplest wording that creates no false expectations: this is a discount within our network, not a means of payment.
Six mistakes almost everyone makes
- Printing the code before deciding the redemption limit and the end date.
- Using one code for the whole campaign, then wondering why "the wrong people" use it.
- Not showing the cashier the state of the coupon in words — only a tick or a colour.
- Forgetting the button that kills a batch, then remembering during a scandal.
- Keeping no log and arguing with a guest who has no proof either.
- Promising "points forever" without counting how many are already outstanding.
Try it with a single café
Do not start with a whole neighbourhood. Take one location and one campaign you can explain in a single sentence.
In the generator, create a dynamic code pointing to your terms page. Make sure you can change that page without reprinting the flyers — that is what saves you when the terms need adjusting on day two.
In QR Studio, build a layout for the actual medium: a receipt, a window sticker, a flyer. A code on a receipt and a code on glass scan very differently, and it is worth seeing that before printing.
Then walk the guest's path with the scanner: look at what a person sees before the page opens. If it is unclear where the code leads, some of them simply will not tap it.