Barcode Types Compared
Which barcode does what, how much it holds and where it's used.
About Barcode types
A barcode symbology is a set of rules for turning characters into bars and spaces (1D, or linear, barcodes) or into a pattern of square cells (2D codes). Linear barcodes are read along one line, so they hold a few dozen characters at most; stacked and matrix 2D codes are read as an image and hold hundreds or thousands. Every symbology here is defined by an ISO/IEC or industry standard that scanners follow.
The right choice depends less on the data than on who will scan it. Shop tills expect UPC-A or EAN-13 carrying a GS1 product number; warehouses expect ITF-14 and GS1-128; your own systems can use whatever their scanners read, which usually means Code 128 for labels and Data Matrix or QR for 2D. The second table below starts from the job instead of the symbology.
Every barcode type at a glance
| Symbology | Kind | Characters | Capacity | Typical use | Standard |
|---|---|---|---|---|---|
| UPC-A | 1D | Digits | 12 digits (11 + check digit) | Retail products in the US and Canada | ISO/IEC 15420, GS1 |
| UPC-E | 1D | Digits | 8 digits (a zero-suppressed UPC-A) | Small retail packs in the US and Canada | ISO/IEC 15420, GS1 |
| EAN-13 | 1D | Digits | 13 digits (12 + check digit) | Retail products worldwide | ISO/IEC 15420, GS1 |
| EAN-8 | 1D | Digits | 8 digits (7 + check digit) | Very small retail packs | ISO/IEC 15420, GS1 |
| ISBN (Bookland EAN) | 1D | Digits | 13 digits, optional 5-digit price add-on | Books, starting 978 or 979 | ISO 2108, GS1 |
| Code 128 | 1D | All 128 ASCII characters | Variable; digits pack two per character | Shipping, inventory, assets, documents | ISO/IEC 15417 |
| GS1-128 | 1D | Digits and the GS1 set of 82 characters | Up to 48 data characters, 165 mm wide | Case and pallet labels with Application Identifiers | ISO/IEC 15417, GS1 |
| Code 39 | 1D | 0-9, A-Z, space and - . $ / + % | Variable; wider than Code 128 for the same data | ID badges, defense and automotive parts | ISO/IEC 16388 |
| Code 93 | 1D | All 128 ASCII characters | Variable; denser than Code 39 | Logistics and postal labels (Canada Post) | ANSI/AIM BC5 |
| ITF-14 | 1D | Digits | 14 digits (a GTIN-14) | Outer cases and shipping cartons | ISO/IEC 16390, GS1 |
| Interleaved 2 of 5 | 1D | Digits (an even number) | Variable | Warehouses, cartons, industrial labels | ISO/IEC 16390 |
| Codabar | 1D | 0-9 and - $ : / . + with A-D start/stop | Variable | Libraries, blood banks, labs | ANSI/AIM BC3 |
| MSI Plessey | 1D | Digits | Variable | Shelf edge labels, warehouse bins | No ISO standard (MSI Data Corporation) |
| PDF417 | Stacked 2D | Text, digits and bytes | 1,850 text characters, 2,710 digits or 1,108 bytes | Driver's licences, boarding passes, documents | ISO/IEC 15438 |
| Data Matrix (ECC 200) | 2D | Text, digits and bytes | 3,116 digits, 2,335 text characters or 1,556 bytes | Parts marking, electronics, healthcare (GS1 DataMatrix) | ISO/IEC 16022 |
| Aztec | 2D | Text, digits and bytes | 3,832 digits, 3,067 letters or 1,914 bytes | Train tickets, mobile boarding passes | ISO/IEC 24778 |
| QR Code | 2D | Text, digits, bytes and kanji | 7,089 digits, 4,296 characters or 2,953 bytes | Links, payments and menus scanned by phones | ISO/IEC 18004 |
Which barcode should I use?
| You need a barcode for | Use | Why |
|---|---|---|
| A product sold in shops in the US or Canada | UPC-A | Every point-of-sale scanner reads it; the number comes from GS1 US or GS1 Canada. |
| A product sold in shops anywhere else | EAN-13 | The worldwide retail standard; US scanners have read it since 2005. |
| A very small retail pack | EAN-8 or UPC-E | Shorter symbols for packs where a full-size code won't fit. |
| A book | ISBN (EAN-13) | Book trade systems read the ISBN-13 from the Bookland EAN. |
| A shipping carton of a retail product | ITF-14 | Prints well on corrugated board and carries the case GTIN-14. |
| A pallet or parcel label with batch, dates or an SSCC | GS1-128 | Application Identifiers say what each field means. |
| Stock, asset, bin or document labels | Code 128 | Compact, encodes letters and digits, read by every scanner. |
| A system that already uses an older code | Code 39, Codabar or MSI | Match what the existing scanners and software expect. |
| Lots of data on an ID card or document | PDF417 | Holds over a thousand characters and reads with linear imagers. |
| A tiny label on a part or medical product | Data Matrix | The most compact 2D code for short data, and readable when damaged. |
| A ticket shown on a phone screen | Aztec | Needs no quiet zone and reads well from screens. |
Good to know
1D or 2D?
Laser scanners at older tills and in warehouses read only 1D barcodes. Camera-based imagers, including phones, read both. If the people or systems scanning your code might use a laser scanner, choose a 1D barcode or check first.
Capacities are maximums
The 2D capacities are for the largest symbol at the lowest error correction. Real codes hold less, because they use more error correction and stay a sensible size; a 2D code with a few hundred characters is already large.
More references
- GS1 prefixesBarcode prefixes by GS1 country organization
- Barcode sizesX-dimension, magnification and quiet zones
- GS1 Application IdentifiersCommon GS1 AIs with formats and meanings
- UPC vs EANHow UPC-A and EAN-13 differ, and convert
- ISBN barcode guideHow book barcodes and price add-ons work
- Barcode scanning tipsColors, contrast and print tips that scan