Tools

Free Tool

Free Barcode Generator

Make an EAN-13, EAN-8, UPC-A, ITF-14, Code 128, or Code 39 barcode in the browser. Retail check digits are calculated and checked. Download PNG or SVG.

Leave this off when the scanner should read exactly the characters you type. Turn it on when the label spec asks for a mod 43 check character. The reader has to be set to return it.

Encoded as Code 39. A scanner reads the characters you typed.

#040D12
#ffffff

Use dark bars on a light background. A scanner reads the bars, not the colors.

Code 39 barcode for CODE39

CODE39

Code 39 · 2px modules · quiet zone included

How to make a barcode in 3 steps

  1. Choose the format. Use EAN-13 or EAN-8 for a retail item, UPC-A for a 12-digit North American retail number, ITF-14 for a 14-digit case, Code 128 for a mixed SKU, or Code 39 when the scanner expects uppercase letters and digits.
  2. Enter the value. EAN-13, EAN-8, UPC-A, and ITF-14 use the GS1 modulo-10 check digit. It is added or checked before the bars are drawn. Code 128 keeps the text you type. Code 39 can add an optional mod 43 check character.
  3. Download and proof. Download PNG or SVG. Scan a printed sample with the scanner that will read it. A 2px module is a screen preview; 3px or 4px is a better start for a label. Put a Scanely QR beside the bars when the package should also open a page.

Which format to choose

FormatUse it when
EAN-13A 13-digit retail number (GTIN-13), including an ISBN-13.
EAN-8An 8-digit retail number (GTIN-8) for a small package.
UPC-AA 12-digit retail number for packaging sold in the United States or Canada.
ITF-14A 14-digit case or carton code (GTIN-14), with a bearer bar around the symbol.
Code 128A SKU, bin, serial, or other short identifier that includes letters.
Code 39Uppercase letters, digits, and - . $ / + % or space. Add mod 43 only when the spec asks for it.
Scanely QRA phone should open a page. Put it beside the barcode on the package when you need a link you can change after printing, plus scan counts.

Pick the symbol your scanner already reads

These formats are not interchangeable. A retail checkout expects a GTIN in the right length. A carton label often expects ITF-14. A warehouse scanner often expects Code 128, or Code 39 when the spec is older and uppercase. Choose the format the receiving system was built for, then test a print with that scanner.

  • EAN-13 barcode generator for a 13-digit retail number. Enter 12 digits and the check digit is added, or enter all 13 to verify it.
  • EAN-8 for an 8-digit retail number. Enter 7 digits and the GS1 check digit is added, or enter all 8 to verify it.
  • UPC-A barcode generator for a 12-digit retail number used on North American packaging.
  • ITF-14 for a 14-digit case code. Enter 13 digits and the GS1 check digit is added. The symbol includes a bearer bar.
  • Code 128 barcode generator for letters and numbers: SKUs, bins, serials, and other short labels.
  • Code 39 for uppercase letters and digits. The mod 43 check character is optional and off until you turn it on.

What this page does

The bars are drawn on this page. You can change the module width, the colors, and whether the digits print under the bars. PNG is a flat image. SVG stays sharp when a designer places it in a larger layout. Leave a blank margin around the bars; that quiet zone is included in the file.

The sample values are examples so the page is not empty. Replace them with a number or identifier you are allowed to print. Drawing a barcode does not assign that number to you.

When a QR code is the better fit

Use a barcode when a system already looks up an EAN, UPC, or Code 128 value. Use a QR code when a phone should open a link. On a package, print both: the barcode for the checkout or the warehouse, and a Scanely QR beside it for a page you can change after the carton is printed. A dynamic QR code keeps that print while the destination changes, and Scanely counts the scans. The inventory label guide separates identifying an item from updating its quantity.

Free includes 3 dynamic codes. Compare plans on pricing. A dynamic QR code keeps the printed image while the link changes. The QR generator makes a static link code.

Frequently asked questions

Which barcode format should I use?▾
Use EAN-13 for a 13-digit retail number, EAN-8 for a small 8-digit retail number, UPC-A for a 12-digit North American retail number, and ITF-14 for a 14-digit case or carton. Use Code 128 for a SKU or serial that includes lowercase or punctuation, and Code 39 when the scanner expects uppercase letters and digits. The format has to match what your scanner and software expect.
Do you calculate the check digit?▾
Yes for EAN-13, EAN-8, UPC-A, and ITF-14, using the GS1 modulo-10 check. Enter the number without the last digit and the tool adds it. Enter the full number and the tool checks it. A mismatch is shown with the corrected number; the image is not drawn until the digit is right. Code 39 can add an optional mod 43 check character. Leave that off unless the label spec asks for it.
Is the barcode created in my browser?▾
Yes. The symbol is calculated on this page from the value you type. It is not uploaded, stored, or turned into an account.
Can I put this on a product I sell?▾
Only if the number is one you are allowed to use. This page draws the symbol. It does not register a GS1 company prefix or reserve a product code.
How is a barcode different from a QR code?▾
These are linear barcodes for retail numbers and short identifiers. A QR code is a square pattern, usually for a URL. Phone cameras read QR codes more often than they read a linear barcode. Warehouse and retail scanners are the better test. A Scanely QR beside the bars can open a page you change after printing, and Scanely counts those scans.