UPC vs EAN: the difference between the two retail barcodes
A UPC-A barcode holds 12 digits and is the standard in the US and Canada. An EAN-13 barcode holds 13 digits and is used almost everywhere else. Both are GS1 product numbers (GTINs), and a UPC becomes a valid EAN by adding a 0 at the front.
UPC and EAN at a glance
- UPC-A: 12 digits, also called GTIN-12. Created in the US and still the usual code on products sold in North America.
- EAN-13: 13 digits, also called GTIN-13. Used in Europe, the UK, Asia, Australia and most other markets. Officially the International Article Number, though EAN is the name everyone uses.
- Both: issued through GS1, printed on retail products, read at checkouts, and end in a check digit that catches typing and scanning errors.
- Short versions: UPC-E squeezes some UPC-A numbers into 8 digits, and EAN-8 is a separate 8-digit code for very small packs.
How UPC and EAN relate
EAN-13 was designed as an extension of UPC. Put a 0 in front of any 12-digit UPC-A number and you have the same product as a 13-digit EAN, with the same check digit. Checkout systems worldwide treat them as one product number, which is why a GTIN database stores them all as 14-digit numbers padded with zeros.
The bars look similar too. Both have guard bars at the start, middle and end, and digits printed underneath. The UPC-A layout puts single digits outside the bars at each end. EAN-13 puts the first digit outside on the left and encodes it through the pattern of the other bars.
The first digits of an EAN are the GS1 prefix. It shows which national GS1 office issued the company number, not the country where the product was made. A product with a UK prefix can be made anywhere.
Because of this overlap, a single product database can hold both. When you enter a UPC in a system that expects 13 digits, it will usually add the leading zero for you. When a system expects 12 digits and you have a 13-digit EAN that does not start with 0, there is no conversion. You need to check whether it accepts EAN instead.
Which one does your product need
In practice you do not choose a format first. You get a GTIN from GS1 in your country, and the office issues the number in the format that suits your market. A US company usually gets 12-digit numbers and prints UPC-A. A UK or European company gets 13-digit numbers and prints EAN-13.
North American retail scanners have accepted EAN-13 for many years, so an EAN-13 product can generally sell in the US. Some retailers or marketplaces still ask for a UPC in their forms. If you have an EAN, check whether the form accepts 13 digits before you buy anything new.
Online marketplaces such as Amazon accept both UPC and EAN as product IDs. What they care about is that the number is genuine and registered to your brand.
How to convert UPC to EAN
- Take the full 12-digit UPC-A number, including the check digit at the end.
- Add a 0 at the front. The result is a 13-digit EAN-13 for the same product.
- Keep the check digit as it is. Adding a leading zero does not change the calculation.
- To go the other way, only an EAN-13 starting with 0 can be shortened to a UPC-A by removing that zero. Other EANs have no UPC version.
Other barcodes you may see
- ISBN: books use EAN-13 barcodes starting with 978 or 979.
- ITF-14: a 14-digit code printed on outer cartons and cases rather than individual items.
- Code 128: used for shipping labels, serial numbers and internal stock codes. It is not a retail product barcode.
- QR codes: for links and information, not for checkout scanning.
Common UPC and EAN mistakes
- Making up a number. A barcode that scans is not the same as a number registered to your brand, and it may clash with another company's product.
- Reusing one number for several variants. Each size, colour and pack size needs its own GTIN.
- Buying a UPC when you already have an EAN. Most systems accept either, so check before you spend money.
- Dropping the leading zero in a spreadsheet. Excel and similar apps strip zeros at the front, which can turn a valid EAN into a broken 12-digit number. Format the column as text.
- Printing the barcode too small or in the wrong colours. Dark bars on a light background scan best, and red bars do not scan at all.
- Typing the check digit by hand. Let the generator calculate it, so a single mistyped digit is caught.
Making the barcode image
Once you have a number, the barcode image is the easy part. NeoReader's barcode generator draws UPC-A, UPC-E, EAN-13 and EAN-8 barcodes, works out the check digit for you and downloads SVG for print or PNG for labels. It is free and runs in your browser.
It does not issue or sell registered numbers. Retail barcodes need a number licensed from GS1, or one that meets your marketplace's rules, and the generator draws the barcode for the number you already have.