Overview

UPC-A (Universal Product Code, Version A) is the barcode standard used to encode a GTIN-12. 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, the two systems are technically compatible—UPC-A data can typically be represented as a GTIN-13 by adding a leading zero.

Structure and Encoding

A UPC-A barcode encodes exactly 12 digits:

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

The barcode itself consists of:

  • Left guard pattern (101)
  • Six left-hand digits (encoded with odd parity)
  • Center guard pattern (01010)
  • Five right-hand digits plus check digit (encoded with even parity)
  • Right guard pattern (101)

Each digit is represented by a unique pattern of two bars and two spaces, with the left and right halves using different encoding schemes to allow omnidirectional scanning.

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 the check digit validity when the full 13-digit number is validated as an EAN-13.

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. See check digits for the general concept.

Calculation steps:

  1. Add digits in odd positions (1st, 3rd, 5th, 7th, 9th, 11th)
  2. Multiply the sum by 3
  3. Add digits in even positions (2nd, 4th, 6th, 8th, 10th)
  4. Add results from steps 2 and 3
  5. The check digit is the smallest number that, when added to this total, produces a multiple of 10

Example for UPC 03600029145?:

Position123456789101112
Digit03600029145?
  • Odd positions: 0 + 6 + 0 + 2 + 1 + 5 = 14
  • Multiply by 3: 14 × 3 = 42
  • Even positions: 3 + 0 + 0 + 9 + 4 = 16
  • Total: 42 + 16 = 58
  • Next multiple of 10: 60
  • Check digit: 60 − 58 = 2

Final UPC-A: 036000291452

You can verify calculations using the GTIN validator and check digit calculator.

Obtaining UPC-A / GTIN-12 Numbers

Businesses need valid, unique GTIN-12s to identify their products. The standard pathway is through GS1 US or the appropriate GS1 member organization, which issues company prefixes and manages the global registry.

Some businesses obtain GTIN-12s through barcode resellers. These numbers typically originate from GS1 prefixes issued before 2002, when GS1 US allowed prefix holders to sell or transfer their allocated numbers. Reseller-sourced GTINs remain valid as data structures, but businesses should verify whether specific retailers or distributors have additional requirements regarding prefix ownership or GS1 membership certificates.

The International Barcodes Network operates member sites in 120+ countries that provide GTINs and related services to small and medium enterprises.

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