EAN / UPCLinear (1D)Introduced 1977

EAN-2

A 2-digit add-on barcode beside EAN-13/UPC on magazines and newspapers, typically carrying the issue number.

EAN-2 Specification

Character setDigits 0-9 only
Data lengthExactly 2 digits
Check digitHidden check digit encoded in the parity pattern, not printed as text
Density20 modules total
Module width (X-dimension)Nominal 0.33 mm X, matching the adjacent main symbol
Print ratioVariable-width bars and spaces
MagnificationMust match the main symbol magnification (80%-200%)
Quiet zoneSeparator gap from the main symbol; quiet zone on the outer side
StandardGS1 General Specifications (add-on supplements)
OriginEAN International (now GS1), 1977
Sample data53

Try It: Generate a EAN-2 Barcode

This live generator is preconfigured for EAN-2. Adjust size, colors, and text — then download as PNG or SVG. Free, no signup, all encoding happens in your browser.

Open the full EAN-2 generator →

What Is EAN-2?

The EAN-2 (2-digit add-on) is the smallest EAN supplement: two digits in a compact symbol printed immediately right of the main retail barcode. Its classic use is periodicals — the ISSN-derived EAN-13 identifies the magazine, while the add-on carries the issue number of the week or month, so the same checkstand scans every issue of a title without re-keying anything.

It encodes the two digits plus a hidden check digit folded into parity patterns. Because two digits can only count 00-99, it suits cyclical data like issue numbers, edition flags, or weight-band codes — not unique identification. Newspapers, weekly magazines, and comic series remain its natural habitat.

Common Applications

  • Magazine and newspaper issue numbers
  • Edition or variant flags on periodic publications
  • Newspaper bundles and subscription inserts

EAN-2 FAQ

What data goes in the EAN-2 on a magazine?

By convention the issue number: 01-12 for monthly magazines (January = 01), 01-53 for weeklies by ISO week number. The EAN-2 always travels with an ISSN-based EAN-13 or UPC that identifies the publication itself; the add-on only disambiguates which issue.

Why is there a hidden check digit I cannot see?

The add-on has too little space for a printed check digit, so the two data digits are encoded with one of four parity patterns chosen by a check value. Scanners use the pattern to validate the read; the transmitted data is still just your two digits.