A customer shows a coupon on their phone. Your staff doesn't know: is it valid? Has it already been used today? Is it even real?
Without a way to check, they guess. They give the discount because saying no feels worse than losing money. That's where most in-store coupon campaigns start bleeding margin, quietly, from day one.
This article shows exactly how QR code scanning solves that: what happens when a customer presents a code, what your staff sees on their phone, and how the whole thing works without touching your POS system. If you're planning a full in-store promotion around this, see our complete guide to running in-store promotions without POS integration.
Not every campaign needs QR scanning. If you're running a simpler promotion, a "Mark as Used" button might be all you need. See Mark-as-Used vs QR code scanning to figure out which fits your setup.
With paper coupons or static discount codes, there's no reliable way to check any of that. Staff make a judgment call, and most of the time they just give the discount because holding up the line isn't worth it.
Static codes make it worse. One person shares a screenshot in a group chat, and suddenly fifty people are using the same "exclusive" offer. Your staff can't tell the difference between the original recipient and the fiftieth copy.
The obvious fix is a POS integration, but that's overkill for most promotions. You don't need to rewire your checkout system just to run a weekend campaign or a loyalty reward. You need something that sits between "trust the paper" and "rebuild your infrastructure."
The whole process is five steps. No special hardware, no POS changes.
The key piece is that each QR code is unique to one person. When staff scans it, the scanner already knows who it belongs to, whether it's been used, and whether it's still within the valid date range. No guessing required. For a broader look at how this fits together, see the QR code redemption system overview.
You send each customer a unique QR code through your existing email platform. The code arrives as part of a normal campaign message. Each recipient gets their own code that's tied to them specifically.
The customer walks in, pulls up the email on their phone, and shows the QR code to your staff. Nothing to download, nothing to print. They just hold up their phone.
Staff opens the Coupon Carrier scanner on their own phone. It's a mobile website, not a native app, so there's nothing to install. They point the camera at the customer's QR code and the scanner reads it instantly.
The scanner checks the code in real time and shows one of three results: valid, already used, or expired. The status is shown with clear color coding. There's zero ambiguity.
If the code is valid, the scanner marks it as used. The code is locked, and the customer gets their discount. The whole interaction takes a few seconds.
The scanner interface is intentionally simple. Staff opens the scanner page on their phone, points the camera, and gets an immediate result. There's no login flow, no navigation to learn, no training manual needed.
After scanning, the result comes in three flavors:
Green means go, red means stop, gray means it's too late. Your staff doesn't need to interpret anything. The scanner shows the color, the status, and that's the answer. It runs in any phone browser, so there's nothing to install.
A redeemed code is locked permanently. Any future scan shows "Used" with a red indicator, whether it's five minutes later or five days later. The system also logs every redemption with a timestamp, so you have a full record of which codes were actually used and when. That's the data you need to measure how a promotion actually performed.
Static codes will get shared. It's not a risk, it's a guarantee. One person screenshots the code, drops it in a group chat, and suddenly your "exclusive 20% off" is being used by people who never signed up for anything. Without validation, you won't even know it's happening until the numbers don't add up at the end of the month.
Unique codes make this impossible. Each person gets their own QR code tied to their email address or phone number. A screenshot of someone else's QR code won't work because the scanner checks who the code was assigned to. And once it's scanned and marked as used, it's locked. Nobody else can use it, and the original person can't use it again.
This is the core difference between a QR code that's just a picture and a QR code that's actually tied to a redemption system. The picture can be copied endlessly. The tracked code can only be used once.
Getting this running doesn't take long. Here's the high-level sequence:
We have a test voucher that sends you a real single-use QR code. Open it on your phone and go through the exact same flow your customers would: receive the code, see the QR, and watch what happens when it gets scanned.
If you're running promotions across multiple locations, this approach works out of the box. Every location uses the same scanner setup. Staff at any store can scan and validate codes without syncing anything between systems.
There's no hardware to buy and no app to install. Your staff opens a webpage on whatever phone they already have. That's the entire technology requirement. For pop-up events, seasonal campaigns, or any situation where you need coupon control but don't want to touch your register system, this is the practical answer.
For a broader look at running in-store promotions with this setup, including campaign planning and operational tips, see How to Run an In-Store Promotion Without POS Integration.
Get a test voucher, open it on your phone, and go through the same experience your customers would. Then check the setup docs when you're ready to build your own.