Shim

UPC-E Barcode Generator

The squeezed UPC, for packs with no room.

The compressed form. Not the product number, which is longer.

Number system
60px

The squeezed UPC, for packs with no room.

How to use it

  1. Enter the six compressed digits. These are the squeezed form, not the product number. If you have the twelve digit UPC-A, it only has a short form when its zeros fall in the right places.
  2. Pick the number system. 0 for most goods, 1 where the numbering scheme calls for it. It changes the bars as well as the printed digit.
  3. Check what it expands to. The line underneath shows the full UPC-A. That is the number a till actually sees, and it is where the check digit comes from.

When you would use this

UPC-E is a UPC-A with its zeros squeezed out, used on packs too small for the full symbol: single cans, cosmetics, small hardware. The six digits printed are not the product number. They are a compressed form, and the last of them records which zeros were removed so a scanner can put them back. Two things follow that generators regularly get wrong. The check digit belongs to the expanded twelve digit code, not to the six shown, so working it out from what is printed produces something no till will accept. And three of the four compression rules carry a constraint without which the format is ambiguous, so some six digit values are simply not valid UPC-E and are refused here rather than drawn.

Questions

Why is the check digit not calculated from the six digits?
Because the scanner expands the code first and checks the result. A check digit worked out from the six shown will not match, and the failure only appears at a till.
Can any UPC-A be shortened?
No. Only ones whose zeros fall in exactly the right positions, which is a small fraction of them. The zeros are what gets squeezed out.
Where has the check digit gone in the bars?
It is not drawn. UPC-E has no centre guard and no right-hand set, so the check digit is carried in the parity of the six digits instead.