How to make a QR code loyalty card (and why you shouldn't DIY it)
Free QR generators are easy. Building a loyalty system staff trust is not. Here is the honest DIY path — and what to do instead.
Search "how to make a QR code punch card" and you'll get a pile of tutorials: Canva templates, free QR generators, Google Sheets, sticky notes behind the register. Some of them work for a weekend. Almost none of them survive a busy Friday.
This post walks through the DIY path honestly — what it takes, where it breaks — and what "done right" looks like if you want a system your staff can run without you babysitting it.
What people mean by "QR code loyalty"
There are three totally different things people build under that name:
- A static QR that opens a form. Customer fills out a Google Form every visit. You tally points in a spreadsheet.
- A static QR that opens a link to "punch me." Often a single URL that any phone can hit — including phones that never bought anything.
- A real loyalty system with rotating codes, per-customer cards, and staff punch. Customer has their own card; merchant scans or punches; redemptions are tracked.
Only #3 is loyalty software. #1 and #2 are DIY experiments with a QR sticker on them.
The DIY path (and the real time cost)
Step 1: Generate a QR
Any free generator works. Point it at a Form, a Notion page, a Typeform, whatever.
Time: 10 minutes. Problem: The QR never expires. Anyone who screenshots it can "visit" forever.
Step 2: Track punches
Common setups:
- Google Sheet + form responses
- Airtable with a "punches" column
- A notes app and prayer
Time: 1–3 hours to set up. Ongoing: 15–30 minutes a week fixing wrong numbers, double-entries, and "I filled the form twice" drama.
Step 3: Hand out rewards
When someone hits 10, you… look them up? Trust them? Ask them to show the form confirmation email from three months ago?
This is where DIY dies. Redemption without a clear, fraud-resistant state is either generous (you give free stuff you didn't owe) or awkward (you argue at the counter).
Step 4: Train staff
Your Saturday closer needs a 30-second script. If the process is "open the sheet, find the phone number, add one, save," you will get skipped when the line is six deep.
Why static QR + spreadsheet fails at scale
| Failure mode | What happens |
|---|---|
| Lost accountability | Two staff punch the same person twice |
| Screenshot fraud | Customer shares the static QR in a group chat |
| No customer card | Regulars have nothing to "show" or bookmark |
| No list you trust | Half the rows are typos or spam |
| Owner as glue | Only you understand the system |
If you do 20 visits a day, DIY can limp along. At 80–150 visits a day, the spreadsheet becomes a second job.
What a proper QR loyalty card needs
Skip the fancy CRM language. You need five things:
- Per-customer identity — usually phone (SMS code) or email. Not "first name and hope."
- A card the customer owns — something on their phone they can open without re-signing-up every time.
- Merchant punch in one tap — counter QR or customer QR; staff shouldn't type.
- Anti-fraud — rotating codes or server-side punches so screenshots don't mint free punches.
- Clear redemption — punch count hits the goal → reward state is obvious to staff and customer.
That's the whole product. Everything else is optional.
"But I don't want another monthly fee"
Fair. Run the math:
- Your time at $40/hour × 1 hour/week fixing the sheet = $160/month
- One fraudulent free item a week at $6 COGS = ~$25/month
- Lost regulars who never re-enroll after losing the paper/DIY card = hard to measure, usually bigger than both
A flat $60/month digital punch card tool is often cheaper than "free" DIY once you count labor — especially if it also builds a contact list you can use on slow Tuesdays.
How to launch a QR loyalty card in under 15 minutes (non-DIY)
If you want the outcome without the spreadsheet:
- Pick the offer — e.g. "Buy 9, get the 10th free." One sentence, no fine print.
- Create the program in a digital punch card tool (LocalPunch is built for this: counter QR, customer wallet, flat pricing).
- Print the counter poster — big QR, big reward text. Tape it where eyes land while people wait.
- Train staff in one line: "Scan this, text the code, we punch your card."
- Post once on Instagram/Stories: "New punch card — 10th is free. Scan at the counter."
Day-one goal isn't perfection. It's 10 real sign-ups so the habit sticks for the team.
Common mistakes (DIY or paid)
- Too many tiers. Gold/Silver/Platinum for a single-location shop confuses everyone. One punch track is enough.
- Rewards that hurt. Free whole order after 5 visits is marketing theater that wrecks margin. Keep reward cost under ~10% of revenue earned to get there.
- QR only online. People still need a physical cue at the register. Print the poster.
- No "forgot phone" path. Manual punch by phone number saves the regular who left their phone in the car.
Should you DIY or buy?
DIY if: pop-up for a weekend, under ~15 visits/day, you're a solo operator who likes spreadsheets, and fraud doesn't matter.
Buy if: you have staff, a lunch rush, paper cards already failing you, or you want a list you can actually text.
There's no shame in either path. There is shame in spending six weeks building a Form that your closer stops using in week two.
Bottom line
Making a QR code is free and takes minutes. Making a loyalty system that staff trust, customers finish, and fraud doesn't break is the hard part — and that's what you should buy or carefully build.
If you want the short version with LocalPunch: scan → SMS verify → card in the browser → punch at the counter. No customer app store, no POS swap, $60/month unlimited.
Related reading: digital punch cards vs paper and what loyalty actually costs.
Turn visits into regulars.
LocalPunch is the simple, paper-free punch card for local shops. $60/month or $600/year, cancel anytime.
Start my shop →