What you are seeing
The code scans, the shop page or till opens, but the coupon does not apply: no discount, an invalid-code message, or a full-price total. The scan worked, so the fault sits in the coupon itself: the code it carries, the offer behind it, the dates, or the rules that decide who qualifies. Coupon failures are expensive, because the visitor did the work and got nothing. The fix is to trace the coupon from the scan to the till and to find the rule or value that rejects it.
Likely causes
1.
Coupon code mistyped in the payload — A wrong character in the encoded coupon code sends a code the till does not recognise. Test: decode the payload and compare the coupon code with the offer record.
2.
Offer expired or not yet started — A coupon scanned outside its valid dates is correctly rejected by the till. Test: check the offer start and end dates against the scan date.
3.
Coupon already redeemed — A single-use coupon that was already used is correctly rejected on the next scan. Test: check the redemption record for the coupon code.
4.
Eligibility rule blocks the visitor — A minimum spend, a product exclusion, or a location rule can reject a coupon that is otherwise valid. Test: read the offer rules and compare them with the basket.
5.
Till or site not reading the coupon field — A coupon can fail when the till or the site does not pick up the code from the QR journey. Test: enter the same coupon code manually and see whether it applies.
Step-by-step fix
1. Decode the payload and write down the exact coupon code it carries.
2. Compare the code with the offer record, including the dates and the rules.
3. Check whether the coupon was already redeemed.
4. Test the same coupon code by entering it manually.
5. Fix the coupon, the offer, or the code, whichever is at fault.
6. Retest with a real redemption on two devices before relaunching.
Putting this into practice
In practice, the manual-entry test is the fastest way to split this problem in two. If the code works when typed, the QR journey is at fault. If it fails when typed, the offer is at fault. That single test tells you which side to fix. Keep a short note of what you tested, what failed, and what you changed, so the next person starts from evidence rather than guesswork. A fix that is written down survives staff changes and reprints; a fix that lives only in memory gets repeated.
Common mistakes to avoid
- Testing a coupon QR code by scanning it, without ever completing a redemption.
- Reprinting the full run before a single proof passes, which turns one failure into many.
- Testing on one phone in ideal conditions instead of two phones in the real conditions where a code that scans but the coupon does not apply will be used.
- Changing the artwork and the placement at the same time, so you cannot tell which change fixed a code that scans but the coupon does not apply.- Skipping the proof test because the change looked small, when small changes cause most repeat failures.
Quick checklist
- The decoded coupon code matches the offer record
- The offer is within its valid dates
- A real redemption applies the discount
- The corrected proof passes on two phones in the real conditions
- The fix is recorded in the job file so the next reprint starts from a proven setup
- Every printed copy is checked against the approved proof
- The proof is retested after any later change to the link, design, or placement
Related tools and guides
- [coupon QR code generator](/coupon-qr-code-generator)
- [bulk coupon QR generator](/bulk-coupon-qr-generator)
- [QR expiry checker](/qr-expiry-checker)
- [QR batch validator](/qr-batch-validator)
- [QR scan log](/qr-scan-log)
- [QR safety checker](/qr-safety-checker)