Retail standards
EAN-13 vs UPC-A Barcodes: What is the Difference and Which One Do You Need?
August 13, 2026 2 min readBarcode & QR Academy Team
Both are the familiar striped rectangle on the back of a product, both are read by the same scanners, and both use the same Modulo-10 checksum. The practical difference is length, geography and who issued your numbers. Here is how to tell which one you need before you order labels.
Side by side
| EAN-13 | UPC-A | |
|---|---|---|
| Total digits | 13 | 12 |
| Data digits you supply | 12 | 11 |
| Primary market | Global, standard across Europe, Asia, Australia | United States and Canada |
| Structure | GS1 prefix + company prefix + item reference + check digit | Number system digit + company prefix + item reference + check digit |
| Physical width at 100% | Slightly wider | Slightly narrower |
They are really one family
UPC-A is a subset of EAN-13. Put a leading zero in front of a 12-digit UPC-A and you have a valid EAN-13 that identifies the same product. Modern retail scanners and databases handle both, which is why a US product still scans in a European supermarket.
That also means you should never invent your own numbers by padding or trimming someone else's. The number is a global identifier licensed to one company.
Which one should you use?
- Selling mainly in the US or Canada, and your retailer asked for a UPC: use UPC-A.
- Selling in Europe, the UK, Asia, Australia or online worldwide: use EAN-13.
- Selling in both: EAN-13 is the safer single choice; US systems read it fine.
- Listing on Amazon or a marketplace: use whichever format matches the GTIN you registered.
Where the numbers come from
Retail barcode numbers are issued through GS1, the organisation that hands out company prefixes. You license a prefix, then assign item references within it yourself. A generator does not create a valid retail identity — it renders the number you were allocated.
For internal use only — warehouse bins, asset tags, workshop parts — you do not need a GS1 number at all. Code 128 or Code 39 is a better fit because they accept letters as well as digits and carry no registration expectations.
Typing them into a generator
Supply 12 digits for EAN-13 or 11 for UPC-A and MarkingBear appends the Modulo-10 check digit. Supply the full 13 or 12 and it verifies the last digit instead, telling you the correct one if it disagrees.