Barcodes: GTIN, UPC, EAN and JAN

Product identifiers are your best friend for accurate product matching. Let's look at what they are, where to find and how to use them.

You have seen them before. Barcodes are printed on the packaging of a lot of products. In brick-and-mortar commerce, the cashier drags them over their scanners, it makes "beep" and the electronic point of sales system adds the product to the list.


This barcode is a representation of the numbers that are usually printed next to the bars. The numbers can be used to identify a product globally.

The relationship between GTIN, UPC, EAN and JAN

Universal Product Code (UPC)

It all started with the 12-digit Universal Product Code (UPC), which is commonly used in the United States, Canada, United Kingdom, Australia and other countries. A shorter version exists for small packages.

European Article Number (EAN) and Japan Article Number (JAN)

In Europe, there is a compatible standard called European Article Number (EAN). It usually has 13 digits although a shorter version exists for smaller packages. Any UPC can be converted into an EAN simply by adding a zero to the front.

Japan uses the same standard, calling it a Japan Article Number (JAN). The codes used in Japan start with different digits than the ones used in Europe, so they are globally unique.

Global Trade Item Number (GTIN)

The 14-digit Global Trade Item Number (GTIN), like the name suggests, is the global standard and is compatible with both EAN and UPC. Add a leading zero to any EAN and you have a GTIN.

Check the validity of your codes

The last digit of any GTIN, EAN or UPC is an error detecting check digit. Any of these codes can easily be checked for plausibility by calculating the correct check digit and comparing it with the last digit of the code. This way you can identify typos. However, you cannot see wether the code was actually registered at the respective authority.

Here's a calculator to check a GTIN, EAN or UPC and an explanation of the checking algorithm.

Checking the codes in your system leads to better data quality and avoids errors in product matching as well as wrong listings e.g. on price comparison sites. A good matching is also important for common use cases such as repricing and assortment optimization.

Using GTIN, EAN or UPC on Price API

When requesting product data on Price API, you have to somehow identify the product you want us to look up. Many (but not all) data sources allow their users to search by these codes. If you request data from one of these sources, we suggest to use these codes, because it generally improves the product matching.

Price API does not distinguish between the three standards. You can use the code that you have, GTIN, EAN or UPC. To use this, set gtin as the key to your request.

Finding your GTIN, EAN or UPCs

You probably have any of these codes in your shop system, ERP system or similar. You may also find them in the product feeds you provide towards price comparison or market place sites. If you have a BI team, they can probebly tell you more. And they are likely printed on your physical products' packaging.

If you don't have access to any of these, your best option will be to set Term as a key and use a combination of

  • brand name and model number
  • brand name and Manufacturer Part Number (MPN) or
  • brand name and product name

In recent customer projects, we could achieve good matching rates with these.


  • GTIN, EAN and UPC are numbers that identify products globally.
  • They can be validated and you should do that.
  • Using these on Price API will improve your matching rate.
  • Your company likely has one of these codes in your systems.

What’s Next

Do you have a GTIN for each of your SKUs? Are they all valid? If not, this may be causing damage to your company. This is something we can fix together, easily.