The short answer
A coupon QR code should point to a page that shows the offer and a short promo code, not hold the discount inside the pattern. Add an expiry date or a scan limit so the offer ends on schedule, and use one code per placement to see where it works. A scan count measures interest; redemptions are only counted at your checkout.
How to make a QR code coupon
Create the offer page
Build a simple mobile page that states the offer, the terms and a promo code that the cashier or checkout can recognize. Keep the code short enough to read aloud.
Make a dynamic code for it
Save the page URL as a dynamic code. Name it after the placement, such as “Receipt coupon – March”, so reports are readable later.
Limit the offer
On the Pro plan, set an expiry date, a maximum number of scans, or both. This is the practical defence against a coupon being screenshotted and shared widely.
Print it where the decision happens
Put the code on the receipt, the bag, the table card or the next-visit card, close to the moment of purchase. Add one line: what it is worth and when it ends.
Match scans to redemptions
Compare scans with the promo codes your till or webshop records. The ratio tells you how many scanners actually bought.
Size, distance and placement
- Best code type
- Dynamic URL code to an offer page, with expiry or scan limit (Pro)
- Typical scan distance
- Receipt or card: 20–30 cm. Counter sign: up to 60 cm
- Minimum printed width
- Receipt or card: 2 cm (0.8 in). Counter sign: 5–6 cm (distance ÷ 10)
- What goes in the code
- Only a link. Put the discount logic in your checkout so it cannot be forged by editing a pattern
- Offer wording
- State the value and the end date beside the code, for example “10% off until 30 June”
- Receipts
- Thermal paper prints coarsely and fades. Print the code larger and keep it dark and simple
- What to measure
- Scans per placement, then promo-code redemptions at checkout
Why dynamic matters for coupons
A coupon is the clearest case for a dynamic code, because it has to end. With a dynamic code you can set an expiry date or a scan cap, swap the offer for the next one without reprinting the receipt roll, and read results per placement. A static code cannot expire: once printed it keeps opening the same page forever. If a static link must be used, the page behind it has to enforce the end date itself.
Common mistakes
Tip: once an offer ends, do not leave the code dead. Point it at the next offer or at your main menu, so coupons already in drawers and wallets still lead somewhere useful.
Frequently asked questions
Can a QR code coupon expire?
Yes, if it is a dynamic code with an expiry date, which is a Pro plan control. After that date the code stops redirecting. You can also cap the number of scans.
Can a QR code be used only once?
You can set a maximum scan count, such as one, but a scan is not the same as a purchase. For true single-use coupons, use unique promo codes redeemed at your checkout.
How do I track how many coupons were redeemed?
Scan counts show interest. Redemptions are recorded where the sale happens, so give each offer its own promo code and compare the two numbers.
Should I put the discount code in the QR code itself?
No. Encode a link to an offer page instead, so you can change or end the offer and nobody can forge a discount by editing a pattern.