Free generator

Free UPC-E barcode generator

UPC-E squeezes certain UPC-A numbers into a symbol about 40% narrower by leaving out zeros. Type the UPC-A to compress, or the six UPC-E digits, and the generator works out the check digit and shows the UPC-A it stands for.

  • Free to use
  • No sign-up
  • No watermark
  • Personal and commercial use
  • Runs in your browser

UPC-E Retail products

Free · runs in your browser
Barcode type
Retail products
Cartons and logistics
Internal labels
2D

Six digits after the leading 0 (we add the check digit), all 8 digits, or the 12-digit UPC-A to compress. GS1 allows UPC-E only for some UPC-A numbers that start with 0. When to use UPC-E

Check digit 8 added. Expands to UPC-A 012345000058.

A barcode is only as unique as its number: the same number always draws the same bars. For trade, use numbers licensed to your company; anyone can check who a GTIN belongs to in Verified by GS1 (how).

The preview also updates as you type.

Preview · printed sizeScale in mm

Black on white only: colored bars and backgrounds are a common cause of scan failures. Everything is drawn in your browser; nothing you type is sent anywhere.

Printed size

The width of the narrowest bar. Defaults follow GS1’s standard size for this type. Size and print settings explained

Download for your printer

SVG downloads at the printed size above, for design and label software. PNG for a 300 dpi printer (12 dots/mm): 4 printer dots per module, so X is 0.333 mm (101%) and the bars 23.08 mm tall; print it at 100% scale. Free for personal and commercial use, with no watermark. Test a printed sample with the scanner that will read it.

  • Free to use
  • No sign-up
  • No watermark
  • Personal and commercial use
  • Runs in your browser

UPC-E at a glance

EncodesA GTIN-12 that starts with 0 and has four or five zeros in set places
SymbolSix digits drawn as bars; the leading 0 is implied and the check digit is carried by the bar pattern
Check digitThe GTIN-12’s modulo 10 check digit, encoded through the pattern of the six characters
Width51 modules of bars, a 9-module quiet zone on the left and 7 on the right: 67 modules
X-dimension (retail checkout)0.264 to 0.660 mm, target 0.330 mm, as for UPC-A
Bar height22.85 mm at 0.330 mm, in proportion to X
Human-readable digitsThe six encoded digits plus the leading 0 and the check digit
SpecificationsISO/IEC 15420 and the GS1 General Specifications, section 5.2.2.4

GS1 designed UPC-E and EAN-8 for small packages, and its specifications say UPC-A or EAN-13 should be used whenever space permits. GS1 US also says it no longer licenses the UPC-E prefix, so GS1 US no longer issues prefixes designed for UPC-E; a UPC-E only exists where an existing UPC-A happens to fit one of the patterns below.

Which UPC-A numbers fit

Section 5.2.2.4.1 of the GS1 General Specifications lists four zero-suppression rules. Counting the digits of the UPC-A from the left, leading 0 included, here are GS1’s four examples with the six digits each one draws as bars:

UPC-A (GTIN-12)The rule, in shortSix digits in the UPC-E
0 12345 00005 8Digit 11 is 5–9, digits 7–10 are 0 (digit 6 is not)123455
0 45670 00008 0Digits 6–10 are 0 (digit 5 is not); the sixth UPC-E digit is 4456784
0 34000 00567 3Digit 4 is 0, 1 or 2 and digits 5–8 are 0345670
0 98400 00075 1Digit 4 is 3–9 and digits 5–9 are 0; the sixth UPC-E digit is 3984753

If your UPC-A fits none of them, it has no UPC-E form. The check digit calculator and converter tries the conversion both ways.

A printed example

UPC-E 0 123455 8, GS1’s own example for the UPC-A 012345000058. At 100% it is 67 × 0.330 mm = 22.11 mm wide with its quiet zones, against 37.29 mm for the UPC-A.

What each setting does for a UPC-E

  • Data. Type the 12-digit UPC-A (or its first 11 digits) and the generator compresses it if one of the rules fits; or type the six UPC-E digits (the leading 0 is added), seven digits starting with 0, or all eight. The status line shows the check digit and the UPC-A the code expands to. Numbers that do not start with 0 are refused, because GS1 allows UPC-E only for GTIN-12s starting with 0, and so is a UPC-E that GS1 would write differently: 0120004 expands to 012000000003, which GS1’s rules write as 01200003.
  • Size. The same X range and bar heights as UPC-A; the quiet zone field sets the left 9 modules and keeps the right side 2 modules smaller, as GS1 specifies (9 and 7).
  • Downloads. SVG at the printed size, PNG in whole printer dots for 203, 300 or 600 dpi.

Common mistakes

  • Storing the UPC-E as the product number. The GTIN is the expanded 12-digit number. Depending on its settings, a scanner sends either the eight UPC-E digits or the expanded number, so check what yours does.
  • Forcing a number into UPC-E. Only numbers that fit the rules compress. There is no shortened form for 012345678905, for example: no run of zeros sits where the rules need it, and the generator says so.
  • Crowding the 7-module right quiet zone on a small pack. At 100% that is only 2.31 mm.

Worked example

  1. Start from GS1’s UPC-A 012345000058. Its eleventh digit is 5 and the four digits before it are zeros, and digit 6 is not zero, so the first rule applies: keep digits 2–6, 12345, then digit 11, giving 123455.
  2. Type 0123455. The status line reads “Check digit 8 added. Expands to UPC-A 012345000058.” The check digit is the UPC-A’s own: 5×3 + 0 + 0×3 + 0 + 0×3 + 5 + 4×3 + 3 + 2×3 + 1 + 0×3 = 42, so 8.
  3. The readout shows a 22.1 mm wide symbol at 100%; download SVG or PNG and test it with your scanner.

Sources

  1. GS1: GS1 General Specifications Standard (Release 26.0) (accessed )
  2. ISO: ISO/IEC 15420:2025, EAN/UPC bar code symbology specification (accessed )
  3. GS1 US: Types of Barcodes (accessed )

More tools for labels and numbers