UPC-A Barcode Generator
UPC-A (Universal Product Code, 12 digits) is the standard barcode for retail products sold in the United States and Canada. Every item on a US or Canadian grocery, pharmacy, or hardware store shelf uses UPC-A. This free generator accepts 11 or 12 digits: enter 11 and the check digit is calculated automatically; enter all 12 to validate the code. Download as a high-resolution PNG or scalable SVG ready for packaging artwork, label design, or testing.
11/12 digits
Full UPC-A
012345678905
Standard product (GS1 company prefix)
Check digit
5(calculated)
Important
To sell retail products, you need a legitimate UPC assigned through a GS1 company prefix. Do not invent or reuse UPC codes for products sold in stores.
How to use this tool
- 1Type or paste your UPC-A digits. Digits only - no spaces, dashes, or letters.
- 2Enter 11 digits (the payload) to auto-calculate the 12th check digit.
- 3Enter all 12 digits to validate whether the check digit is correct.
- 4The number system digit description appears below the input explaining the first digit's meaning.
- 5Click Download PNG or Download SVG to save the barcode.
Formula used
Example
Input: 01234567890 (11 digits). The tool calculates check digit 5, shows the complete UPC-A as 012345678905, and renders the barcode. The number system digit 0 identifies this as a standard product barcode with a GS1 company prefix. Download PNG and use in a packaging mockup or label file.
Input: 036000291452 (a real product). The tool validates that check digit 2 is correct and renders the barcode. The number system digit 0 confirms standard GS1 numbering. A wrong check digit would show in red with the expected correct digit.
Common use cases
- Product managers creating barcode artwork for new US market retail packaging
- E-commerce sellers uploading UPC barcodes to Amazon, Walmart, or other US marketplaces
- Small manufacturers testing barcode scanners with known-good UPC-A test codes
- Importers verifying that a supplier's UPC-A code has the correct check digit before going to print
- Developers building POS systems and needing sample UPC-A barcodes for testing
Common mistakes
- Confusing UPC-A with EAN-13 - UPC-A is 12 digits and used in North America; EAN-13 is 13 digits and used globally; the two formats look identical in the barcode bars but differ in digit count.
- Using a made-up UPC for products sold in retail stores - UPCs for commercial retail require a GS1 company prefix licensed through GS1 US to avoid conflicts.
- Applying the same UPC to all sizes or colours of a product - each distinct variant needs its own unique UPC.
- Entering a 13-digit EAN-13 into this tool - this tool is for 11 or 12-digit UPC-A only; use the EAN-13 generator for 13-digit codes.
Frequently asked questions
What is a UPC-A barcode?
UPC-A stands for Universal Product Code version A. It is a 12-digit barcode used primarily in the United States and Canada to identify retail products at point of sale. The 12 digits encode a GS1 company prefix, an item reference number, and a check digit.
What is the difference between UPC-A and EAN-13?
UPC-A has 12 digits and is the standard in North America. EAN-13 has 13 digits and is the global standard. A UPC-A code is equivalent to an EAN-13 with a leading 0 - for example, UPC-A 012345678905 is the same product as EAN-13 0012345678905. Modern scanners read both without any configuration.
Do I need to buy a UPC from GS1 to use this tool?
For testing, internal use, or non-retail applications, you can generate any 11-digit payload. For products sold in US or Canadian retail stores or listed on major marketplaces, you need a GS1-licensed company prefix to ensure your UPCs do not conflict with other brands' products.
What does the number system digit mean?
The first digit of a UPC-A identifies the category: 0, 6, 7 = standard products; 2 = random-weight items assigned in-store; 3 = pharmaceuticals (NDC code); 4 = in-store use; 5 = coupons. Most consumer goods use 0.
Is the barcode data sent to a server?
No. All processing runs in your browser. Your digits are never sent to any server.
Related tools
Last updated