
UPC vs EAN-13 really comes down to one digit. UPC-A is the 12-digit retail barcode for the US and Canada; EAN-13 is the 13-digit code used almost everywhere else. Both encode GS1 GTINs from the same system — a UPC-A is an EAN-13 with a leading zero. For US retail, license a GTIN from GS1 US and print UPC-A. Sunrise 2027 does not ban it.
UPC vs EAN-13: The 3 Differences That Actually Matter
For a US seller, this is a short answer. If your product gets scanned at a US or Canadian checkout, you print a UPC-A. UPC-A carries 12 digits and serves the US and Canada. EAN-13 carries 13 digits and serves almost everywhere else, as BoxHero describes the split.
Neither format is technically better than the other. Both are GTINs drawn from the same global numbering system administered by GS1 — two regional lengths of one identifier family, not competing standards. That single fact removes most of the anxiety around this decision.
It also helps to separate the number from the picture of the number. The bars are only a carrier. The licensed number is the product’s identity, and the symbol is simply how a scanner reads it. Vxceed puts it plainly: the GTIN, UPC, and EAN are the same idea at different lengths, all licensed from one standards body, while the barcode isn’t a number at all — it’s a picture of one.
Why there are 12-digit and 13-digit versions of the same number
The US grocery industry built the 12-digit UPC first, and the rest of the world standardized on a 13-digit version shortly after. Retail Scan & Stock describes the UPC-A as introduced in North American supermarkets in 1974, with the European Article Number developed shortly after to include a country code prefix. Because the 13-digit form needed room for that prefix, US numbers effectively became the same numbers with a zero in front.
UPC vs EAN-13 at a glance (comparison table)
| Attribute | UPC-A | EAN-13 |
|---|---|---|
| Digit count | 12 | 13 |
| GTIN equivalent | GTIN-12 | GTIN-13 |
| Primary region | US and Canada | Everywhere else |
| Issuing body | GS1 / GS1 US | GS1 / GS1 US (regional member organizations) |
| Scans at US checkout | Yes | Yes |
| Typical package level | Retail unit | Retail unit |
Barcode vs GTIN vs SKU: three different things
A GTIN is the global identity of a product configuration. A barcode is the machine-readable symbol that carries it. A SKU is a private, merchant-defined code that sits alongside the GTIN inside your own systems — it never replaces it. SKUs are internal and unregulated; GTINs are globally unique and licensed.

Which Barcode Should You Print? A Decision Tree for US Sellers
Here’s the one-line rule: if you’re selling physical consumer goods in the US, print UPC-A from a GS1 US-licensed GTIN. Most readers won’t need an exception to that.
The table below maps five real situations to a format.
| Your situation | What to print | Why |
|---|---|---|
| US marketplace only (Amazon, Walmart Marketplace) | UPC-A from a GS1 US GTIN | The marketplace validates the number against the GS1 registry |
| US retail shelf or big-box | UPC-A from a GS1 US GTIN | Retailers require a licensed GTIN and a unit-level symbol |
| US seller exporting abroad | The same GTIN, printed as EAN-13 | The number does not change — only the printed length does |
| Book or audiobook | EAN-13 Bookland barcode from an ISBN | Books use the ISBN, not a GS1 GTIN |
| Internal inventory only | Code 128 or your own store codes | No GS1 license needed, because the code never leaves your building |
A single GS1 GTIN covers both markets. The same number prints as UPC-A domestically and as an EAN-13 with a leading zero abroad, so nobody needs to buy two numbers for one product.
Internal-only labels never need a GS1 license, because they never leave your four walls. BoxHero states the rule directly: a GS1 barcode is required only when the product is sold through a retailer or marketplace that scans it at checkout or verifies it in a catalog.
Three questions settle almost every case: where the item will be scanned, who verifies the number, and whether the code must resolve in a global registry.

US retail shelf vs US marketplace: same barcode, different validation
The symbol is identical in both channels — a UPC-A at unit level. What differs is who checks it. A retail shelf buyer may accept your packaging spec after a vendor onboarding review, while a marketplace validates your GTIN programmatically against the GS1 database before your listing goes live.
Selling internationally from the US: do you need an EAN-13 too?
No. You need a 13-digit number the moment you print for a market that expects EAN-13, but you don’t need a second identifier. Add the leading zero to the same GTIN and render it as EAN-13. That’s a formatting step, not a licensing step.
If your product is a book: ISBN / Bookland EAN instead of a UPC
Books are the one common exception. According to ISBN Services, the 13-digit ISBN is converted into an EAN-13 barcode commonly printed on the back cover, often called the Bookland EAN barcode. The ISBN itself comes from the national agency — Bowker in the United States — so you don’t license a GS1 GTIN for the book edition. For the printing side, our guide to generating an ISBN barcode walks through the Bookland EAN requirements step by step. Non-book items bundled with a book, such as a tote, toy, or media accessory, still need their own GS1 GTIN.
UPC vs EAN-13 Digit by Digit: Prefix, Item Reference and Check Digit
Once you know what each position controls, you know which digits are yours and which ones you must not touch.
What each digit position means in a UPC-A and an EAN-13
Wikipedia’s UPC entry describes the UPC-A structure as SLLLLLLMRRRRRRE, where S, M, and E are guard patterns and the L and R sections carry the 12 digits. The first digit is a number system digit, and the last is an error-detecting check digit. In practice, the first section holds a GS1 company prefix assigned by the local GS1 organization, the middle holds the product reference, and the final digit validates the whole thing.
EAN-13 follows the same logic with one extra position at the front. Vxceed summarizes every GTIN as three parts: a GS1 company prefix, an item reference assigned by the manufacturer, and a mathematical check digit at the end that verifies scanning integrity.
| Format | Position 1 | Company prefix | Item reference | Final digit |
|---|---|---|---|---|
| UPC-A (12 digits) | Number system digit | Assigned by GS1 member organization | Assigned by the brand | Check digit |
| EAN-13 (13 digits) | Issuing-region prefix | Assigned by GS1 member organization | Assigned by the brand | Check digit |
One caution about the EAN-13 prefix: it’s an issuing-region indicator, not a country of manufacture. It identifies which GS1 member organization issued the number. A product manufactured in China and sold by a US brand still carries a US prefix, because the US brand’s GS1 member organization issued that GTIN.
How does the check digit work in a 12- vs 13-digit number?
The check digit is the final modulo-10 computed digit used for error detection. For a UPC-A, you sum the digits in odd positions, multiply by 3, add the digits in even positions, take the remainder modulo 10, and subtract from 10. Wikipedia walks through the example 03600029145x, where the odd-position sum is 14, multiplied by 3 gives 42, plus the even-position digits gives 58, and 58 mod 10 = 8, so the check digit is 10 − 8 = 2.
For an EAN-13, the developer walkthrough on DEV Community uses the same weighted logic with a different weight order: take the first 12 digits of 400638133393, multiply odd positions by 1 and even positions by 3, sum to 89, and reach the next multiple of ten — 90 — so the check digit is 1, giving the complete number 4006381333931.
The error-detection math is worth knowing, because it explains why the check digit isn’t a formality. Wikipedia reports that UPC-A detects 100% of single-digit errors and roughly 89% of transposition errors — a transposition escapes detection only when the difference between two adjacent digits is 5, which works out to about 11.111% of transpositions being undetectable.
GTIN-8, -12, -13 and -14: unit, inner pack, case and store-issued codes
The GTIN family covers more than the two retail lengths. Retail Scan & Stock lays out the hierarchy: GTIN-8 for very small retail packages such as gum or cosmetics, GTIN-12 encoded in UPC-A for US and Canadian units, GTIN-13 encoded in EAN-13 globally, and GTIN-14 encoded in ITF-14 or GS1-128 symbols on outer shipping cartons and master cases.
Two further categories sit outside that hierarchy. Variable-measure and restricted-circulation codes are store-assigned numbers for items weighed or priced at the point of sale — Wikipedia notes that number system 2 is reserved for local use for items sold by variable weight, where the store assigns an item number and the remaining digits carry weight or price. These aren’t GTINs at all, and they’re scoped to the store that issued them. Separately, JAN is Japan’s implementation of the EAN system — a regional name for the same 13-digit structure, not a different standard.
Is a UPC-A Just an EAN-13 With a Leading Zero?
Yes — mathematically. A 12-digit UPC-A is identical to the 13-digit EAN-13 formed by prefixing a zero. Retail Scan & Stock gives the worked example: UPC 012345678905 is represented in global 13-digit databases as 0012345678905. The same equivalence is corroborated by BoxHero and Vxceed, both of which describe the leading-zero relationship in the same terms.

The practical consequences are simple. You don’t buy a new number to sell the same item internationally, and you don’t need to convert anything on the package artwork beyond choosing which length to render.
Conversion is a formatting operation, not an identity change. A genuinely new product, size, flavor, or multi-pack still needs its own GTIN — reusing one number across variants is a separate mistake that has nothing to do with the UPC-versus-EAN-13 question.
Do US checkout scanners actually read EAN-13 barcodes?
Yes. Modern US point-of-sale systems are built to read 13-digit EAN-13, since a US UPC-A is the leading-zero form of the same number. Retail Scan & Stock notes that since the 2005 GS1 Sunrise initiative, virtually all modern retail scanners and smartphone camera decoders read both UPC-A and EAN-13 formats. A US product should still print UPC-A, because that’s what US packaging standards, retailers, and marketplace listings expect.
UPC-E and EAN-8: the compressed formats people confuse with UPC-A and EAN-13
These are separate small-package symbologies, not shortened versions you generate by trimming digits. BoxHero describes UPC-E and EAN-8 as compressed forms for items like a stick of gum or a small cosmetic tube. If you’re weighing the small-package forms, this EAN-13 vs EAN-8 comparison covers the shorter format in detail. Wikipedia adds that UPC-E suppresses the number system digit, trailing zeros in the manufacturer code, and leading zeros in the product code, and can only correspond to UPC-A number systems 0 or 1.
How to Get a UPC or EAN-13 in the US: GS1 Licensing and Costs
GS1 US is the authoritative issuer in the United States. You license numbers — you don’t buy a barcode image from a generator.
There are two routes. A single GS1 US GTIN covers one product. A GS1 Company Prefix covers a catalog, and the prefix is what lets you assign numbers yourself per item and per packaging level.
On reported pricing, BoxHero states that a single GS1 US GTIN costs a one-time $30 with no annual renewal fee, and that a GS1 Company Prefix carries an initial fee based on how many numbers you need plus an annual renewal fee, with published first-year figures starting at a few hundred dollars. Retail Scan & Stock reports the same $30 individual GTIN figure and notes that other GS1 member organizations apply regional fee structures. Treat these as published figures to verify at source — check gs1us.org before you budget.
Assign a distinct GTIN to every sellable variant and to each packaging level: each, inner pack, and case. Reusing one number across variants is the most common expensive mistake, because it corrupts stock records, orders, and sales history at the same time — and the damage tends to surface late.
Single GTIN vs a GS1 Company Prefix: how to choose
Choose a single GTIN if you’re listing a handful of products and don’t expect to change packaging levels soon. Choose a company prefix the moment you have a catalog, multiple sizes, or case-level labeling to manage, because the prefix is what lets you assign the next number yourself instead of starting a new purchase each time. BoxHero notes that once you license the number, the GS1 US Data Hub generates the barcode image as a PNG or EPS file at one fixed size.
Are third-party reseller barcodes safe to use?
Cheap reseller codes are real numbers, but they carry a hidden mismatch. According to BoxHero, these codes come from GS1 company prefixes bought before 2002 that remain legally transferable under a court settlement, and for some purposes they scan fine. The problem is ownership: a code registered to the reseller’s original company name can fail a marketplace check even though the bars scan correctly at a register.
Free barcode generators and validators render symbols and check digits accurately — Yotpo’s generator, for example, handles the specific digit rules and check digit calculation for UPC-A and EAN-13 — but none of them grant you a licensed number. Marketplaces check the registry, not the image.
US Barcode Launch Checklist: From GS1 License to Printed Symbol
This sequence runs from licensing to a scanned proof. Each step names the failure point it prevents.
- License the GTIN from GS1 US. Failure point: buying a reseller code whose registry owner does not match your brand.
- Assign a number per variant and per packaging level. Failure point: two flavors or two sizes sharing one code, which corrupts stock records and listings.
- Create artwork with the correct symbology for the number. Failure point: applying an EAN-13 symbol to a 12-digit payload, or the reverse.
- Meet size and quiet-zone rules. Failure point: a barcode placed outside the quiet zone, which produces a symbol that will not scan.
- Scan-test a printed proof with a real scanner. Failure point: discovering a rendering problem after the full print run.
- Store the number as text. Failure point: database or spreadsheet handling that silently alters the identifier.
- Verify the number against marketplace metadata. Failure point: a catalog mismatch that reads as an invalid GTIN during listing review.
- Keep the human-readable digits complete. Failure point: truncated digits printed under the bars, which breaks manual key entry when a scanner fails.
The print specifications your printer needs
Treat these as the spec you hand your printer, not trivia. Wikipedia gives the nominal x-dimension for UPC-A as 0.33 mm (0.013 in) and the nominal symbol height as 25.9 mm (1.02 in), with guard pattern bars extended downward by five times the x-dimension. A complete UPC-A is 95 modules wide: 84 modules for the 12 digits plus 11 modules for the start, middle, and end guard patterns. A quiet zone at least 9 times the x-dimension wide must be present on each side. UPC-A can be reduced or magnified anywhere from 80% to 200%.
For developers and ops: storing, normalising and validating barcode data
Spreadsheet and database handling is where clean identifiers go wrong. Retail Scan & Stock identifies three specific failure modes: leading zeros dropped because a spreadsheet reads 012345678905 as the number 12345678905; long digit strings displayed in scientific notation; and a 15-digit numeric precision limit that converts digits past the 15th position to zeroes. Microsoft Support documentation confirms the 15-significant-digit limit, and the recommended fix is to format the column as Text before entering or importing identifiers.
The DEV Community validator walkthrough makes the same point from the engineering side: keep barcode values as strings, never pass them through Number(), and validate the check digit before rendering anything. That author also draws a boundary worth keeping: a passing check digit means the number satisfies the mathematical rule — it does not mean the number was licensed correctly, that the product exists, or that a marketplace will accept it.
Why Amazon, Walmart and Target Reject Some Seller Barcodes
Marketplaces verify the GTIN against the GS1 registry and expect the brand and company on record to match the listing. A real but mismatched number fails that check and is treated as an invalid GTIN.
The rejection mechanism is catalog mismatch — not a broken barcode, and not a UPC versus EAN-13 format problem. This distinction matters, because sellers often respond to a rejection by reprinting the symbol, which fixes nothing.
How marketplace GTIN validation actually works
BoxHero describes the process: Amazon checks the barcode you enter against the GS1 database and expects the brand and company on record to match your listing, and Amazon’s barcode policy states that it verifies UPCs through the GS1 database and treats codes that do not match GS1’s information as invalid. A reseller code registered to the reseller’s original company name can fail that check, so even when the code scans, a listing may be rejected for an invalid GTIN. The practical safeguard is to license codes directly from GS1 US for anything going to Amazon, Walmart, or Target, and to keep the GS1 certificate on hand — these marketplaces can ask you to prove the code is registered to your company.
ASIN is not a GTIN (and a case code is not a unit code)
Two further mismatches cause avoidable rejections. An ASIN is Amazon’s own catalog identifier and does not replace a GTIN anywhere else, as Vxceed notes in its list of external identifiers a SKU maps to online. And a GTIN-14 case code will not scan as a retail unit — Retail Scan & Stock warns against scanning a master carton symbol as an individual piece count on the sales floor.
Sunrise 2027 and 2D Barcodes: What Changes for Your UPC-A
Sunrise 2027 is a GS1 target for retail point-of-sale systems to read 2D codes — QR, GS1 DataMatrix, GS1 Digital Link — alongside the 1D barcodes they read today. It is a target, not a government mandate.
Sunrise 2027 in one paragraph: target, not mandate
In BoxHero’s rendering, GS1 states that “by the end of 2027, retail point-of-sale systems should be able to read and process 2D barcodes in addition to the 1D barcodes they read today.” Three things keep this in proportion: the UPC is not being banned, there is no fine for skipping it, and the pressure comes from large retailers rather than regulators. A 1D barcode holds one piece of information — the GTIN — while a 2D code holds several thousand characters, including batch number, expiration date, serial number, and a web link tied to the product. Adoption is already underway: GS1 reports the transition is being tested in 48 countries representing 88% of the world’s GDP, per a 2024 GS1 statement cited by BoxHero.
The practical action now is small. Keep printing the UPC-A, leave label real estate for a future 2D carrier, and make sure your GTIN data is clean enough to power one. GS1 suggests printing both the 1D and 2D barcode on the same package during the switch.

From the first 1974 scan to 2D in 2027
The 1D retail barcode has been in continuous use since the first UPC scan. Wikipedia records that the first UPC-marked item scanned at retail checkout was a 10-pack of Wrigley’s Juicy Fruit chewing gum, purchased at the Marsh supermarket in Troy, Ohio, at 8:01 a.m. on 26 June 1974, ringing up 67 cents on an NCR cash register.
That longevity was deliberate. Murray Eden, a consultant on the team that created the UPC barcode and chairman of a committee of scientists at MIT, helped, in his 1970s-era phrasing, “select a symbol that would endure the inevitable rush of technology that lay ahead.” He also chose the font and introduced the human-readable digits below the bars as a fail-safe in case a reader malfunctioned. GS1 now frames Sunrise 2027 as coexistence rather than replacement — which is exactly consistent with a symbol chosen for endurance more than fifty years ago. The history of QR codes tells the same story from the other direction: a 2D carrier invented for Toyota factory floors that now shares labels with the 1D symbol it was never meant to replace.
Conclusion
UPC vs EAN-13 is not a choice between competing standards — it is one GS1 number printed in two regional lengths, and US sellers print the 12-digit UPC-A. License a GTIN from GS1 US (verify current pricing at gs1us.org before budgeting), assign a separate number to every variant and packaging level, generate the symbol to spec, scan-test a physical proof, and store the number as text. Reserve label space for a 2D carrier, but do not reprint anything for Sunrise 2027 — it is a target, not a mandate.
FAQ
Can I convert a 12-digit UPC to an EAN-13, or do I need to buy a new number?
No purchase is required. Add a leading zero to the 12 digits and the result is the valid EAN-13 for the same item — for example, 012345678905 becomes 0012345678905. The conversion changes formatting only, never identity. You still need a new GTIN for a genuinely new product, size, flavor, or multi-pack.
Do US checkout scanners actually read EAN-13 barcodes?
Yes. Modern US point-of-sale systems are built to read 13-digit EAN-13, since a US UPC-A is the leading-zero form of the same number — Retail Scan & Stock notes that virtually all modern retail scanners read both formats. A US product should still print UPC-A, because that is what US retailers and marketplace listings expect.
Can I just make up my own barcode number for my product?
No. The number must come from a GS1-issued prefix so it resolves uniquely in the global registry. A self-invented number may render and even scan locally, but marketplaces and retailers that validate against GS1 will reject it. Internal-only labels for your own warehouse can use your own codes, because they never need to resolve globally.
Is a UPC the same thing as a GTIN?
A GTIN is the umbrella identifier family, and UPC-A (GTIN-12) and EAN-13 (GTIN-13) are two of its lengths. GTIN-8 covers small packages and GTIN-14 covers cases and pallets, so “GTIN” is the safe general term. Most US retail listings that ask for a “UPC” will accept any valid GTIN.
Why does my barcode turn into scientific notation in Excel?
Spreadsheets treat long digit strings as numbers, strip the leading zero, and switch to scientific notation past 15 digits. Retail Scan & Stock notes that Excel numeric precision is limited to 15 significant digits, so digits past the 15th position can become zeroes. Store barcode values as text and validate the check digit before exporting to artwork — and always keep the leading zero on a 13- or 14-digit GTIN.
Will my UPC stop working in 2027 because of Sunrise 2027?
No. Sunrise 2027 is a GS1 target for retail POS to read 2D barcodes alongside 1D, not a ban or a deadline for brands. There is no fine for non-compliance and UPC-A and EAN-13 remain scannable. The practical move is to keep printing your UPC and reserve label space for a future 2D carrier.
Do books need a UPC, or is the ISBN barcode enough?
Books carry a 13-digit ISBN encoded as an EAN-13 Bookland barcode, not a UPC-A, according to ISBN Services. ISBNs come from Bowker in the US, so you do not license a GS1 GTIN for the book itself. Non-book items bundled with a book — a tote, a toy, a media accessory — still need their own GS1 GTIN.
Do I need a separate UPC for each size, color, or multi-pack?
Yes. Every sellable variation that a retailer scans or stocks separately needs its own distinct GTIN. Different packaging levels also differ: each unit, inner pack, and case carry their own GTIN, with GTIN-14 and ITF-14 on cases. Reusing one number across variants is a leading cause of listing rejections and inventory errors.









