Barcode Format Comparison: Which One Is Right for Your Project?
Table of Contents
There are dozens of barcode symbologies in existence, but six formats cover virtually every real-world use case: CODE128, CODE39, EAN-13, UPC-A, ITF-14, and Pharmacode. Picking the wrong one wastes time and money — a retail barcode that no scanner recognizes, or an inventory barcode that your WMS cannot parse.
This guide explains exactly what each format does, where it is used, and how to decide which one to generate.
CODE128 — The General-Purpose Format
CODE128 encodes the full 128-character ASCII set in a compact, high-density format. It is the default choice for any internal labeling application where you control both the printer and the scanner.
| Property | Value |
|---|---|
| Character set | Full ASCII (letters + numbers + symbols) |
| Density | High — shorter than CODE39 for the same data |
| Checksum | Mandatory (auto-calculated) |
| Variable length | Yes |
Use for: Inventory labels, shipping labels, asset tags, event tickets, employee badges, healthcare wristbands, anything internal.
CODE39 — The Legacy Standard
CODE39 was developed in 1974 and was the first alphanumeric barcode. It encodes 43 characters (uppercase A-Z, digits 0-9, and 7 special characters). It is less dense than CODE128 (the same data produces a wider barcode) but still widely used in legacy systems.
| Property | Value |
|---|---|
| Character set | Uppercase A-Z, 0-9, 7 symbols |
| Density | Low — wider than CODE128 |
| Checksum | Optional |
| Variable length | Yes |
Use for: Automotive parts (original AIAG standard), military (DoD still uses CODE39 in some systems), legacy WMS that do not support CODE128. If you are starting a new system, use CODE128 instead.
EAN-13 — International Retail Standard
EAN-13 encodes exactly 13 digits and is used on virtually every retail product sold outside North America (and accepted in North America since 2005). The first 2-3 digits are a GS1 country prefix.
Use for: Retail products intended for international distribution, products sold in Europe/Asia/Australia, books (ISBN-13 is EAN-13 with 978/979 prefix).
Do not use for: Internal inventory, shipping cartons, or non-registered numbers for public retail.
Sell Custom Apparel — We Handle Printing & Free ShippingUPC-A — North American Retail Standard
UPC-A encodes exactly 12 digits and is the checkout barcode standard in the United States and Canada. Technically a subset of EAN-13 (UPC-A with a prepended 0 = valid EAN-13).
Use for: Products sold at US/Canadian retail checkout — grocery, drug, hardware, department stores.
Relationship to EAN-13: Any US retailer scanner accepts EAN-13 barcodes. If you only need US distribution, UPC-A is traditional. If you want global distribution, generate EAN-13.
ITF-14 — Shipping Carton Standard
ITF-14 encodes exactly 14 digits and is used on outer packaging and shipping cartons (the box that contains multiple retail units). It is a GS1 standard specifically for logistics and distribution.
The 14 digits are typically the inner product EAN-13 prefixed with a packaging indicator digit (0-8).
Use for: Outer shipping cartons, pallets, master cases for warehouse receiving. Required by many major retailers for case-level scanning in distribution centers.
Note: ITF-14 is printed larger than retail barcodes and often includes a bearer bar (rectangular frame around the barcode).
Pharmacode — Pharmaceutical Packaging Only
Pharmacode (also called Code 32 in some contexts) is a specialized barcode used exclusively in pharmaceutical packaging. It encodes a number from 3 to 131,070 in a compact, high-tolerance format optimized for high-speed packaging lines.
Use for: Pharmaceutical packaging machines that require Pharmacode specifically. Not for general use.
Do not use for: Retail, inventory, shipping, or any non-pharma application.
Quick Format Selector
| Your Situation | Use This Format |
|---|---|
| Internal inventory, warehouse, asset tags | CODE128 |
| Product for sale at US/Canadian retail | UPC-A |
| Product for international retail | EAN-13 |
| Book / ISBN barcode | EAN-13 (978/979 prefix) |
| Shipping carton / outer packaging | ITF-14 |
| Legacy system that only reads CODE39 | CODE39 |
| Pharmaceutical packaging line | Pharmacode |
Try It Free — No Signup Required
Runs 100% in your browser. No data is collected, stored, or sent anywhere.
Open Free Barcode GeneratorFrequently Asked Questions
Which barcode format is most widely supported?
CODE128 is supported by virtually every barcode scanner manufactured in the last 30 years. For retail, EAN-13 and UPC-A are the universal standards. If you are unsure what scanner your use case involves, CODE128 is the safe default.
Can I use CODE128 for retail products at a store checkout?
No. Retail POS systems are configured to scan EAN-13 and UPC-A specifically. A CODE128 barcode on a consumer product will not ring up correctly at a store checkout. CODE128 is for internal/logistics use; EAN-13/UPC-A are for retail.
Is there a barcode format that encodes more data than CODE128?
For 1D barcodes, no — CODE128 is the most data-dense linear format. For significantly more data, you need a 2D format like QR code (up to 4,296 characters) or Data Matrix. Those are different tools from traditional barcodes.

