UPC-A and EAN-13 are the same system
A UPC-A is an EAN-13 with a leading zero. Take any twelve-digit UPC, put a zero in front, and you have the equivalent thirteen-digit GTIN — the check digit is unchanged, because the calculation treats the added zero as contributing nothing.
That is why scanners everywhere read both, and why a product registered once with GS1 can be printed in either format for different markets. The practical difference is width: UPC-A is slightly narrower, which occasionally matters on small packaging, and North American retailers are more used to seeing it.
Reading the twelve digits
The first digit is the number system character, which historically signalled the type of product: 0, 1, 6, 7, 8 for general goods, 2 for variable-weight items priced in store, 3 for pharmaceuticals under the National Drug Code, 4 for retailer-internal use, and 5 or 9 for coupons.
Number system 2 and 4 are the two worth knowing. Type 2 is what a supermarket deli scale prints, where part of the code is the price rather than the item. Type 4 is reserved for a retailer's own internal numbering and is explicitly not for products crossing between companies — using it because it is unallocated will cause exactly the collision it exists to prevent.
The check digit, and why zero-suppressed UPC-E differs
The check digit uses the same weighted modulo-10 scheme as EAN-13: alternate weights of 3 and 1 across the first eleven digits, summed, then whatever brings the total to a multiple of ten. Paste twelve digits here and the tool validates rather than recalculates — a mismatch means the number is wrong, not the barcode.
UPC-E is the compressed six-digit variant found on small items like lip balm and single cans. It is not a different number: it is a UPC-A with specific patterns of zeros suppressed, expanded back by the scanner. Because only certain number shapes can be compressed, you cannot decide to use UPC-E for an arbitrary product.
Printing for a checkout, not for a design review
Nominal size is about 37.29 mm by 25.91 mm, scalable from 80% to 200%. The truncation temptation — trimming the bar height to fit a design — is the single most common cause of retail scan failures, because an omnidirectional checkout scanner needs height to catch the symbol at an angle.
Keep nine modules of quiet zone at each end, print the bars in solid black on white or a very light background, and never in red. If the packaging is glossy or curved, ask the printer for a proof and test it on a real scanner: specular reflection off a curved bottle defeats more barcodes than any encoding mistake.