Free Code 39 Barcode Generator
Code 39 accepts 0–9, a–z, space and - . $ / + %. Check digit: optional modulo 43 (not added here). Keep a quiet zone of 10 modules clear on each side of the printed symbol.
Processed on your device
Choose a symbology
Retail & logistics
General purpose
2D symbols
When to use Code 39
Code 39 is the format to pick when the scanner or the system on the other end is old. Defence, automotive and long-running industrial inventories standardised on it decades ago, and it is still the safest bet for equipment that predates Code 128. It encodes a restricted character set and, in this tool as in most deployments, carries no check digit by default.
Read back by our scanner — Our exports were decoded back by our own scanner.
Frequently asked questions
Which characters does Code 39 accept?
Digits 0–9, capital letters A–Z, space, and the symbols - . $ / + %. Lower-case input is matched against the same set; anything outside it is rejected with the offending character named.
Is a check digit included?
No. The optional modulo 43 check character is not added here, which matches how most Code 39 installations are configured. If your system requires it, include it in the data you type.
Why is Code 39 wider than Code 128?
Each Code 39 character uses nine elements regardless of content, so the symbol grows quickly. For a long reference on a small label, Code 128 is usually the better choice.
Has this output actually been read back?
Our exported Code 39 images were decoded again by our own scanner during testing.