Reference

GS1, EAN and UPC Explained

BarcodePro Team · Updated August 2026 · 6 min read

Anatomy of an EAN-13 number 0 12 Country / GS1 prefix 34567 Company prefix (assigned by GS1) 89012 Product number (set by the company) 6 Check digit printed & scanned
Only the last digit is a checksum — everything else is a structured identifier, most of it assigned once by GS1.

If you've ever generated a barcode for a product and wondered why a marketplace rejected it, the answer usually comes down to one thing: the difference between a barcode that's correctly formatted and a barcode number that's officially registered. These are not the same thing, and mixing them up is one of the most common mistakes first-time sellers make.

What GS1 actually is

GS1 is the nonprofit organization that administers the global system of product identification numbers used in EAN and UPC barcodes. When a company registers with GS1, it's assigned a company prefix — a block of digits that uniquely identifies that company — and from that prefix, the company can generate its own range of product numbers (GTINs, or Global Trade Item Numbers) without needing to check in with GS1 for every new product.

This is why two different companies can't accidentally end up with the same barcode number on two different products sold through the same retail channel: the prefix system prevents collisions at a global scale.

EAN-13 vs. UPC-A: what's the actual difference

Functionally, they're close cousins. UPC-A is a 12-digit format used primarily in the US and Canada; EAN-13 is a 13-digit format used across Europe and most of the rest of the world, and it can also encode UPC-A numbers by prefixing a zero. Modern point-of-sale scanners read both formats interchangeably in almost all markets, so the practical choice mostly comes down to which standard your target retailer or region expects.

What the check digit is for

The last digit of an EAN-13 or UPC-A number isn't part of the product identifier — it's a check digit, calculated from all the preceding digits using a fixed formula. Its only job is error detection: if a single digit gets mistyped or a scanner misreads one bar, the check digit calculation won't match, and the scan is rejected rather than silently recording the wrong product. This is why you can't just make up an arbitrary 13-digit number and expect it to be considered a "real" EAN-13 — the final digit has to mathematically match the rest, and our generator calculates it for you automatically based on the digits you provide.

Do you need an officially registered number?

This depends entirely on where the barcode is going:

A generator — including this one — can produce a correctly formatted, correctly check-digited barcode for any number you provide. What it can't do is confirm that number is registered to you; that's a separate step through GS1 or a national GS1 member organization, and it typically involves an application and a fee based on how many numbers you need.

The takeaway

For internal logistics, testing, or any closed system, generate freely — CODE128 is often the more flexible choice anyway since it isn't tied to a numbering registry at all. For retail-facing products going through a channel that validates GS1 numbers, register a proper prefix first, then use a tool like this one to render the actual barcode image once you have a legitimate number to encode.