Retail and inventory barcodes with automatic check digits — generated in your browser, never uploaded.
Type a number and the page encodes it with its own implementations of the retail standards — EAN-13 and EAN-8 (ISO/IEC 15420), UPC-A, and Code 128 subset B (ISO/IEC 15417). The check digit is computed for you as you type, because a wrong final digit makes a barcode unreadable to a till that checks it. ISBNs are accepted in both 10- and 13-digit form and converted to the EAN the scanner actually reads.
Every colour choice runs through a scan-safety check before you print. Laser scanners read barcodes in red light, so the check looks at the red channel specifically: red bars on white are effectively invisible to a till even though they look fine on screen. Contrast is also graded against the WCAG formula, and an inverted code — light bars on dark — is flagged as a failure outright.
The bars are generated as exact module widths, so the SVG export keeps the proportions the standards define. The quiet zone on each side is part of the export on purpose: trimming it is a common reason a printed barcode fails.
The check makes two measurements. The red-light gap is the background's red value minus the bars' red value, out of 255: a rough stand-in for how dark the bars look under a red laser. Contrast is the WCAG ratio used for readable text. These are the page's own verdicts on some common pairs:
| Colours | Red-light gap | Contrast | Verdict |
|---|---|---|---|
| Black on white | 255 | 21.0:1 | Safe |
| Navy on white | 225 | 10.4:1 | Safe |
| Dark green on white | 233 | 7.1:1 | Safe |
| Navy on light blue | 161 | 7.3:1 | Safe |
| Mid grey on white | 148 | 4.8:1 | Marginal |
| Dark red on white | 70 | 6.5:1 | Fails |
| Red on white | 35 | 4.8:1 | Fails |
| White on black | −255 | 21.0:1 | Fails (inverted) |
A red-light gap under 100 fails; 100 to 149 is marginal, fine for phone cameras but worth testing at a real till. Contrast under 2.5:1 fails and under 4:1 is a warning. Light bars on a dark background fail whatever the numbers, because scanners look for dark bars.
Dark red is the row to remember. At 6.5:1 it passes the contrast test for readable text, yet in red light its bars are almost as bright as the paper. The check is a guide, not a guarantee: print one label and scan it at the till that will read it before printing the run. Barcodes for a small shop covers the rest of the print checklist.
EAN-13 and EAN-8 for retail products worldwide, UPC-A for North America, Code 128 for shipping and inventory labels, and ISBN for books. ISBN-10 numbers are converted to the 978 EAN-13 automatically.
Yes. Enter the first digits and the check digit is computed automatically; enter the full number and it is verified instead, with the correct value shown if there is a typo.
Yes, when printed correctly. The colour check runs live — retail lasers read with red light, so red or low-contrast bars are flagged before you download. Quiet zones are part of every export, and the size presets include 100% EAN nominal.
No. Barcodes are generated entirely in your browser by our own encoder. Numbers you enter never leave your device.
SVG for anything printed — bars stay mathematically exact at any size, which matters because readers measure bar widths. PNG is fine for screens and documents.
Laser tills read barcodes in red light. Red bars reflect that light exactly like the white background does, so to the scanner the code is blank — even though it looks perfectly crisp on screen. The safety check on this page measures the red channel specifically and will warn you before you print.