Barcode Types Explained: Code 128, EAN-13, UPC, and More
There are over a dozen barcode formats in common use, and if you've never had to think about them before, the terminology is confusing fast. The good news: most people only need one or two. Here's what actually matters.
UPC-A (Universal Product Code)
This is the barcode on most retail products sold in the United States and Canada. It stores 12 numeric digits — 6 for the manufacturer, 5 for the product, and 1 check digit. When you scan something at a US grocery store checkout, there's a roughly 90% chance it's a UPC-A.
If you're selling physical products in North American retail, you need UPC-A codes. You get them by joining GS1 US, which assigns you a company prefix. Our barcode generator can generate UPC-A barcodes if you already have your codes.
EAN-13 (European Article Number)
EAN-13 is the international equivalent of UPC-A. It stores 13 digits instead of 12 — a 2 or 3-digit country code prepended to the UPC structure. Technically, a UPC-A code is a subset of EAN-13 (with a leading 0). Most modern retail scanners worldwide read both formats.
If you're selling in Europe, Asia, or anywhere outside North America, EAN-13 is the standard. If you're selling globally, EAN-13 covers you everywhere.
Code 128
Code 128 is more flexible than UPC or EAN — it can encode any ASCII character, not just numbers, and doesn't have a fixed length. This makes it the format of choice for internal inventory systems, shipping labels, warehousing, and any application where you need to encode alphanumeric data (like order IDs or serial numbers).
It won't work at retail checkout (POS systems are configured for UPC/EAN), but for your own internal use, Code 128 is versatile and well-supported. See our guide on setting up barcodes for small business inventory — Code 128 is what we recommend there.
Code 39
An older format that encodes uppercase letters, numbers, and a handful of special characters. It's less efficient than Code 128 (requires more space for the same data) but is widely compatible with older industrial systems. If you're working with legacy hardware, you might encounter it. For new projects, Code 128 is generally the better choice.
ITF-14 (Interleaved 2 of 5)
Used on outer packaging and shipping cartons rather than individual consumer products. It encodes 14 digits and is designed to be printable directly onto corrugated cardboard — which has a rough surface that doesn't hold fine detail well. If you're shipping pallets or cases to retailers, you'll likely encounter ITF-14 requirements.
QR Code (2D)
Technically a 2D barcode rather than a traditional 1D barcode. Much higher data capacity, scans from any angle, works with smartphone cameras natively. Not the right choice for retail POS systems, but the right choice for anything consumer-facing. We've covered this comparison in detail in QR Code vs Barcode: Which Should You Use?
Quick decision chart
| Use Case | Recommended Format |
|---|---|
| US retail products | UPC-A |
| International retail | EAN-13 |
| Internal inventory / warehouse | Code 128 |
| Shipping cartons | ITF-14 |
| Consumer-facing, phone scan | QR Code |
| Legacy industrial systems | Code 39 |
Generate any barcode format for free
Our generator supports Code 128, EAN-13, UPC-A, and more. No account needed.
Open Barcode Generator