There are dozens of barcode formats, but the right one is almost always decided by where the barcode will be scanned. Answer two quick questions, or scroll down for the full comparison table.
Every common format, what it's for, and what it can hold.
| Format | Best for | Holds | Notes |
|---|---|---|---|
| EAN-13 | Retail products (worldwide) | 12 digits + check | The global retail standard. Needs a GS1-registered number for shop/marketplace sale. |
| UPC-A | Retail products (US & Canada) | 11 digits + check | North American retail. Technically a subset of EAN-13. |
| EAN-8 / UPC-E | Tiny retail packaging | 7–8 / 6 digits | Compressed versions for small items where a full code won't fit. |
| Code 128 | Internal use, inventory, assets, shipping | Any text + numbers | The flexible workhorse. No registration needed — encode whatever you like. |
| GS1-128 | Supply chain with extra data | AIs: batch, expiry, lot… | Code 128 carrying structured GS1 Application Identifiers like (01) GTIN, (17) expiry. |
| ITF-14 | Shipping cartons / cases | 13 digits + check | The code on the outer box that holds multiple retail units. |
| Code 39 | Legacy industrial, automotive, ID | A–Z, 0–9, a few symbols | Older and bulkier than Code 128 — use Code 128 instead unless a system requires 39. |
| MSI | Warehouse shelf / inventory marking | Digits only | Niche; mainly inventory-control systems. |
| Codabar | Libraries, blood banks, logistics | Digits + a few symbols | Old but still used in specific industries. |
| Pharmacode | Pharmaceutical packaging control | Number 3–131070 | A packaging-line control mark, not a data carrier. |
| QR code | URLs, WiFi, contact, mobile scans | Lots of text / URLs | 2D code for phone cameras. Use the QR tool → |
If your product will be sold in a shop or on a marketplace, you need a GS1-registered number first — any tool (including ours) only draws the artwork. For everything internal — inventory, assets, events, shipping within your own operation — Code 128 works with no registration at all.
Jump straight to a dedicated generator for any format: