Most failed 2D barcodes are not data problems. They are print problems. The symbol encodes correctly, renders fine on screen, and then fails on a real package.
| Requirement | Practical rule |
|---|---|
| X-dimension (module size) | Minimum around 0.396 mm for retail POS. We default to 0.5 mm for margin. Smaller looks tidier and scans worse. |
| Quiet zone | 4 modules of clear space on all four sides. No text, no border, no artwork. This is the single most common violation. |
| Contrast | Dark modules on a light background. Never invert. Avoid red on light backgrounds — some scanners read with red light and see nothing. |
| Placement | Flat area, away from seams, folds, and heavy curvature. Curved surfaces distort the module grid. |
It is tempting to choose the highest error-correction level. Don't. Higher ECC means more modules, which means a physically larger symbol or smaller modules at the same size — and smaller modules are what actually break scans. Level M is the packaging default.
Digital preflight — checking size, quiet zone, contrast, and encoded data in the artwork file — catches most problems before plates are cut. It cannot tell you how ink will behave on your substrate. Scan a printed sample before you commit to a full run.
Free automated audit — invalid GTINs, duplicates, and whether your URLs resolve. No account needed.
Run the free audit