Skip to content
Home » Insight » GTIN, EAN, UPC and MPN: The Product Identifiers Explained

GTIN, EAN, UPC and MPN: The Product Identifiers Explained

Most catalogues we open have four identifiers in one column. A GTIN is the GS1 number that identifies a trade item, and EAN and UPC are older names for two of its formats. An MPN is the manufacturer’s own part number. An ASIN belongs to Amazon and identifies a listing, not a product. Here is what each one is, who issues it, and where it belongs in your data model.

The identifiers at a glance

IdentifierWhat it isFormatIssued byWhat it identifies 
GTINThe GS1 identification key for trade items. The umbrella term, not a fifth number8, 12, 13 or 14 digitsGS1, through a licensed GS1 Company PrefixA trade item at one packaging level
GTIN-8Short GTIN for small packs, carried in an EAN-8 barcode8 digitsGS1 member organisationSmall consumer units
GTIN-12The number most people still call a UPC, carried in a UPC-A barcode12 digitsGS1, mainly GS1 USRetail units, mostly North America
GTIN-13The number most people still call an EAN, carried in an EAN-13 barcode13 digitsGS1 member organisationRetail units worldwide
GTIN-14Case and outer pack identifier, carried in ITF-14 or GS1-12814 digitsBuilt by the brand owner from an indicator digit plus its own GTINCartons, cases, pallets, variable measure items
MPNManufacturer part numberAlphanumeric, no fixed length, no check digitThe manufacturerOne product within that manufacturer’s range
ASINAmazon Standard Identification Number10 alphanumeric charactersAmazonA listing inside Amazon
SKUYour own stock keeping unit codeWhatever you chooseYouAn item in your own systems

The practical rule sits in the last column. GTIN identifies a trade item globally. MPN identifies a product within one manufacturer. ASIN identifies a listing on one marketplace. SKU identifies a line in your business. They are not interchangeable and they do not belong in the same field.

GTIN is the umbrella, not a separate number

GS1 defines the Global Trade Item Number as the identifier for trade items, and it comes in four lengths: GTIN-8, GTIN-12, GTIN-13 and GTIN-14. All four are GTINs. A product does not have a GTIN and an EAN. It has a GTIN-13, and EAN-13 is the barcode symbology that carries it.

That is worth repeating, because it is the source of most identifier confusion in supplier data. GS1’s own guidance puts it plainly: a GTIN does not replace a UPC, because the UPC-A is a barcode that encodes a GTIN-12. The number and the barcode are different things.

You obtain GTINs by licensing a GS1 Company Prefix from your national GS1 member organisation, GS1 UK in Britain. GS1 UK warns against buying identifiers from third parties reselling EAN or UPC licences. Retailers and marketplaces check the number against GS1 data, and reject listings that do not match.

Which length applies where

GTIN-13 is the default for retail trade items across most of the world. GTIN-12 is the North American equivalent and appears constantly in catalogues sourced from US brands. A GTIN-12 is a valid GTIN-13 with a leading zero. That is why storing identifiers as fourteen-digit, zero-padded values is the safest choice in a database.

GTIN-8 exists for packaging too small to carry an EAN-13, the classic examples being cigarettes, chewing gum and pencils. You will rarely allocate one.

GTIN-14 is the one distributors get wrong. It identifies a packaging level above the consumer unit: an inner carton, an outer case, a pallet. It starts with an indicator digit, one to eight for packaging levels or nine for variable measure items. The company prefix and item reference follow, with a fresh check digit. It cannot be used in an EAN or UPC barcode. That is why cases carry ITF-14 or GS1-128 symbols rather than being scanned at a till.

There is no international agreement on which indicator digit means which packaging level. Do not infer pack hierarchy from the indicator digit in a supplier feed. Ask.

The check digit, and why it matters to you

Every GTIN ends in a check digit calculated from the digits before it. GS1’s method is the same for GTIN-8, GTIN-12, GTIN-13, GTIN-14 and the SSCC. Working from the right, multiply the digits alternately by three and by one, starting with three in the position next to the check digit. Add the results. Subtract the total from the nearest equal or higher multiple of ten.

Take the twelve digits 501234567890. Applying the weights gives 5, 0, 1, 6, 3, 12, 5, 18, 7, 24, 9 and 0. Those add to 90. The nearest equal or higher multiple of ten is 90, so the check digit is 0 and the full GTIN-13 is 5012345678900.

This is a five-line validation rule, and it is the highest-value one you can run on inbound supplier data. It catches transposed digits, truncated leading zeros and numbers that were never GTINs at all. We build it into the supplier data onboarding process on every project, because it costs nothing and it stops bad identifiers reaching a marketplace feed.

One myth to kill while we are here. The GS1 prefix does not tell you where a product was made. GS1 states this directly: prefixes do not identify country of origin. A number starting 500 to 509 means the company licensed its prefix through GS1 UK, nothing more.

EAN and UPC: legacy names for GTIN formats

EAN originally stood for European Article Number and is now the International Article Number. UPC is the Universal Product Code. Both names survive in everyday use, in ERP field labels, and in the header rows of supplier spreadsheets. GS1’s own customer guidance now describes GTIN-12 as also called UPC, and GTIN-13 as also called EAN or JAN.

For your purposes the translation is mechanical. EAN-13 means GTIN-13. UPC-A means GTIN-12. EAN-8 means GTIN-8. A twelve-digit UPC becomes a thirteen-digit EAN by adding a leading zero, and the barcode is the same physical mark.

The reason to care is field discipline. Give your PIM separate EAN, UPC and GTIN attributes and the same number lands in two of them. The third stays blank, and no rule says which one wins. One identifier attribute, typed and validated, with the format recorded. That is the same argument we make about attribute design generally, and it applies with extra force to identifiers.

MPN: the manufacturer’s number, not a global identifier

An MPN is the number the manufacturer uses for a product within its own range. Google defines it as alphanumeric, of varying length, uniquely identifying the product with its manufacturer.

Three properties follow, and they are the ones that cause trouble.

An MPN is only unique within a brand. Two manufacturers can and do use the same string. An MPN alone is not an identifier, so it is always brand plus MPN, never MPN on its own.

An MPN has no check digit and no format rules. Hyphens, spaces, leading zeros and case all vary, and the same part appears as ABC-123, ABC123 and abc 123 across three supplier files. Normalisation rules have to be explicit and stored, not applied ad hoc in a spreadsheet.

An MPN is variant-level. Google’s guidance is that different colours or sizes usually have different MPNs. If your model holds one MPN at product level, you have already lost the variant detail.

In B2B distribution the MPN is often the number that actually matters. Trade customers search by it, cross-reference by it, and phone up quoting it. Many industrial and electrical products never receive a GTIN at all, because they are not sold as retail trade items. That is why we treat manufacturer part numbers as first-class data in B2B product classification work, alongside the classification attributes themselves.

Automotive is the sharpest case. Parts identity there runs through brand, part number and application data rather than GTIN. That is exactly the problem the ACES and PIES standards exist to solve.

ASIN: Amazon’s number, not a product identifier

An ASIN is a ten-character alphanumeric identifier assigned by Amazon for products within Amazon. For books with a ten-digit ISBN, the ASIN and the ISBN are the same, which is where the format came from.

Two things follow. An ASIN identifies a listing in Amazon’s catalogue, so it is meaningless anywhere else, and you cannot allocate one yourself. And an ASIN is not a substitute for a GTIN. Amazon generally requires a product identifier to create a listing, and validates GTINs against GS1 data, which is why numbers bought from resellers get rejected.

Store ASINs if you sell on Amazon. Store them as channel identifiers, next to your other marketplace references, not in the field where your GTIN lives.

Where GTIN, MPN and ASIN belong in your data model

The decisions are simple once the definitions are straight.

GTIN sits at the level it identifies. A consumer unit GTIN belongs on the sellable variant, which is a taxonomy and attribution decision as much as an identifier one. A case GTIN belongs on the pack configuration, not on the same field as the unit GTIN. If your model cannot hold both, the model is wrong, not the data.

Brand and MPN travel together. Store them as a pair, store the raw value as supplied, and store the normalised value separately. You will need the raw value when a supplier changes their formatting.

Channel identifiers stay in channel fields. ASIN, marketplace product ID, and any retailer-specific code. They are outputs of a sales channel, not properties of the product.

Feeds need identifier logic, not identifier fields. Google asks for GTIN, brand and MPN. It requires an MPN when there is no manufacturer-assigned GTIN. It also provides an attribute for the genuine no-identifier case, such as handmade or antique items. Google’s instruction is blunt and worth quoting to anyone tempted to fill blanks: do not make up, guess, or include values from similar products.

Deciding which identifier lives at which level, and which is mandatory for which category, is a data model decision rather than a feed decision. It belongs in the same conversation as taxonomy and attribution, because the answer differs by category. Retail-packaged goods need GTINs. Bulk industrial lines often do not have them and never will.

The GTIN and MPN mistakes we see most often

One identifier column. GTIN, EAN, UPC and MPN in a single field, distinguished by length and hope. Splitting this after the fact is a week of work per catalogue.

Leading zeros eaten by Excel. A GTIN-13 becomes twelve digits, fails the check digit test, and gets rejected by every channel. Store identifiers as text, always.

Reused GTINs. A GTIN identifies a specific trade item. When the pre-defined characteristics of the item change in ways relevant to trading, GS1’s allocation rules call for a new GTIN. Reusing the old one because the SKU stayed the same causes fulfilment errors that surface as customer complaints.

MPN treated as unique. A cross-reference built on MPN alone, without brand, that quietly matches two different manufacturers’ parts.

Bought barcodes. Numbers acquired from resellers rather than licensed from GS1. They are not registered against your company, and marketplaces check.

Key takeaways

  • GTIN is the umbrella identifier. GTIN-8, GTIN-12, GTIN-13 and GTIN-14 are its four lengths.
  • EAN and UPC are legacy names. EAN-13 carries a GTIN-13, UPC-A carries a GTIN-12, and a GTIN-12 becomes a GTIN-13 by adding a leading zero.
  • GTIN-14 identifies a packaging level above the consumer unit and cannot be scanned at a retail till.
  • Validate every inbound GTIN with the GS1 check digit calculation. It is five lines of code and catches most bad data.
  • MPN is unique only within a brand, has no format rules, and is usually variant-level. Store brand and MPN together.
  • ASIN is an Amazon listing identifier issued by Amazon. It is not a product identifier and never replaces a GTIN.

Identifier problems rarely arrive alone. They usually show up alongside inconsistent attributes, duplicate records and a supplier feed nobody trusts. Book a thirty minute discovery call and we will look at your identifier fields and tell you what we would fix first.