Barcode Generator (EAN, UPC, Code 128)

Make EAN-13, UPC-A, UPC-E, Code 128, GS1-128, Code 39, Code 93, ITF-14, Codabar and MSI barcodes with check digits. SVG, PNG or a bulk ZIP.

–Encoded data
–Check digit
–Image size (px)

Size and style

Bulk: many barcodes in one ZIP

One barcode per line, drawn as the type and style chosen above.

How to make a barcode

Pick the barcode type, type the data, and the barcode is drawn as you type. For EAN, UPC and ITF-14 you can leave off the last digit and the check digit is added. Type the full number and the check digit is verified; a wrong one is reported with a button for the corrected number. Set the bar width, height and colours, then download an SVG for print or a PNG for documents.

Which type to choose

Type Data Typical use
EAN-13 / UPC-A 12 / 11 digits + check Retail products, ISBNs (978/979)
EAN-8 / UPC-E 7 / 6 digits + check Small packs
ITF-14 13 digits + check Outer cartons (GTIN-14)
GS1-128 AIs such as (01) GTIN, (17) expiry, (10) lot Pallet and carton labels
Code 128 Any ASCII text Shipping, stock and asset labels
Code 39 / Code 93 Capitals, digits, - . $ / + % (Code 93 also all ASCII) Industry, defence, postal systems
Codabar Digits and - $ : / . + between start/stop letters A–D Libraries, blood banks
MSI Plessey Digits Shelf labels, warehouses

Retail numbers must be GTINs licensed from GS1 if the product is sold in shops.

Check digits and special cases

EAN, UPC, ITF-14 and GTINs use the GS1 modulo-10 check: from the rightmost data digit, weight the digits 3, 1, 3, 1 …, add them, and take what is needed to reach the next multiple of 10. For 400638133393 the sum is 89, so the check digit is 1. Code 128 and GS1-128 always carry a hidden modulo-103 checksum, and Code 93 two check characters (C and K). Code 39 (mod 43), Codabar (mod 16) and MSI (mod 10, mod 11 or both) have optional checks: turn them on only if your scanner expects them.

Bulk barcodes as a ZIP

Paste one value per line, such as a spreadsheet column, and download a ZIP of SVG files, PNG files or both, drawn with the type and style above. Tick the file-name option to use a second comma- or tab-separated column as each file’s name. Lines with errors are listed with the reason and left out; up to 1,000 lines at a time.

Printing tips

Frequently asked questions

Are the barcodes free to use commercially?

Yes. The images you make here are yours to use on products, labels and documents with no attribution. Retail EAN and UPC numbers themselves must be licensed from GS1 if you sell through shops.

Is my data uploaded?

No. The barcodes are drawn by JavaScript in your browser, and the SVG, PNG and ZIP files are created on your device. Nothing you type or paste is sent to a server or stored.

Why does it say my check digit is wrong?

The last digit of an EAN, UPC, ITF-14 or GTIN is calculated from the others, so a typo anywhere usually makes it wrong. Check the number against the original, or leave the last digit off and the generator adds the correct one.

Can I make an ISBN barcode with the price add-on?

Yes. Choose EAN-13, enter the ISBN (hyphens are ignored; an ISBN-10 is offered as its ISBN-13), and type the 5-digit price code in the Add-on box, for example 51299 for 12.99 US dollars or 90000 for no price.

What is the difference between Code 128 and GS1-128?

GS1-128 is Code 128 with an FNC1 character after the start code, which tells the scanner the data is GS1 Application Identifiers. Use GS1-128 for supply-chain labels with GTINs, dates and lot numbers, and plain Code 128 for your own text.