The usual reason a QR code is not scanning is that nobody tested it under the conditions it would actually meet: at the size it was printed, from the distance people stand, in the light they have. AriaQR tests every code on real decoders under those real-world conditions before you can download it, and shows you a verdict. This post explains what that verdict means and what to do with it.
Why is my QR code not scanning?
When a code fails in the field, it is nearly always one of a short list of causes.
Too small for the distance. A code that reads fine in your hand can be unreadable on a wall. Size and scanning distance go together.
Low contrast. Pale dots on a light background, dark dots on a dark photo, or a code printed in a color the camera does not separate well from what is behind it.
Glare and surface. Glossy laminate, plastic packaging, or a screen protector can bounce light straight into the lens. Curved bottles and folded flyers distort the pattern.
No breathing room. A code crammed against text, borders, or other graphics gives the camera nothing to lock on to.
Decoration that went too far. A logo pasted over too much of the grid, or an AI-generated picture where the art beat the code. We compare that category in AI diffusion QR codes vs AriaQR.
The code scans, but the link is dead. The camera reads it, the browser opens, and the page is gone. That is not a scanning problem, but it looks like one to the person holding the phone. Dynamic codes fix this; see editable destinations and alerts.
Most of these are discovered after printing. The point of verification is to move that discovery to before you pay for anything.
How does AriaQR verify a code before download?
We do not ask you to trust that a decorated code will read. We test it.
Every code you make, whether it is a square code from a photo or a poster with the code blended in, is run against real decoders under several real-world conditions: from a distance, at an angle, in low light, and at small size. The code only reaches the download button after that check, and the page tells you what happened.
You do not have to install anything, and you do not have to round up five coworkers' phones. The check runs on the site, for every code, every time, including after you restyle the eyes, dots, or colors.
We keep the details of the test private on purpose. What we show is the outcome.
What do "verified" and "scans up close only" mean?
The site shows one of two verdicts.
Verified. The code read reliably across the conditions it was tested under. This is the verdict you want for anything printed at the size you chose, from a poster to a table tent.
Scans up close only. The code reads when the phone is near it, but it did not hold up under the harder conditions. That is still useful. A card handed to someone, a sticker on a laptop, or a label a customer picks up are all "up close" situations. A billboard, a shop window, or a stage banner are not.
The verdict is about the code as generated, at the build you chose. Change the image, the crop, or the build, and it is checked again.
Standard vs Small print: which build should I choose?
Two builds exist because a code on a screen and a code on a business card face different problems.
| Standard | Small print | |
|---|---|---|
| Made for | Screens and prints of 4 cm and up | Cards, labels, stickers |
| Size range | 4 cm and up | Down to about 1.5 cm |
| Typical uses | Posters, menus, packaging, signs, slides | Business cards, product labels, price tags, stickers |
| Choose it when | The code is the size of a coaster or bigger | The code is the size of a coin |
If you are not sure which size the final print will be, build both from the same image and keep the verdict for each. Small-print QR codes goes deeper on printing at the small end.
What should I do if my code says "scans up close only"?
First, decide whether "up close" is fine. For a card or a sticker, it often is.
If you need more than that, change the input rather than the promise. In practice the things that help are simple: pick a version of the image with more contrast between light and dark areas, try a different crop so the code sits over a calmer part of the picture, or, for "Code in your image", move the code to a less busy region of the poster. A different dot color can help on some images. Each change is verified again, so you can watch the verdict move.
If the code will be printed small, switch to the Small print build. If it will be printed large, make sure it is actually printed at the size you chose. A poster code shrunk to fit a leaflet is a different code in practice.
Does a verified code scan on iPhone, Android, WhatsApp, and in-app cameras?
Verification runs on real decoders, and the verdict is about the code, not about one phone. A verified code is expected to read in the camera app on an iPhone or Android phone, in the scanner inside WhatsApp, and in the ones built into browsers, because they all rely on the same kind of decoding.
A few field notes, because some "not scanning" reports are not about the code at all.
If a code is not scanning on iPhone or Android from the phone's own camera, check for glare and distance first, then try the other build.
If a QR code is not scanning in a payment app such as Google Pay, the most common cause is that it is a website code rather than a payment code. Payment apps expect a payment code. On AriaQR, UPI payment codes are static and carry the payment payload directly; see dynamic vs static QR codes.
If a code shown on a phone screen is not scanning at a locker, a gate, or a checkout, turn the brightness up and clean the screen. Cracked screens and low brightness cause more failures than the code does.
If a code opens in an in-app browser inside Instagram or WhatsApp and the page behaves oddly, that is the browser, not the scan. AriaQR analytics show in-app browser detection so you can see how often it happens.
Where to start
Make the code from the image you plan to use, at the build that matches the final size, and read the verdict. Then print one proof on the real stock and scan it from where a real person will stand. If both pass, order the run. No account is needed; see pricing if you make codes often.
