GTIN (Global Trade Item Number) is the umbrella term. EAN-13 and UPC-A are specific formats within it. Every UPC is a GTIN. Every EAN is a GTIN. If your system stores GTINs as 14-digit strings, both EAN and UPC fit inside that field with leading zeros.
A brief history of product numbering
In 1974, the first UPC barcode was scanned on a pack of Wrigley's chewing gum in an Ohio grocery store. The Universal Product Code was a 12-digit number developed by the Uniform Code Council (UCC) in the United States. It solved a simple problem: identify a product at the point of sale without manual entry.
Europe followed in 1977 with EAN, the European Article Number. EAN used 13 digits instead of 12, adding a country prefix to support international trade. The extra digit was not an accident. It allowed European systems to encode the country of origin for the issuing organization, which mattered when goods crossed borders between dozens of nations with separate retail markets.
For decades, these two systems ran in parallel. North American suppliers printed UPC-A barcodes. European suppliers printed EAN-13 barcodes. Distributors who traded across the Atlantic needed to handle both.
In 2005, GS1 (the organization formed by merging UCC and EAN International) unified everything under a single term: GTIN. The Global Trade Item Number is not a new barcode format. It is a naming convention that covers UPC-A (GTIN-12), EAN-13 (GTIN-13), EAN-8 (GTIN-8), and the 14-digit ITF-14 used on shipping cases (GTIN-14).
The formats side by side
| Name | Digits | Common usage | Example |
|---|---|---|---|
| UPC-A (GTIN-12) | 12 | North American retail products | 012345678905 |
| EAN-8 (GTIN-8) | 8 | Small packaging (batteries, fuses) | 96385074 |
| EAN-13 (GTIN-13) | 13 | International retail products | 4006381333931 |
| GTIN-14 (ITF-14) | 14 | Outer cases, pallets, logistics units | 14006381333938 |
All four formats are GTINs. The difference is length and application context.
How they relate: the padding rule
A GTIN-14 field can store any of the shorter formats by padding with leading zeros. A UPC-A code like 012345678905 becomes 00012345678905 when stored as GTIN-14. An EAN-13 like 4006381333931 becomes 04006381333931.
This is the single most important thing for product data teams to understand. If your PIM, ERP, or ecommerce platform stores GTINs in a 14-character field, every barcode fits. If your system strips leading zeros, UPC and EAN values become ambiguous and check digit validation breaks.
Check digit calculation
All GTIN formats use the same modulo-10 check digit algorithm. The last digit of any GTIN is calculated from the preceding digits using alternating weights of 1 and 3. This means you can validate a GTIN without knowing whether it is a UPC-A or EAN-13. The math is the same.
The check digit catches single-digit transcription errors and most adjacent-digit transpositions. It does not catch all errors (swapping two digits that are both odd positions, for example), but it is effective enough to flag the majority of data entry mistakes.
You can validate any GTIN instantly with the free GTIN validator to confirm the check digit is correct and the format is valid.
What electrical distributors need to know
Electrical products sold in Europe almost always carry EAN-13 barcodes. Products from North American manufacturers like Eaton, Hubbell, or Leviton often carry UPC-A codes. Japanese manufacturers (Panasonic, Omron) use JAN codes, which are structurally identical to EAN-13 with a country prefix of 45 or 49.
When you receive supplier feeds, you will encounter all three terms used loosely. A German cable manufacturer's feed might label the column "EAN." An American connector supplier might call it "UPC." Your PIM probably calls it "GTIN." They are all referring to the same data point: the GS1 barcode number printed on the product packaging.
Practical rules for your data model
-
Store GTINs as strings, not integers. Leading zeros matter. The UPC-A
012345678905is a valid 12-digit code. If your database stores it as the integer12345678905, you have lost a digit and the check digit will fail validation. -
Use a 14-character field. This accommodates GTIN-8, GTIN-12, GTIN-13, and GTIN-14 with left-padding.
-
Normalize on import. When a supplier sends a 12-digit UPC, pad it to 14 digits. When they send a 13-digit EAN, pad it to 14 digits. Validate the check digit after padding, not before.
-
Never truncate. If a system sends you a 14-digit GTIN and you store it in a 13-character field, you have destroyed the data. This happens more often than you would expect, especially with logistics-level GTINs on case packs.
When the terminology matters
In EDI transactions (EDIFACT, BMEcat), the qualifier matters. BMEcat uses GTIN as the standard identifier type. EDIFACT messages distinguish between EAN and UPC in certain segments. If you are building data exports for trading partners, check which qualifier they expect. Sending EAN when the partner system expects GTIN can cause silent rejections.
In GS1 data pools like GDSN, the term is always GTIN. If you are syndicating product data through the GS1 network, use GTIN and store the appropriate 8, 12, 13, or 14-digit value.
Quick reference for common questions
"My supplier sent a 12-digit barcode. Is it a GTIN?" Yes. It is a GTIN-12 (UPC-A).
"We need to convert UPC to EAN." You do not convert. You pad the 12-digit UPC with a leading zero to get a 13-digit number. The check digit remains the same. 012345678905 as UPC-A is 0012345678905 as EAN-13.
"Our system requires a 13-digit EAN but the supplier sent 12 digits." Add one leading zero. Validate the check digit after adding it.
"Is a JAN code the same as an EAN?" Yes. JAN (Japanese Article Number) is structurally identical to EAN-13 with country prefixes 45 or 49.
Run any barcode through the free GTIN validator to confirm format, check digit, and GS1 prefix before importing it into your system.