Overview

UPC-A (Universal Product Code, Version A) is the barcode symbology used to encode a GTIN-12 into a machine readible format. It is the dominant retail barcode format in the United States and Canada, appearing on virtually every consumer product sold in North American stores.

Unlike the EAN-13 system prevalent in Europe and most other regions, UPC-A uses a 12-digit numeric identifier. Despite this difference, most barcode scanners are designed to read both formats, UPC-A and EAN-13, and the two symbologies are technically compatible—By adding a leading zero to a GTIN-12 to create a GTIN-13 and encoding it as an EAN-13, the resulting bars and spaces on the barcode symbol will be identical to the equivalent UPC-A symbol.

Symbol Structure and Encoding

A UPC-A barcode encodes exactly 12 digits, each digit’s purpose is described in the below table:

PositionPurposeNotes
Digits 1–2Number SystemIndicates product category (e.g., 0, 1, 6, 7, 8 for regular UPCs; 2 for variable-weight items; 5 for coupons)
Digits 3–6Manufacturer CodeAssigned to the brand owner
Digits 7–11Product CodeAssigned by the manufacturer to identify the specific item
Digit 12Check DigitCalculated from the preceding 11 digits for error detection

A UPC-A barcode is divided into a left half and a right half, with special patterns of bars and spaces marking the beginning, middle, and end of the symbol. These special patterns are called guard patterns. They do not represent product-number digits; instead, they help the scanner recognise the structure and orientation of the barcode.

A UPC-A symbol consists of:

  • A start guard pattern (101), which marks the beginning of the barcode
  • Six digits on the left-hand side
  • A centre guard pattern (01010), which separates the two halves
  • Six digits on the right-hand side, with the final digit being the check digit
  • An end guard pattern (101), which marks the end of the barcode

Each numerical digit from 0 to 9 is represented by a specific pattern of bars and spaces. The six digits on the left use one encoding scheme, while the six digits on the right use a complementary encoding scheme.

This difference between the left and right sides helps a scanner determine which direction it is reading the barcode. As a result, a UPC-A barcode can be scanned from either direction, i.e. upside down.

UPC-A vs. EAN-13 Compatibility

UPC-A and EAN-13 share the same underlying symbology structure. The key differences are:

FeatureUPC-AEAN-13
Digits encoded1213
Leading zeroImplicitExplicit
Primary marketsUSA, CanadaGlobal (except North America)
First digitNumber SystemGS1 prefix

In practice, most modern point-of-sale systems worldwide can read both formats. A UPC-A can be converted to EAN-13 by prefixing a zero, making the GTIN-12 012345678905 become GTIN-13 0012345678905. This conversion preserves does not alter the number’s check digit which the reason this trick works.

However, the reverse is not always straightforward: an EAN-13 beginning with a non-zero GS1 prefix (such as 500–509 for the UK) cannot be represented as a valid UPC-A.

Check Digit Calculation

The UPC-A check digit uses a modulo 10 algorithm with weighted sums to generate the final digit of the barcode. It serves as a check against alternations to the GTIN caused by a poor scan of the barcode. The modulo 10 algorithm is described in detail on the check digits page.

You can verify the check digit of a GTIN automatically using online tools such as the GTIN validator and check digit calculator.

Obtaining UPC-A / GTIN-12 Numbers

To obtain valid, unique GTIN-12s to identify your products there are two pathways:

  • GS1 US or the appropriate GS1 member organization, has the authority to issue new company prefixes to members who join their organization, and they manage a global registry.

  • Barcode resellers sell legally transferable numbers which originate from GTIN prefixes issued before 2002, when the predecessor organization to GS1 US allowed prefix holders to sell or transfer their allocated numbers. Reseller-sourced GTINs remain valid as data structures, but certain retailers and distributers, as part of their product acceptance programs, may have additional requirements regarding usage of a GS1 issued prefix or GS1 membership certificates.

Usage and Retailer Considerations

UPC-A is required or accepted by:

  • Virtually all US and Canadian retailers
  • Amazon.com (with specific labeling requirements)
  • Most major North American distributors and wholesalers

Some retailers, particularly larger chains, may require direct GS1 prefix ownership for new vendor applications. Others accept properly formatted, valid GTIN-12s regardless of source. Businesses should confirm requirements with each trading partner before finalizing their barcode strategy.

Technical Specifications

AttributeSpecification
SymbologyUPC-A (UPC Version A)
Character setNumeric (0–9) only
Data capacityFixed 12 digits
Quiet zoneMinimum 9× module width left and right
Module widthNominal 0.33 mm (adjustable within limits)
HeightNominal 25.9 mm (truncation possible but reduces scan reliability)
Print contrastMinimum 75% PCS (Print Contrast Signal)

Common Variants

  • UPC-E: Zero-suppressed version encoding the same data in 6 digits; used for small packages
  • UPC-A with 2-digit or 5-digit supplement: Add-on codes for periodicals, books, and variable-weight items
  • GS1-128 (formerly UCC/EAN-128): Used when additional data (batch, expiry, serial number) must accompany the GTIN

Further Reading