Free UPC Barcode Generator: UPC-A and UPC-E

Create a UPC-A or UPC-E in seconds. Check digit calculated. Download SVG, PDF or PNG. No signup.

Free — no accountUPC-A & UPC-ECheck digit doneVector SVG & PDF

11–12 digits. US/Canada retail standard.

Customize

Preview

Enter data to see preview

Runs in your browser. Nothing to install.

The picker above also holds UPC-E, EAN-13, EAN-8, Code 128 and nine more. All fourteen formats live on the barcode generator.

The format

What a UPC Barcode Actually Is

A UPC is twelve digits drawn as bars, plus the same twelve digits printed underneath so a person can read them when the scan fails. Everything else about the symbology follows from those twelve digits.

The number system digit

The first digit says what kind of item this is — a regular retail product, a variable-weight item weighed at the counter, a coupon. It is also what limits UPC-E: only numbers led by 0 or 1 have a compressed form at all.

The company and item digits

The digits between the first and the last carry a GS1-issued company prefix followed by the item reference you assign under it. Where one ends and the other begins depends on how long your prefix is — that is decided by GS1, and nothing in the barcode marks the boundary.

The check digit

The last digit is arithmetic on the other eleven, so there is exactly one correct value. It is the reason a mistyped UPC usually fails at the scanner instead of quietly ringing up the wrong product.

UPC-A and EAN-13 are the same numbering system at different lengths — a UPC-A is an EAN-13 with a leading zero, which is why almost every scanner made in the last thirty years reads both. One trap the tool will not save you from: pasting a twelve-digit UPC-A into the EAN-13 field does not convert it. EAN-13 accepts twelve or thirteen digits, so your twelve are read as an EAN-13 still missing its check digit and a new one is appended, producing a different number. Add the leading zero yourself. QRKIT draws the symbol in your browser as you type — the encoder runs client-side, so the numbers you enter are not sent anywhere to be turned into a barcode. For how UPC compares with the 2D symbologies, see our QR code vs barcode comparison.

UPC-A

The UPC-A Barcode Generator: Lengths, Check Digit, Refusals

What follows is what this tool does, not a paraphrase of the standard. Where the two differ, the tool is what you will actually hit.

Eleven digits: we finish it

Enter 01234567890 and the generator computes the check digit and draws the completed code. The human-readable line under the bars reads 012345678905 — the full twelve digits, not the eleven you typed.

Twelve digits: we check it

Supply all twelve and the last one is recalculated and compared. If it does not match, no symbol is drawn. That is the behaviour you want: a barcode with a wrong check digit prints perfectly and fails at the till.

Ten digits, or thirteen: refused

The field takes 11 or 12 and nothing else, with the message “UPC-A requires 11 or 12 digits, with no spaces”. Thirteen digits is an EAN-13 — switch the picker rather than trimming a digit off.

Spaces are not cleaned up for you

Leading and trailing whitespace is trimmed, but an interior space is not. A number pasted from a spreadsheet as 0 12345 678905 is rejected rather than silently repaired, because guessing at formatting is how the wrong product gets encoded.

Letters are not a UPC. UPC-A is a numeric-only symbology — there is no way to put a letter, a hyphen or a slash into one, and a tool that appears to let you has quietly switched you to a different format. If your internal reference contains letters, you want Code 128, which is in the same picker above.

UPC-E

UPC-E: the Eight-Digit Form, and Its Real Limits

UPC-E is a UPC-A with runs of zeros squeezed out. It prints eight digits in roughly half the width, which is why it turns up on lip balm, gum and single-serving sachets. It is not a separate numbering scheme — a scanner expands it back to the full UPC-A before doing anything with it.

What you can type

012345   or   01234565

Either the six middle digits on their own, or the full eight led by number system 0 or 1 and closed by a matching check digit. Give it six and it expands them with number system 0, computes the check digit and prints 00123457 under the bars.

What it refuses, and why

0123456   ·   91234565

Seven digits are ambiguous — there is no way to tell whether the spare one is the number system at the front or the check digit at the back, so the encoder will not guess. And an eight-digit code has to start 0 or 1: those are the only number systems UPC-E exists for.

We do not convert a UPC-A into a UPC-E. The compression works by a fixed set of patterns, and which pattern applies is decided by the last of the six middle digits — so only UPC-A numbers whose zeros fall in the right places can be shortened at all, and most cannot. This tool encodes the UPC-E number you give it; working out whether your UPC-A has a UPC-E form, and what it is, happens before you get here. If the package has room for a full UPC-A, use one.

Specs

What This Generator Does, Exactly

Including the limits. A tool that only lists what it can do is harder to plan a label run around than one that tells you where it stops.

PropertyValueNotes
Symbologies hereUPC-A and UPC-EBoth in the picker above. UPC-E is the compressed form of a UPC-A, not a separate numbering scheme.
UPC-A input length11 or 12 digits12 is the finished code. Enter 11 and the check digit is computed; enter 12 and yours is verified.
UPC-E input length6 digits, or 8 starting with 0 or 17 digits are refused on purpose — you cannot tell whether the spare digit is the number system or the check digit.
Character setDigits 0–9 onlyNo letters, no punctuation, and no spaces. The value is trimmed at the ends; an interior space is rejected rather than stripped.
Check digitCalculated, or verifiedLeave it off and it is worked out for you. Supply it and a wrong one is refused — no symbol is drawn.
Human-readable lineThe completed numberType 01234567890 and the digits printed under the bars read 012345678905. Type UPC-E as 012345 and they read 00123457. It can be switched off.
Quiet zoneUPC-A 9 + 9 modules; UPC-E 9 + 7GS1 General Specifications, and asymmetric for UPC-E. Drawn into every exported file. Never crop it away.
Smallest bar we advise0.264 mmGS1's magnification range for retail symbols starts at 80%, where the X-dimension is 0.264 mm. The tool warns on screen below it.
Export formatsPNG, SVG, PDFSVG and PDF are genuine vector, and the PDF page is sized to the barcode. There is no EPS export.
Raster resolution72, 150, 300 or 600 DPIPaired with a target print width in mm, inches or pixels. One ceiling: 10,000 pixels per axis.
Design controlsBar colour, background, bar width, height, text on/offThat is the whole list. No logo, no gradient, no frame — a retail symbol has to stay a plain dark-on-light barcode to scan.
Batch sizeUp to 500 codes at onceA browser-memory cap, identical for everyone. Signing in does not raise it, because there is nothing to sign in to.
Code typeStaticThe number is the content. No redirects, no scan counts, no editing after download.
GS1 company prefixNot issued hereWe draw the symbol. The number underneath it, if it is going to a retail checkout, has to be licensed from GS1.

Not on the list, and deliberately: GS1-128, which we do not generate. There is no barcode API, no Excel add-in and no font. There is also no separate ISBN format anywhere on QRKIT, because there is no such thing — an ISBN-13 is encoded as an EAN-13, so you paste the thirteen digits into the EAN-13 field and get the barcode printed on the back of the book. An older ISBN-10 has to be converted to ISBN-13 first, and we do not do that conversion for you.

For products

Using This as a Product Barcode Generator

If you have made something and you need a barcode on it, the first thing to understand is that a barcode is two separate things: a number and a symbol. Almost every free tool online, this one included, gives you the second. Only GS1 gives you the first.

A UPC that scans correctly at a retail checkout has to be built on a company prefix licensed from GS1, the organisation that administers the GTIN numbering system worldwide. GS1 issues that prefix to your business; the item numbers you assign underneath it are then unique globally, which is the entire point. QRKIT does not issue, sell, resell or validate GS1 company prefixes, is not affiliated with or endorsed by GS1, and has no way to tell you whether a number you typed belongs to you. We take your digits, compute the check digit, and draw a conformant symbol.

That is not a reason to leave. It is a reason to get the order right.

Selling through retailers or a major marketplace

License a company prefix from GS1 first, assign your item numbers, then come back and generate every symbol here for free. Buying a second-hand number from a broker is a recurring cause of rejected listings — the prefix stays registered to whoever GS1 issued it to.

Labelling for yourself

Warehouse inventory, an asset register, a private catalogue, stock in your own shop scanned by your own till — any closed system where you control every scanner. Number things however you like and generate away. Nothing here checks a prefix, so nothing here stops you.

For internal use, UPC is often the wrong pick anyway. It is numeric-only and fixed at twelve digits, which is a poor fit for a SKU that contains letters or a location code. Code 128 takes any ASCII text and is in the same picker above; QR codes for inventory go further again when you want a scan to open a record rather than just read a number.

Output

Vector SVG and PDF, at the Size You Will Actually Print

Retail symbols are sized by magnification, not by taste, and a UPC that is 10% too small is a UPC that holds up a queue. This generator exports genuine vector and lets you state the finished dimensions up front.

SVG

Real geometry written into the file, not a traced bitmap. Opens in Illustrator, Inkscape and label software, and scales to any size without softening a bar edge.

PDF

Also true vector — the barcode is redrawn with the PDF's own drawing primitives on a page sized to the symbol itself, rather than an image dropped onto a letter sheet.

PNG

The raster option, at 72, 150, 300 or 600 DPI. Fine for screens and office printers; reach for SVG or PDF when the file is going to a plate or a label press.

Set the width, not a guess

Enter a target print width in millimetres, inches or pixels and the export is generated at exactly that size. The one ceiling is 10,000 pixels per side — about 840 mm at 300 DPI — and the tool says so on screen if a request runs into it.

The 80% magnification floor

GS1's magnification range for retail UPC symbols starts at 80%, and shrinking below it puts the symbol out of spec. At 80% one bar is 0.264 mm wide and the code is roughly 3 cm across including its quiet zones. The tool works out your bar width live and warns the moment it drops below that.

Quiet zones included

Nine modules of clear space each side for UPC-A, and nine left with seven right for UPC-E — the asymmetry is in the GS1 specification, not a rendering quirk. They are drawn into the exported file. Do not crop them away in your layout.

What we do not do: we draw the symbol and export the file. Print quality on the finished package — contrast, ink spread on absorbent stock, grading against a print-verification standard — depends on your printer and substrate, and is not something QRKIT measures, grades or certifies. Print a real sample and scan it with the kind of scanner that will read it before committing to a run.

In bulk

500 UPC Barcodes From One Paste

Open Generate many at once underneath the generator, paste a column of product numbers or upload a CSV, and take the whole catalogue in one download. No account, no upgrade prompt.

Paste or upload

One number per line, or a CSV. When your file has a header row the tool works out which column holds the codes, shows you the choice it made and lets you change it — so a name,sku export does not quietly try to encode product names.

Three outputs

A ZIP of PNGs, a ZIP of SVGs, or a single PDF with one barcode per page. Files are numbered in input order, so the archive sorts back the way your list was written.

Nothing fails quietly

Every row runs through the same UPC rules as the single-code field: an 11-digit row gets its check digit computed, and a 12-digit row with a wrong one is listed by row number and left out of the download rather than printed as an unscannable label.

About the 500-row cap. It is a browser-memory limit and nothing else — the batch is rendered on your own machine, and 500 barcodes at 300 DPI is already tens of megabytes held in memory. It is the same number for everyone, there is no account or plan that raises it, and when it bites the tool tells you exactly how many rows were left out so you can split the list and run the rest.

Step by step

How to Create a UPC Barcode

Step 1

Choose UPC-A or UPC-E

The generator above already opens on UPC-A, the twelve-digit retail standard. Switch to UPC-E only if the package is too small for a full symbol and you already know its compressed number.

Step 2

Enter the digits

UPC-A takes 11 or 12 digits — leave the check digit off and it is calculated for you. UPC-E takes 6, or 8 starting with 0 or 1. Digits only, no spaces, and the symbol redraws as you type.

Step 3

Set the print size

Give it a target width in mm, inches or pixels, and pick 72–600 DPI for raster output. The tool reports the finished size and warns if one bar falls under 0.264 mm.

Step 4

Download

SVG or PDF for anything going to print; PNG for screens and listings. No signup, no account, no watermark, and the barcode is yours to use commercially.

Reading one back is a different job. A phone camera app reads QR codes but usually ignores a linear barcode entirely, so checking a printed UPC takes a barcode reader app or a retail scanner. QRKIT generates UPC symbols; it does not decode them, and it cannot look up what product a number belongs to.

Pricing

Free, and Free in the Way You Meant

“Free” usually turns out to mean free to preview. Here it means what it says: the UPC generator on this page asks for no account to create a barcode and no account to download the file, stamps nothing on the output, and has no paid tier above it.

Included, at no cost

Free forever
  • UPC-A and UPC-E
  • Check digit calculated or verified
  • Unlimited codes — no daily quota
  • PNG, SVG and vector PDF download
  • Print width in mm/in/px and 72–600 DPI
  • Bulk generation up to 500 at a time
  • No signup, no account, no card
  • No watermark on any export
  • Commercial use allowed

Not available at any price

Be clear about it
  • No GS1 company prefix. We generate symbols. Retail-scannable numbers are licensed from GS1, and we are not a reseller or a validator.
  • No dynamic or trackable barcode. A UPC is static by definition: it cannot be edited after printing and its scans cannot be counted.
  • No barcode API or integration. No REST endpoint, no Zapier, no plugin, no library, no font.
  • No decoding, and no product lookup. This page draws UPC symbols. It does not read them, and it cannot tell you what product a number belongs to.

Need a code you can change or measure instead? That is what a dynamic QR code is for — edit the destination after printing, and see scan counts. It is a different symbology and a different product, and unlike the barcode tool it involves an account. Learn about dynamic QR codes.

UPC Barcode Generator — Frequently Asked Questions

Get started

Generate Your UPC Barcode

UPC-A or UPC-E, drawn in your browser with the check digit calculated for you, exported as vector SVG, PDF or PNG at the size you will print it. No signup, no watermark.

UPC-A & UPC-ECheck digit calculatedVector SVG and PDFUp to 500 at once