Code 39 barcode generator
Code 39 is a variable-length barcode often used for identifiers in systems that specifically support it. Basic Code 39 encodes uppercase letters, numbers and a small set of punctuation. It is not a substitute for a retail UPC-A or EAN-13 barcode.
Check the receiver's requirements before choosing the format. Matching the scanner's symbology setting is only part of the job; the receiving software must also understand the value.
Basic characters you can encode
| Character group | Basic Code 39 data |
|---|---|
| Letters | A–Z |
| Digits | 0–9 |
| Other data characters | Space, hyphen, period, dollar sign, slash, plus and percent |
That is a 43-character data set. An asterisk is normally used to show the start/stop character in human-readable notation; it is not ordinary data in basic Code 39. The generator's encoder should handle the framing rather than asking you to wrap your input in asterisks.
Lowercase letters are not in the basic character set. Extended or Full ASCII Code 39 uses character pairs and requires compatible scanner decoding; it must not be assumed merely because a text field accepts lowercase input.
Know whether a check character is required
Code 39 has an optional modulo-43 check character. Some receiving systems require it and others do not. The generator and scanner must agree on that setting, including whether the scanner returns the check character to the software.
The current format specification is ISO/IEC 16388:2023. The basic character set and optional-check structure are also documented in the publicly accessible earlier ISO specification preview.
Leave room for a readable label
Long Code 39 values can produce wide symbols. Keep the quiet zones clear and choose a label size that suits the printer and scanner. Do not squeeze the image horizontally to force a long identifier into a short space.
If the receiving system also accepts Code 128, compare that format for mixed-case text or compact numeric encoding. Do not change an established format without checking the receiving system first.
Method and transparency
Last updated: 6 November 2026. Local technical preview only.