Code 128 vs EAN-13: which barcode should you use?
The question isn’t which barcode is best, but who will scan it. A barcode for supermarket tills follows strict rules. A barcode that only lives in your own warehouse can be chosen freely, as long as your scanners and software understand it.
The short answer
| Situation | Recommended | Why |
|---|---|---|
| Product sold in shops or on marketplaces | EAN-13 | The only code accepted by retail tills in Europe and the UK. Must come from GS1. |
| Product sold in the US or Canada | UPC-A | North American equivalent. UK tills read it too. |
| Internal SKUs, bin locations, stock-taking | Code 128 | Letters and digits, compact, read by every handheld scanner. |
| Older software or machines that require it | Code 39 | Common in industry, but less compact. |
| Outer cartons scanned in a warehouse | ITF-14 | Designed for printing on corrugated board. |
| Link to a website, manual or form | QR code | Read by smartphones, holds many characters. |
EAN-13: for retail only
An EAN-13 holds digits only, always 13, and identifies a product worldwide. Its strengths, standardisation and universal scanning at the till, are also its limits: you can’t put a reference such as ART-1001 in it, and the numbers must be issued by GS1. See EAN-13 barcodes.
Code 128: the best choice for internal use
Code 128 encodes upper- and lower-case letters, digits and most punctuation. It is more compact than Code 39: for the same reference it is typically 20 to 40 % shorter, more so when the reference is mostly digits, which matters on a small label.
It is ideal for:
- product references in stock-control software;
- bin and shelf locations (
A-03-02); - serial, batch or asset numbers;
- files, samples and tools.
Code 39: only when you have to
Code 39 is older. It is limited to capitals, digits and a few symbols (- . $ / + % and space) and takes more space for the same content. Its main advantage today is compatibility with machines and software that only accept it. If nothing forces you, prefer Code 128.
ITF-14: for outer cartons
ITF-14 encodes the GTIN of a case or outer carton (14 digits). Its wide bars tolerate printing directly on brown board, often with a thick bearer bar around the code. It is scanned in warehouses, not at the till.
A QR code is not a “better” barcode
A QR code holds far more data and can be read with a phone. But tills and many laser scanners can’t read it; it needs a 2D imager. For stock control, Code 128 is almost always enough and needs cheaper hardware.
Check that your scanner reads the code you chose
Many scanners ship with some symbologies switched off, often ITF or certain Code 39 options. If a well-printed barcode won’t scan, check the scanner’s configuration guide, which contains barcodes you scan to switch each symbology on. More causes in barcode not scanning.