Home UPC (UPC-A)

UPC (UPC-A) validator

How the UPC (UPC-A) format works

Format
12-digit UPC-A barcode number (GS1 mod-10 check digit)
Example
036000291452

Things to watch for

  • UPC-A is 12 digits and uses the same GS1 mod-10 check-digit algorithm as EAN-13 and GTIN-14 — just a different length
  • Prefixing a UPC-A with a leading 0 gives its equivalent 13-digit EAN-13 without changing the check digit
  • This checks format and checksum only — it doesn't confirm the code is actually assigned to a product; use GS1's lookup tools for that
Regex for UPC (UPC-A)
^[0-9]{12}$

A UPC-A is the 12-digit barcode number printed under the bars on most packaged goods sold in the United States and Canada — the number a cashier can key in by hand if a scanner won’t read the label. The manufacturer’s GS1 member organization (GS1 US in the United States, GS1 Canada in Canada) assigns a company prefix, the manufacturer assigns an item reference to every distinct product and pack size, and the twelfth digit is a check digit calculated from the eleven before it. It’s the North American counterpart to EAN-13, which is used almost everywhere else.

Converting between UPC-A and EAN-13

Because retail systems worldwide standardized on GS1’s numbering scheme, a UPC-A converts to its equivalent EAN-13 by adding a single leading zero — nothing else changes, including the check digit. That’s why a US-made product scanned in Europe often shows up in a system as a 13-digit number even though the physical barcode never changed. Both lengths use the identical GS1 check-digit rule: starting from the check digit itself and moving left, each digit is weighted alternately by 1 and 3, and the total must land on a multiple of ten.

What this check confirms — and what it doesn’t

Validating a UPC-A here only confirms it’s 12 digits long and that the check digit is arithmetically consistent with the rest — the kind of thing that catches a single mistyped or transposed digit before it goes into a product feed, POS system, or inventory spreadsheet. It says nothing about whether that number has actually been assigned by GS1 US to a real product, what that product is, or whether it’s currently sold anywhere. For that, GS1’s own lookup tools are the right next step — this tool only checks the arithmetic.

Content last reviewed 2026-07-22.

UPC (UPC-A) FAQ

What's the difference between a UPC-A and an EAN-13?

UPC-A is the 12-digit barcode standard used mainly in the US and Canada; EAN-13 is the 13-digit standard used almost everywhere else. Padding a UPC-A with a leading zero produces its equivalent EAN-13 without changing the check digit, so the same physical barcode can be represented either way depending on which system reads it.

How is the last digit of a UPC-A calculated?

It's a GS1 mod-10 checksum. Starting from the check digit and moving left, each digit is multiplied by an alternating weight of 1 and 3; the check digit is whatever value makes the total sum a multiple of ten. This is the same rule used across every GS1 barcode length, from EAN-8 up to GTIN-14.

Does a valid UPC-A mean the product actually exists?

No. A pass only confirms the number is the right length and its check digit is mathematically correct — it doesn't confirm the code was ever assigned to a real product or that the product is still sold. To look up what a specific UPC identifies, use a GS1 GEPIR search or a commercial product database.

← More UPC (UPC-A) validators