Barcode Formats Explained: CODE128, EAN-13, UPC, ITF-14 and Code 39

Choosing a barcode format is mostly a question of what the barcode will be used for. Pick the wrong one and it either will not draw or will not be accepted where you need it. Here is a plain guide to the common formats, and why some values are rejected.

Which format for which job

FormatAcceptsTypical use
CODE128Letters, digits and symbols (ASCII)Inventory, shipping, internal IDs
CODE39Capital letters, digits and - . space $ / + %Asset tags, older systems
EAN-1312 digits (check digit added) or 13 with a valid check digitRetail products
UPC11 digits (check digit added) or 12 with a valid check digitRetail products, North America
ITF-1413 digits (check digit added) or 14 with a valid check digitCartons and cases

If you just need to label your own stock, CODE128 is the safest default: it accepts almost any text you can type in plain ASCII.

What is a check digit?

Retail barcodes end with a check digit, calculated from the other digits, that lets a scanner detect a misread. When you give a generator 12 digits for EAN-13 (or 11 for UPC), it can work out the check digit for you. If you give it the full 13 or 12 digits, the last one has to be correct, or the value is rejected.

Why your EAN-13 or UPC will not draw

  • Wrong length. EAN-13 needs 12 or 13 digits, and UPC needs 11 or 12. Codes copied from a spreadsheet often lose a leading zero, which changes the length.
  • Wrong check digit. A full-length value whose last digit does not match is rejected. Remove the last digit and let the tool add the right one.
  • Not digits. Retail formats accept digits only. CODE39 rejects characters such as underscores.

A generated barcode is not a registered product number

This matters if you sell in shops. Making an EAN-13 or UPC image only draws the number you typed; it does not register that number to you. Retailers and marketplaces generally expect product numbers issued through GS1, the organisation that manages them, so check their requirements before you print packaging. For your own inventory and internal labels, you can use any numbers you like.

Making many at once

The bulk barcode generator takes a pasted list or a CSV, or can create a numbered batch, and exports a ZIP of PNGs or print-ready label sheets on A4, A3, US Letter or US Legal. Print at 100% size, leave the blank margin around the bars alone, and scan one printed sample before printing a full batch.