A simple, self-checking barcode supporting letters and numbers, widely used in automotive, defense, and healthcare industries.
Code 39, also known as "Code 3 of 9," is one of the oldest and most widely used alphanumeric barcodes. Its name comes from the fact that each character is encoded using 9 elements (5 bars and 4 spaces), of which 3 are always wide. Code 39 was the first barcode to encode letters as well as numbers, making it revolutionary when introduced. Its simplicity and self-checking nature have made it a staple in non-retail applications for nearly 50 years.
Code 39 was developed in 1974 by David Allais and Ray Stevens at Intermec. It was groundbreaking as the first alphanumeric barcode symbology. The U.S. Department of Defense adopted it in 1982 as the standard barcode for military applications (MIL-STD-1189). The automotive industry followed with AIAG standards. The healthcare industry adopted it for patient identification. Code 39 became so ubiquitous in non-retail applications that it's sometimes called the "workhorse" barcode. While newer formats like Code 128 offer higher density, Code 39's simplicity ensures its continued use today.
| Symbology Type | Linear (1D) |
| Character Set | 43 characters (A-Z, 0-9, 7 special characters) |
| Data Capacity | Variable, practical limit ~20-30 characters |
| Check Digit | Optional (Modulo 43) |
| Wide/Narrow Ratio | 2.5:1 to 3:1 |
| Minimum X-Dimension | 0.19mm (7.5 mil) |
| Quiet Zone | 10x narrow element width |
| Self-Checking | Yes |
MIL-STD-1189 requires Code 39 for marking military equipment, parts, and supplies.
AIAG standards specify Code 39 for parts tracking, shipping labels, and VIN encoding.
Patient wristbands, specimen labels, and medical device tracking often use Code 39.
Many government employee badges and access cards use Code 39 barcodes.
Library card and book barcodes often use Code 39 due to its simplicity.
Each character is encoded with 9 elements (5 bars and 4 spaces), and exactly 3 of these elements are always wide. The "3 of 9" pattern is what gives the barcode its error-detection capability.
Standard Code 39 only supports uppercase letters. Extended Code 39 (or Code 39 Full ASCII) can encode lowercase and all ASCII characters, but it does so by using pairs of characters, effectively doubling the barcode length.
No, Code 39 is self-checking and a check digit is optional. However, for high-security applications like healthcare or defense, adding the modulo 43 check digit is recommended.
The asterisk is the mandatory start and stop character. Every Code 39 barcode must begin and end with *. When you encode data, you don't include the asterisks - the barcode generator adds them automatically.
Generate professional-quality CODE39 barcodes for free. No signup required.
Generate CODE39 Barcode Free