Standards/ean-13
EAN-13
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., 30–37 = France, 40–44 = 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
0is 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
978or979) 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.
- 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 ports — zxing/zxing — 34 000★, active 2025. Decodes EAN-13 alongside UPC-A, Code 128, QR, etc.
- C / C++ —
libzint(Zint barcode generator);zbar(decoder). - Python —
python-barcode,treepoem,pyzbar. - PHP —
picqer/php-barcode-generator,picqer/php-barcode-image-renderer. - JavaScript —
JsBarcode,bwip-js(browser + Node.js). - C# / .NET —
ZXing.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]:
- GS1 General Specifications — defines EAN/UPC numbering, prefix assignments, check-digit calculation, application identifiers.
- ISO/IEC 15420:2009 — formal symbology specification.
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 40–44 is German-assigned, 49 is Japan, 50 is the UK, 45/49 is also Japan in older assignments, 54 is Belgium/Luxembourg, 70–73 is Norway, 90–91 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
- International Article Number (EAN) — Wikipedia
- EAN-13 — BarcodeFYI
- GS1 — Wikipedia
- ISO/IEC 15420:2009 — EAN/UPC bar code symbology
- History of EAN barcode — Free Barcode
- EAN-13 specifications — International Barcodes
- zxing/zxing — GitHub
- EAN-13 — GS1 Ireland
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal