Bulk Barcode Generator Generate Code 128 Free →
📊 Barcode Standards — Code 128 Glossary

What Is Code 128?

Code 128 is the world's most widely used linear barcode format. It can encode all 128 ASCII characters — letters, digits, and punctuation — with no length limit, fast scanning, and high reliability. Warehouse SKU labels, shipping tracking codes, Amazon FNSKU — the vast majority of commercial barcodes that don't require a specific retail standard (UPC/EAN) default to Code 128.

Generate Code 128 Barcodes Free →
All ASCII chars No digit limit Widest scanner support Free generator

Code 128 Defined

Official name
Code 128 (ISO/IEC 15417)
Type
Linear (one-dimensional) barcode
Character set
Full 128 ASCII characters — digits 0–9, uppercase A–Z, lowercase a–z, and special characters including punctuation, spaces, and control characters
Length limit
None — the barcode automatically grows wider as more characters are encoded
Check digit
Built-in Mod 103 check character, automatically calculated by the encoder — no manual work needed
Year created
1981, developed by Computer Identics Corporation

Code 128 is the default choice for any barcode that does not require GS1 registration. If you need to label internal SKUs, FNSKU codes, serial numbers, or any custom alphanumeric string, Code 128 is almost certainly the right format.

Code 128 Subsets: A, B, and C

Code 128 is divided into three internal subsets. Modern barcode generators — including this tool — automatically select and switch between subsets to produce the shortest possible barcode for your content. You do not need to choose a subset manually.

Subset Characters Encoded Best For
Code 128A ASCII 0–95 (uppercase letters, digits, control characters) Systems that require control characters (e.g. NUL, SOH, STX)
Code 128B ASCII 32–127 (uppercase + lowercase letters, digits, symbols) General mixed-content barcodes — the most commonly used subset
Code 128C Digit pairs 00–99 only Pure numeric data — encodes two digits per symbol, doubling density

Automatic Mode (GS1 calls it "best fit") switches between subsets mid-barcode. For example, a mixed string like SKU-2024-001234 might use Code 128B for the letters and switch to Code 128C for the trailing digit run, producing a shorter barcode than any single subset alone.

Code 128 vs Other Barcode Formats

Understanding how Code 128 compares to Code 39, EAN-13/UPC-A, and QR Code helps you pick the right format for each use case.

Code 128 Code 39 EAN-13 / UPC-A QR Code
Type 1D linear 1D linear 1D linear 2D matrix
Characters All 128 ASCII 43 chars (A–Z, 0–9, symbols) Digits only Any (incl. URLs)
Length limit None None Fixed 13 / 12 digits None
Density High Lower (larger label needed) Fixed Very high
GS1 registration? Not required Not required Required for retail shelf Not required
Best for SKU, FBA, tracking codes Location codes, simple alphanumeric Retail shelf scanning URLs, multi-data payloads
Scanner support Universal (1D) Universal (1D) Universal (1D) Needs 2D-capable scanner

When to Use Code 128

Code 128 is the default choice for any barcode that does not require GS1 retail registration. Here is a practical guide:

Use Code 128 when…

  • Labeling internal inventory SKUs (e.g. JACKET-BLK-M-001)
  • Printing Amazon FNSKU labels (Amazon mandates Code 128)
  • Creating shipping tracking codes (FedEx, UPS, USPS all use Code 128 variants)
  • Labeling warehouse shelves with alphanumeric location codes
  • Barcoding medical or pharmaceutical batch numbers
  • Any custom encoding system that does not need GS1 registration

Do not use Code 128 when…

  • Selling on supermarket / retail shelves → use EAN-13 or UPC-A (requires GS1 registration)
  • Encoding a URL or multi-line information → use QR Code
  • Shipping cartons require ITF format per retailer spec → use ITF-14

Minimum Code 128 Label Size

Printing too small is the most common reason Code 128 barcodes fail to scan. Here are the key dimensions:

Minimum X-dimension ≥ 0.191 mm (GS1 minimum); ≥ 0.25 mm recommended for warehouse use
Bar height ≥ 15% of barcode width (practical minimum: 15 mm; warehouse: 20 mm or taller)
Quiet zone Left & right margins ≥ 10 × X-dimension each
Recommended label size Width ≥ 30 mm, Height ≥ 20 mm — wider for longer content

Note on content length: Code 128 barcodes grow in width as you add more characters. A 10-character SKU will produce a barcode roughly 40% wider than a 6-character SKU. Make sure your label width can accommodate your longest code before printing in bulk.

How to Generate Code 128 Barcodes

Bulk Barcode Generator produces print-ready Code 128 barcodes directly in your browser — no software to install, no data sent to a server.

1

Single barcode

Type or paste any text or number into the generator, select Code 128 as the symbology, then download your barcode as PNG or PDF.

2

Bulk from CSV

Upload a CSV with one SKU, FNSKU, or tracking code per row. Select Code 128, then download a ZIP of all individual PNGs or a multi-page PDF ready to print on Avery label sheets.

3

Print

Open the PDF in any PDF viewer, select your label paper (e.g. Avery 5160, 4×6 thermal), and print. No scaling — the barcodes are sized to fit automatically.

Have a list of SKUs, FNSKUs, or tracking codes? Upload your CSV to Bulk Barcode Generator, select Code 128, and download print-ready labels in seconds. Free, no signup, no row limit — all processing happens locally in your browser, so your codes never leave your device.

Generate Code 128 Barcodes Free →

Frequently Asked Questions

What is Code 128 used for?
Code 128 is the default barcode format for internal inventory SKUs, Amazon FNSKU labels, warehouse tracking codes, and any barcode that needs to encode a custom alphanumeric string. Unlike EAN-13 and UPC-A, Code 128 does not require GS1 registration, making it free to use with any text or number system you define. It is also the format used by shipping carriers like UPS and FedEx for tracking barcodes.
What is the difference between Code 128 and Code 39?
Code 128 is denser and supports all 128 ASCII characters, including lowercase letters and special symbols. Code 39 supports only 43 characters (uppercase letters, digits, and a few symbols) and produces wider barcodes for the same amount of data. Code 128 is recommended for most uses because it is more compact. Code 39 is still used in some government and industrial systems that were built before Code 128 became standard.
Can any scanner read Code 128?
Yes. Code 128 is a 1D linear barcode supported by virtually all barcode scanners — handheld laser scanners, CCD scanners, omnidirectional scanners at checkout, and smartphone barcode scanning apps. The only scanners that cannot read Code 128 are cameras or apps that are limited to 2D matrix codes only, which is uncommon.
Is Code 128 the same as GS1-128?
No. GS1-128 (formerly EAN-128 or UCC-128) is a specific application of Code 128 that uses Application Identifiers (AIs) to encode structured data like lot numbers, expiry dates, and serial numbers for supply chain use. Standard Code 128 encodes any text freely. If you just need to barcode your own SKUs or tracking codes, use standard Code 128. GS1-128 is used when your trading partners or EDI systems require structured GS1 data fields.