Decode one
Scan or paste a barcode and see every part of it.
Make one
Generate a valid barcode from fields.
Where you’ll see it
- Manufacturing and automotive parts labels.
- Government and defense, on equipment and supply labels.
- Healthcare, on some specimen, patient and supply labels.
- ID badges and asset tags, often printed with a barcode font.
Anatomy
Characters
Each character is nine elements, five bars and four spaces, and exactly three of the nine are wide. That’s where the name comes from. A narrow gap separates one character from the next, so each one can be read on its own. A wide element is 2 to 3 times the width of a narrow one.43 characters
There are no lowercase letters.
Start and stop asterisks
Every Code 39 barcode starts and ends with an asterisk. Labels made with a barcode font often print the asterisks in the text too, but scanners don’t send them.Full ASCII
Full ASCII mode reaches all 128 ASCII characters by encoding the missing ones as pairs. A lowercasea, for example, is +A. Nothing in the barcode says it uses Full ASCII, so the scanner has to be set up for it.
Check character
Code 39 doesn’t require a check character, and most Code 39 barcodes don’t have one. Where it’s used, it’s the last character before the stop asterisk, calculated with mod-43. The example’s check character isJ.
Because it’s optional and nothing marks it, the scanner and your app both have to be told whether to expect it. See Check digits.
Variants and related types
- Code 93: a denser successor with two required check characters.
- Code 128: denser again, with lowercase letters and digit compression. The usual choice for new labels.
Gotchas
- Asterisks on the label, none in the scan. See asterisks around the text.
- One extra character. The barcode has a check character the label doesn’t show. See a missing last digit.
+Ainstead ofa. The barcode uses Full ASCII and the scanner isn’t set up for it, or the other way round.- Wide barcodes. Code 39 is the least dense barcode in common use. Long values make labels too wide to scan comfortably.
Scanning it in your app
Specification
- ISO/IEC 16388: the Code 39 barcode specification.