This UPC barcode generator makes a UPC-A barcode from an 11-digit number and adds the 12th digit, the check digit, for you. If you enter a full 12-digit UPC, it checks the last digit and tells you the correct one if it is wrong. Switch to UPC-E for very small packs. Download the barcode as PNG or SVG, free and with no sign-up.
How to make a UPC barcode
- Type the first 11 digits of your UPC, or all 12 digits.
- Check the preview. If the 12th digit does not match, the generator shows which digit it should be.
- Set the bar height and size, then download the PNG or SVG file and place it on your label or packaging.
What is a UPC-A barcode?
UPC-A is the 12-digit barcode printed on retail products in the United States and Canada. The number it carries is a GTIN-12, made of three parts: a company prefix licensed from GS1, an item reference the company assigns to each product, and a final check digit.
The check digit is calculated from the first 11 digits, so a scanner can catch a misread. You can work it out yourself with the check digit calculator. UPC-E is a shorter 8-digit form of some UPC-A numbers, used on very small packs; choose it in the type menu above.
UPC barcode size for printing
GS1 sets a standard (100%) size for UPC-A and allows printing from 80% to 200% of it. The size is set by the X-dimension, the width of the narrowest bar.
| Setting | Value (GS1) |
|---|---|
| Standard (100%) size | 37.29 mm wide including margins, 25.93 mm high |
| Allowed size range | 80% to 200% of standard size |
| Narrowest bar (X-dimension) | 0.26 mm at 80% to 0.66 mm at 200%; 0.33 mm at 100% |
| Quiet zone | At least 9 times the X-dimension on the left and on the right |
Do not cut the bars shorter to fit a small label. A shortened UPC is harder to scan at a checkout.
Exact widths, heights and quiet zones for every magnification are in the barcode sizes table.
In the generator, tick Download at an exact print size and choose a magnification. The SVG is exactly 37.29 mm wide at 100%. The PNG uses a whole number of printer dots per bar, so at 300 DPI it is about 3% larger (each bar 0.339 mm), which stays inside the GS1 range.
UPC vs EAN-13
A UPC-A has 12 digits and an EAN-13 has 13. Both are GTINs from GS1. A UPC with a 0 in front is the same product number in EAN-13 form, so checkouts outside North America read UPC barcodes too. For EAN-13, EAN-8 and other types, use the barcode generator.
Where to get a UPC number
In the United States, UPC numbers come from GS1 US, which licenses a company prefix and lets you number your products from it. This generator draws the barcode for a number you already have; it does not issue numbers.
The four steps are explained in getting a UPC number.
Is it private?
Yes. The UPC barcode is drawn in your browser and the number is not sent to our server.
Tips for UPC barcodes that scan
- Do not print smaller than 80% of the standard size.
- Keep the blank margins on both sides of the bars.
- Print black bars on a white or light background.
- Keep the full bar height; do not crop the bars to save space.
- Scan a test print before you order packaging.
Related tools
Frequently asked questions
Where do I get a UPC number?
From GS1 US in the United States, or the GS1 office in your country. This tool draws the barcode; it does not sell or issue numbers.
Why does it say my last digit is wrong?
The 12th digit of a UPC is calculated from the first 11. If it does not match, a digit was mistyped or the number is not a valid UPC.
Can I type only 11 digits?
Yes. Enter 11 digits and the generator adds the correct check digit to make a 12-digit UPC-A.
What size should a UPC barcode be?
Between 80% and 200% of the GS1 standard size. At 100% it is 37.29 mm wide including margins and 25.93 mm high.
Can I use this UPC on Amazon?
Yes, if the UPC was licensed from GS1 for your brand. Amazon checks UPCs against the GS1 database; products without one can apply for a GTIN exemption in Seller Central.
Can I make a UPC-E barcode?
Yes. Choose UPC-E in the type menu and enter 7 digits (the check digit is added) or 8 digits, starting with 0 or 1.