A barcode that won't scan is almost always failing for one of nine reasons — and you can diagnose most of them by eye in under a minute. Work down this list in order; it is sorted by how often each cause turns out to be the culprit.
Low contrast — scanners need dark bars on a light background; mid-tone brand colors (red bars especially, since laser scanners use red light) often read as "blank". Inverted colors — light bars on a dark background fail on most laser scanners even when the contrast ratio looks fine. Violated quiet zones — text, borders or a package fold encroaching on the blank margins prevents the scanner finding the symbol's edges.
Printed too small — below 80% magnification for EAN/UPC, bar widths drop beneath scanner resolution. Ink spread (gain) — on porous stock or flexo presses, bars fatten and the spaces between them close up; the fix is Bar Width Reduction at generation time. Truncated height — bars cut short to fit a design defeat omnidirectional scanners that read at an angle.
Physical damage — scratches across the bars (along the scan direction) are fatal for 1D codes; a tear from the top is often survivable. Wrong check digit — a hand-typed number with a bad final digit will be rejected by the decoder itself; our generator computes it automatically. Wrong scanner class — a laser scanner pointed at a QR or Data Matrix will never read it; you need a camera-based imager.
Scan with a phone app first (cameras are forgiving). If the phone reads it but the store scanner doesn't, suspect inversion, red-on-white colors, or size. If even the phone fails, suspect quiet zones, damage, or data errors. Then reprint one sample at 100% scale on the final material and test again before blaming the hardware.