What error correction does
2D barcodes store extra codewords, calculated with Reed–Solomon error correction, alongside the data. If part of the code is scratched, torn or covered, a scanner uses them to rebuild what’s missing. More error correction means more of the code can be lost. It also means more modules for the same data. Printed at the same size, each module gets smaller, and small modules are harder to read from a distance, on a low-resolution printer, or with a phone camera. So high error correction only helps if you also print the code larger. Otherwise you trade damage you might get for blur you’ll definitely get.Choosing a level
Start with where the code will live:
Then find your barcode type:
The recommended minimum for PDF417 depends on how much data the code holds. See PDF417. Logos over the middle aren’t recommended for Aztec or PDF417.
Data Matrix doesn’t let you choose: its error correction is fixed by its size. To make one tougher, print it with larger modules and keep the quiet zone clear.
On screens, use the least
Screens don’t get scratched. The problems are glare, a dimmed display, and moiré from the camera, and they affect the whole code at once, which error correction can’t fix. Low error correction gives you fewer, larger modules at the same size on screen, which a camera reads faster and from further away. Show the code dark on light, at full brightness, with its quiet zone clear. If you send it as an image, by email, in a message or in a wallet pass, make the white margin part of the image. A transparent background takes on the app’s color, and in dark mode that leaves a dark code on a dark screen with no quiet zone.On boxes, use the most, and print it bigger
Boxes get damaged in patches: a scrape across a corner, a puncture, a strip of tape. That’s exactly what error correction repairs. Use QR level Q or H, raise PDF417 by a level or two, and use at least 50% for Aztec. Then print the code larger, so that the extra modules don’t make each one smaller. And place it where damage is least likely: away from edges, corners, folds and seams.See it
These are the same data at each QR Code error correction level, each with the same scratch scaled to fit. Notice that the higher levels need more modules for the same data. A light scratch: A heavy scratch: A severe scratch: Decoded with a standard decoder (✅ reads, ❌ doesn’t):
Real damage is messier than a clean scratch, and scanners differ, so test your own codes the way they’ll be used.
Levels by barcode type
What error correction can’t fix
- A damaged finder pattern. Error correction protects the data, not the patterns a scanner uses to find the code. If those are gone, the scanner never gets as far as the data. QR Code has three finder patterns and Aztec has one in the center, so protect the corners or the middle accordingly.
- A missing quiet zone. Artwork printed right up to the code makes it hard to find, whatever the level.
- Poor print quality everywhere. Low contrast, smearing or blur affects every module at once.
- Wrong data. Error correction restores what was printed. It can’t tell you the code is the wrong one.