Code 128 barcode generator, in bulk

The workhorse for inventory, shipping and asset tags. It takes letters, digits and punctuation, stays compact, and every warehouse scanner reads it.

1 Your data

0 rows · 0 ready

2 Code type & look

3 Preview & export

First 0 of 0. Everything is generated in your browser.

Add some rows in step 1 and your labels appear here.

·

About Code 128

Code 128 packs pairs of digits into a single symbol character, so long numeric strings stay short. It also handles upper and lower case, spaces and symbols, which is why most internal labelling (SKUs, bin locations, serial numbers) uses it.

It has a built-in check character, so you never add one yourself. GS1-128 (the shipping-label variant with application identifiers such as (01) and (10)) is Code 128 with a special start character. This page makes plain Code 128.

Width grows with the data. If a code has to fit a small label, shorten the value or use a 2D code (Data Matrix or QR) instead.

Code 128 specification
CharactersAll 128 ASCII characters
LengthVariable (keep it under ~25 for handheld scanning)
Used forInventory, SKUs, shipping labels, serial numbers
Quiet zone10 modules each side
CheckBuilt-in mod-103 check character (invisible)
DensitySwitches to compact digit-pair mode (Code C) automatically

Code 128 questions

Does Code 128 need a check digit?
No. A mod-103 check character is calculated and encoded automatically; it is not printed in the text line.
Code 128 or Code 39?
Code 128 is denser and supports lower case and all symbols. Use Code 39 only when an older system or a specification requires it.
Can I encode lower-case letters?
Yes. Code 128 covers all printable ASCII. Accented and non-Latin characters are not supported; use a QR code for those.

Related tools