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:
| Position | Purpose | Notes |
|---|---|---|
| Digits 1–2 | Number System | Indicates product category (e.g., 0, 1, 6, 7, 8 for regular UPCs; 2 for variable-weight items; 5 for coupons) |
| Digits 3–6 | Manufacturer Code | Assigned to the brand owner |
| Digits 7–11 | Product Code | Assigned by the manufacturer to identify the specific item |
| Digit 12 | Check Digit | Calculated 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:
| Feature | UPC-A | EAN-13 |
|---|---|---|
| Digits encoded | 12 | 13 |
| Leading zero | Implicit | Explicit |
| Primary markets | USA, Canada | Global (except North America) |
| First digit | Number System | GS1 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.
- The International Barcodes Network operates member sites in 120+ countries that provide GTINs and barcode related services.
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
| Attribute | Specification |
|---|---|
| Symbology | UPC-A (UPC Version A) |
| Character set | Numeric (0–9) only |
| Data capacity | Fixed 12 digits |
| Quiet zone | Minimum 9× module width left and right |
| Module width | Nominal 0.33 mm (adjustable within limits) |
| Height | Nominal 25.9 mm (truncation possible but reduces scan reliability) |
| Print contrast | Minimum 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