Skip to content
barcoder

Standards/ean-13

EAN-13

Type1D Linear
Completeness92%high

Overview

EAN-13 (European Article Number, 13 digits) is the international standard 1D retail product barcode used on essentially every consumer-packaged-goods product sold worldwide outside North America [1, 2]. It was developed by the European Article Numbering Association (founded 1977, Brussels) as a 13-digit extension of the original 12-digit US upc-a standard, enabling international identification beyond the US numbering space [1, 3]. Standardised as ISO/IEC 15420 (current edition 2009) [4] and governed by GS1 (the organisation EAN merged into in 2005) [1].

EAN-13 is almost certainly the most-printed barcode in the world by ongoing print volume — every retail product carton, every supermarket SKU, billions of physical packages annually. Together with upc-a (its 12-digit US counterpart) it forms the foundation of global retail point-of-sale scanning.

History

Background — UPC came first (1973/1974) [upc-a-ref, 5]: George Laurer's UPC-A 12-digit barcode was selected by the Uniform Grocery Product Code Council in 1973 and first scanned commercially on 26 June 1974 (a pack of Wrigley's chewing gum at a Marsh Supermarket in Troy, Ohio) — the foundational retail barcode.

1976 — UPC extended to 13 digits [1]: The original 12-digit code was extended to 13 digits, allowing the identification system to be used outside the US. The extra digit accommodated country prefixes for international numbering authorities.

1977 — European Article Numbering Association founded in Brussels [1, 3]: Twelve European countries' national numbering organisations came together to form the European Article Numbering Association, which standardised EAN-13 as the international retail barcode. Founding members included the UK, Germany, France, Italy, the Netherlands, Belgium, and others.

1990 — EAN-UCC global cooperation [1]: EAN and the US's Uniform Code Council (UCC) signed a global cooperation agreement, presence expanded to 45 countries. The pair operated as EAN International (Brussels) and UCC (Princeton, NJ) under a coordinated standards umbrella.

2005 — GS1 unified rebrand [1, 3]: EAN International + UCC officially merged into GS1 (Global Standards 1), a single global standards organisation. EAN-13 and UPC-A continued as parallel symbology variants but governance unified. By 2005 GS1 was present in over 90 countries; today the count exceeds 110.

ISO/IEC 15420 — the formal international standard covering both EAN-13 and EAN-8 symbology. Current revision: 2009 [4].

Technical specification

EAN-13 is a 1D linear symbology with strict fixed-length structure [1, 4, 6]:

Parameter Value
Symbology family 1D linear
Length Fixed 13 digits (no variable length)
Character set Digits 0–9 only
Module ("bar") encoding 7 modules per digit; A/B/C subset coding
Bars per digit 2 bars + 2 spaces
Quiet zone 10 × module width minimum on each side
Check digit Last digit (modulo-10 weighted by 1, 3, 1, 3, …)
Magnification factor 80 % – 200 % of nominal size
Nominal size at 100 % 37.29 mm wide × 25.93 mm tall

Digit structure [6]:

Position(s) Meaning
1 First digit of the GS1 prefix; encoded implicitly through the A/B encoding pattern of the next 6 digits
2–3 Remaining prefix digits — identifies the GS1 Member Organisation / country (e.g., 3037 = France, 4044 = Germany, 49 = Japan, 50 = UK)
4–12 Company prefix + product reference number (assigned by national GS1 member to the brand owner, who assigns product numbers within their prefix)
13 Check digit (modulo-10)

The implicit first-digit encoding is a clever piece of design: a 12-digit barcode space (matching UPC-A) carries a 13-digit number through A/B parity-pattern encoding of the left-half digits. This means UPC-A scanners read EAN-13 as if it had a 0 prefix — backward compatibility between the two standards [upc-a-ref, 6].

Variants [1]:

  • EAN-13 — standard 13-digit retail product barcode (this report).
  • EAN-8 — short 8-digit variant for small packages where EAN-13 wouldn't fit.
  • EAN-13 with add-on — EAN-13 + 2-digit or 5-digit supplemental barcode for periodicals (issue numbers) and books (price).
  • upc-a — 12-digit US/Canadian equivalent; structurally a subset of EAN-13 (EAN-13 with leading 0 is UPC-A).

Use cases

EAN-13 is the universal retail point-of-sale barcode for consumer-packaged goods outside North America [1, 2, 3]:

  • Supermarket and grocery retail — every food / beverage / household product sold in supermarkets worldwide. The structural use case from day one.
  • Pharmacy and drugstore retail — over-the-counter pharmaceuticals, personal care, beauty (alongside data-matrix for prescription drugs in many jurisdictions).
  • Department store and apparel retail — clothing tags, accessories.
  • Convenience stores — packaged snacks, beverages, tobacco.
  • Books and magazines — EAN-13 encoding the ISBN (with prefix 978 or 979) is the global book industry standard; magazines use EAN-13 with a 5-digit issue add-on.
  • Electronics retail — consumer electronics packaging.
  • Toys, sporting goods, automotive aftermarket parts — essentially all retail product categories.
  • Online retail — Amazon and other e-commerce platforms use EAN-13 / UPC-A as the primary product-matching identifier for catalogue management.
  • Inventory and warehouse management — pallet-level inventory uses code-128 / gs1-databar but item-level inventory inherits from EAN-13 retail packaging.

Why EAN-13 dominates [1, 6]:

  • Fixed length and numeric-only structure → simple scanner decoding, robust at high scan speeds.
  • Universal GS1 numbering hierarchy → uniquely identifies any product worldwide.
  • Backward-compatible with upc-a (UPC-A is functionally EAN-13 with a leading 0).
  • Public domain — no per-scan royalties.
  • 50+ years of installed-base scanner support (every POS scanner ever made reads EAN-13).

Implementations

EAN-13 has universal scanner and generator support — it predates almost every other 2D barcode and every commercial barcode-handling library / scanner supports it natively [7]:

  • Java + many portszxing/zxing — 34 000★, active 2025. Decodes EAN-13 alongside UPC-A, Code 128, QR, etc.
  • C / C++libzint (Zint barcode generator); zbar (decoder).
  • Pythonpython-barcode, treepoem, pyzbar.
  • PHPpicqer/php-barcode-generator, picqer/php-barcode-image-renderer.
  • JavaScriptJsBarcode, bwip-js (browser + Node.js).
  • C# / .NETZXing.Net, Aspose.BarCode, Dynamsoft Barcode Reader (commercial), system-level Windows fonts.
  • OS-level mobile — iOS AVFoundation, Android CameraX / ML Kit all decode EAN-13 natively.
  • POS scanners — every commercial 1D and 2D POS scanner (NCR, Datalogic, Honeywell, Symbol/Zebra, Cognex, Diebold) reads EAN-13. Hardware support is universal.
  • Mobile SDKs — Scanbot, Scandit, Anyline, Dynamsoft all support EAN-13.
  • Print and label software — every barcode-printing software (BarTender, NiceLabel, Zebra Designer, etc.) generates EAN-13 natively.

Reference documentation [3, 4]:

Comparison

vs. upc-a — Structurally identical at the symbol level, differs by one digit. UPC-A is 12 digits (US/Canadian retail); EAN-13 is 13 digits (rest-of-world). EAN-13 with leading 0 is exactly UPC-A — backward compatibility was a deliberate design choice. Modern POS scanners and inventory systems treat them as equivalent; some retailers store all GTINs as 14-digit GTIN-14 internally and pad shorter codes with leading zeros [upc-a-ref].

vs. code-128 (and GS1-128) — Different deployment niche. EAN-13 is the retail item-level barcode (one symbol per product); Code 128 / GS1-128 is the supply-chain pallet-level barcode (one or more symbols per shipping carton, carrying multiple data fields). Both are GS1-governed but serve different supply-chain levels [code-128-ref].

vs. data-matrix (GS1 DataMatrix specifically) — GS1 DataMatrix encodes the same GTIN as EAN-13 but in 2D matrix form. It enables smaller printable size + multi-field encoding (GTIN + serial number + batch + expiry in one symbol) — pharmaceutical packaging now uses GS1 DataMatrix instead of EAN-13 for serialisation. EU pharmaceutical packaging since 2019: GS1 DataMatrix mandatory, EAN-13 supplementary. [data-matrix-ref]

vs. qr-code payment QRs (sgqr, pix, etc.) — Completely different domain. EAN-13 is for retail product identification at supermarket checkout; payment QRs are for initiating a financial transaction. The two coexist on consumer-product packaging in many cases — EAN-13 for SKU identification, an additional payment QR for things like donations or app-download links [qr-code-ref].

vs. gs1-databar (RSS / Reduced Space Symbology) — GS1 DataBar is GS1's smaller-footprint linear successor for product categories where EAN-13 is too large (small produce, coupons, fresh foods with variable weight). Designed to coexist with EAN-13 at the same POS scanner. Not a replacement; addresses a different need.

Fun facts

EAN-13 is the most-printed barcode in the world by ongoing print volume [1, 2] — every retail-packaged consumer product carries one. Estimates put the count at trillions of unique EAN-13 codes assigned over the standard's 50-year history, and tens of billions of physical EAN-13 symbols printed annually on product packaging. No other barcode (not upc-a, not qr-code, not code-128) approaches this print volume.

The 1977 founding of the European Article Numbering Association in Brussels [1, 3] is one of those quiet European-standards moments that shaped the global economy decisively. The 12 founding countries' decision to standardise on EAN-13 instead of fragmenting national retail-barcode standards prevented exactly the kind of regional incompatibility that hobbled (for example) early international payment systems. The result: a German supermarket scanner can read an Italian product instantly; a Japanese product sold in Brazil scans without conversion.

Every ISBN since the 1980s is encoded as an EAN-13 with the 978 or 979 prefix [1] — making books one of the largest single application categories. The publishing industry's complete adoption of EAN-13-as-ISBN unified global book commerce in a way that wasn't structurally inevitable; it was the practical victory of EAN-13's flexible numbering hierarchy.

The "first scan" anniversary celebrated each 26 June is technically upc-a's anniversary [upc-a-ref], not EAN-13's — but EAN-13 inherited and extended UPC-A's installed-base advantage, so the 1974 Marsh-Supermarket-Wrigley-gum moment is functionally the founding event of EAN-13's lineage too. Every annual "barcode anniversary" coverage that mentions UPC-A is implicitly celebrating EAN-13's foundation.

The GS1 prefix ranges [3] encode geographic origin in a way that's culturally informative: prefix 4044 is German-assigned, 49 is Japan, 50 is the UK, 45/49 is also Japan in older assignments, 54 is Belgium/Luxembourg, 7073 is Norway, 9091 is Austria, etc. Many consumers worldwide know to read the first 2–3 digits of EAN-13 as a country indicator — though it's technically the country of the GS1 member that assigned the prefix, not necessarily the country of manufacture.

Status

Active, foundational, universal [1, 4]:

  • ISO/IEC 15420:2009 is the current spec
  • GS1 General Specifications continuously updated; current edition publicly available [3]
  • Universal POS scanner support — every commercial scanner reads EAN-13 natively
  • Mandatory for retail product sales in most retail chains worldwide (de facto standard)
  • Public domain — no licensing fees

Strategic context:

  • 2D successors (data-matrix via GS1 DataMatrix, qr-code via various national-payment-QR overlays) coexist with EAN-13 rather than replacing it for the item-level retail SKU identification use case.
  • GS1 SunRise 2027 initiative — a multi-year roadmap to migrate primary retail item-level identification from EAN-13 / UPC-A to 2D codes (GS1 DataMatrix or QR) by 2027 in some product categories; the transition is gradual and not eliminating EAN-13 outright.
  • For the foreseeable future EAN-13 remains the universal retail product barcode; the 2D migration affects regulated categories (pharma, healthcare) first and consumer-grocery last.
  • No deprecation planned; the 50-year-old standard is still adding new applications.

Sources

  1. International Article Number (EAN) — Wikipedia
  2. EAN-13 — BarcodeFYI
  3. GS1 — Wikipedia
  4. ISO/IEC 15420:2009 — EAN/UPC bar code symbology
  5. History of EAN barcode — Free Barcode
  6. EAN-13 specifications — International Barcodes
  7. zxing/zxing — GitHub
  8. EAN-13 — GS1 Ireland

Deployments

No country reports mention this standard by name.

Regions / aggregations not mapped to a single country

  • Universal
source · docs/standards/ean-13/index.md