Skip to main content
badge.freeTool

EAN & GTIN Validator

Validate barcodes, check a whole list at once, or calculate the missing check digit. Instant, free, no signup.

Supported barcode formats

EAN-13

13 digits

13-digit European Article Number, the most widely used retail barcode worldwide.

EAN-8

8 digits

8-digit compact barcode for small products where space is limited.

UPC-A

12 digits

12-digit Universal Product Code, the standard in North America.

ISBN-13

13 digits

13-digit International Standard Book Number, starting with 978 or 979.

GTIN-14

14 digits

14-digit Global Trade Item Number used for shipping containers and cases.

funnel.headline

funnel.body

related.title

related.seeAll

faq.title

What is an EAN/GTIN barcode?

EAN (European Article Number) and GTIN (Global Trade Item Number) are standardized barcode formats managed by GS1. They uniquely identify products in global trade. The most common format is EAN-13, a 13-digit code used on virtually every retail product worldwide.

What's the difference between EAN and UPC?

UPC-A is a 12-digit barcode standard used primarily in North America, while EAN-13 is a 13-digit standard used internationally. A UPC-A code can be converted to EAN-13 by adding a leading zero. Both use the same check digit algorithm.

How is the check digit calculated?

The check digit is calculated using the GS1 algorithm: each digit is multiplied alternately by 1 and 3 (from right to left), the results are added up, and the check digit is whatever number brings the total to the next multiple of 10. This catches most typos and scanning errors.

What does the GS1 prefix tell me?

The first 3 digits of an EAN-13 barcode show the GS1 prefix, which identifies the country or organization that issued the barcode. Note: this shows where the barcode was registered, not necessarily where the product was made.

Why is my barcode showing as invalid?

A barcode can be invalid for several reasons: wrong check digit (most common), wrong number of digits, non-numeric characters, or a typo when entering it manually. Try entering the number again carefully, or scan it instead.

cta.tagline

cta.title

  • cta.trust1
  • cta.trust2
  • cta.trust3