
QR code not scanning
The six causes, ordered by how often each one turns out to be the real problem. Most are print problems rather than code problems.
Written from the failures, in the order they actually happen. Every code on this page is a real one, drawn to show the thing its guide is about.
These guides cover why a QR code fails to scan, how big to print one for the distance people stand, the difference between dynamic and static codes, what a scan can and cannot tell you, and how M-PESA scan-to-pay differs from a code that opens a page.

The six causes, ordered by how often each one turns out to be the real problem. Most are print problems rather than code problems.

How big the code has to be for the distance people stand, where on the page it belongs, and the six things that turn a print run into waste paper.
Whether it belongs there at all, the size that still scans at 1.5 cm, and why a vCard payload ages badly the day your number changes.

Where a Lipa na M-PESA scan-to-pay code comes from, why you cannot generate one yourself, and what belongs on the second code beside it.
No, and the tools implying otherwise are selling you something. What a scan really tells you, why a fifth of them are not people, and where the legal line sits.
The iPhone setting that ships off, what Samsung and Pixel do differently, and the one test that tells you whether to blame the phone or the code.
The free code costs nothing until the page moves. Then it costs a reprint of everything already on the wall.
A grid that carries text, three squares that let a camera find it at any angle, and enough redundancy to survive being partly destroyed.
Print runs are long, artwork is frozen, and the pack outlives the campaign. What that changes about which code you put on it.
Scanned once, at a door, in bad light, by somebody who is not the person who made it. A different design problem from a poster.
The size calculator answers the maths. This answers the file: why a screenshot of a code fails and a vector never does.
A QR code cannot hold a PDF, only a link to one, which makes this a hosting question wearing a QR costume. That is where every version of it goes wrong.
Canva and Adobe Express emit a static code: your address written into the pattern, with nothing in between to count. No setting fixes it afterwards.
It is one, just not a linear one, and the distinction decides which scanner can read it. Also: the code on your boarding pass is not a QR code.
Tags stay on equipment for years, which is longer than most asset systems last. How to label so changing software does not mean relabelling everything.
Paybill or Buy Goods, which your business actually needs, what Safaricom asks for, and what to do with the number once it is issued.
Scan to Pay hands the phone to M-PESA. A link QR opens a page. They look identical printed, fail differently, and most businesses need both.
Inventory codes fail on physical size long before they fail on data. The millimetre floors, and why the code should never encode the item.
Where the ask goes, why the code has to be re-pointable, and the shortcut that gets a listing penalised rather than a review removed.
Anyone holding one genuine item can reprint its code. What a verification code can honestly establish, and where the guarantee actually comes from.
A short link hides its destination by design. The four questions that separate a safe provider from a risky one, and how to check any of them, including us.
Quishing puts the link in a picture because a picture is the one thing a mail filter cannot read. What that changes about detecting it.
One barcode the till reads as a product number and a phone opens as a web page. What Sunrise 2027 actually requires, and what it does not.
The pattern is free forever and always will be. What costs money is somebody keeping the redirect answering for as long as the poster is on the wall.
What happens in the redirect, why a 301 quietly turns a dynamic code static, and the five questions worth asking a provider before you print anything.

Seven layouts drawn to scale with the distance each one actually scans from. Four of them fail, and they all fail the same way: sized to fit the page instead of the reader.
Your bank issues the code, not a generator, and the CBN framework says you may display only an approved one. What that leaves you free to print, and the ten minutes that decide static from dynamic.
Why the counter carries three scan-to-pay codes, what the Reserve Bank QR+ standard is meant to collapse them into, and why nobody can tell you the date.