Thermal receipts fade. Not eventually — within months, faster in a hot car or a sunny window, and completely if anything warm touches them. By the time a warranty claim or a tax question comes up, the paper is often blank.
A QR code printed on the receipt, pointing at a digital copy, means the paper is never the only record.
What it is actually for
Two different problems, and it is worth being clear which one you are solving.
For the customer: a receipt they can find again. Warranty claims, expense claims, returns, and simply proving they bought the thing.
For the business: fewer "I lost my receipt" conversations, and a return policy you can actually enforce because there is a record on both sides.
The simple version
You do not need a receipt platform. A QR code on the receipt pointing at a page with the order details is enough for most small businesses.
If you already send an email or LINE confirmation, the code can point at that. If you use a POS system, check whether it has a digital receipt feature already — many do, and it will print the code for you.
The unique-code problem
Here is the catch, and it is the reason this is harder than it looks.
A QR code on a pre-printed receipt roll is the same code on every receipt. It can point at your returns policy, your warranty registration form, or your review page — all useful, none of them specific to that purchase.
To link to that customer's receipt, the code has to be generated per transaction and printed at the moment of sale. That needs a POS or receipt system that supports it. It is not something you can add by ordering printed rolls.
So decide which you are doing:
| Approach | Needs | Can point at |
|---|---|---|
| Same code on every receipt | Nothing — printed rolls or a stamp | Warranty form, returns policy, review link, contact |
| Unique code per sale | POS support | That specific transaction |
Most small businesses are better served by the first, done well, than by waiting for the second.
What the shared code should point at
If it is the same code on every receipt, make it a small page that covers the whole after-sale relationship:
- Warranty registration form, if you sell anything with a warranty
- Returns and exchange policy, in plain language
- Care or usage instructions
- How to contact you, and when
- A link to leave a review, if that fits
This is genuinely useful to a customer holding a receipt, which is the test any receipt code has to pass.
Personal data
If your digital receipt shows a name, address, phone number or itemised purchase, that is personal data under Thailand PDPA.
Two consequences worth taking seriously: the link should not be guessable — a sequential order number in a URL means anybody can read other people's receipts by changing the number. And the record should not be kept longer than you need it.
If your POS handles this, check how it generates the link before you rely on it. If you are building something yourself, use a long random identifier, not order/1041.
Printing it on a receipt
Receipt paper is the least forgiving surface a QR code meets: thermal printing is low contrast, the paper is narrow, and it will be folded.
- 2 × 2 cm minimum. It is held in the hand, so this is enough — but do not go below it.
- Keep the quiet zone. Receipt layouts are cramped and this is the first thing that gets squeezed.
- Watch the contrast. Thermal print is grey, not black. Test on the actual printer, not on a laser proof.
- Position it away from the fold. Most people fold a receipt in half, straight through the middle.
- Print the URL underneath if it is short, for the customer whose phone will not scan.
Test on the real printer
This is the one that goes wrong. A code that looks perfect on screen can come out of a thermal printer with thin, grey, blurred modules that no phone will read.
Print an actual receipt, scan it, then put it in a pocket for a day and scan it again. The pre-print checklist covers the rest.
Make a receipt code — free, and it never expires.
