Standard CODE39 accepts A-Z, 0-9, space, and -.$/+%

2
80
Show Advanced Options

CODE39 Character Set

CODE39 (also known as Code 3 of 9) is a variable-length, self-checking barcode that can encode:

0-9
A-Z
-
.
Space
$
/
+
%

CODE39 Extended can encode all 128 ASCII characters by using combinations of standard CODE39 characters.

Industrial Part Number

Document Control Number

Asset Tracking

🏭

Manufacturing

Inventory control, work-in-progress tracking, and parts identification

🏥

Healthcare

Patient wristbands, specimen tracking, and medical record management

🏛️

Government

Document tracking, asset management, and identification systems

🔬

Laboratory

Sample identification, testing process control, and reporting

CODE39 vs CODE128 Comparison

Feature CODE39 CODE128
Character Set 43 characters (Standard)
128 ASCII chars (Extended)
All 128 ASCII characters natively
Density Low density, generally larger High density, more compact
Check Digit Optional (Mod 43) Mandatory (built-in)
Compatibility Very widely supported by scanners Widely supported by modern scanners
Self-Checking Yes, inherent in the format Yes, with check digit
Ideal For Applications requiring compatibility across legacy systems Applications requiring higher data density or full ASCII

CODE39 Barcode Generator: Creating Reliable Barcodes for Industry Standards

CODE39 (also known as Code 3 of 9) is one of the most widely used barcode symbologies in non-retail environments due to its simplicity, reliability, and broad compatibility with barcode scanners. Our free online CODE39 generator allows you to create standards-compliant barcodes instantly for industrial, healthcare, government, and many other applications.

What is a CODE39 Barcode?

CODE39 was developed in 1974 as one of the first alphanumeric barcode symbologies, capable of encoding uppercase letters (A-Z), numbers (0-9), and a few special characters (- . $ / + % space). It's called "Code 3 of 9" because the original specification defined each character to be represented by 9 elements (5 bars and 4 spaces) with 3 of those elements being wide and the remaining 6 narrow. This self-checking design makes CODE39 highly reliable even without a check digit, though an optional Modulo 43 check character can be added for additional verification.

Standard CODE39 vs. Extended CODE39

CODE39 comes in two variations:

  • Standard CODE39: Natively encodes 43 characters (uppercase A-Z, 0-9, and the special characters space, -, ., $, /, +, and %). This is the most widely compatible version and sufficient for most industrial applications.
  • Extended CODE39: Allows encoding of all 128 ASCII characters by using combinations of standard CODE39 characters. This enables lowercase letters, additional symbols, and control characters, but requires a scanner configured to interpret these extended sequences.

Our generator supports both standard and extended CODE39, giving you the flexibility to choose the format that best suits your requirements.

Applications for CODE39 Barcodes

CODE39 is used across numerous industries where its simplicity and reliability are valued:

  • Manufacturing: Inventory control, work-in-progress tracking, and parts identification
  • Healthcare: Patient identification wristbands, specimen labeling, and medical record management
  • Government: Document tracking, asset management, and identification systems
  • Defense/Military: The Department of Defense uses CODE39 for the Unique Identification (UID) marking system and LOGMARS (Logistics Applications of Automated Marking and Reading Symbols)
  • Automotive: Parts tracking throughout the supply chain
  • Libraries: Book labeling and circulation management

Advantages of CODE39

CODE39 offers several advantages that have contributed to its long-standing popularity:

  • Universal Compatibility: CODE39 is supported by virtually all barcode scanners, including older models, making it an excellent choice for systems that need to work across a wide range of equipment.
  • Self-Checking Format: The symbology itself can detect many common errors without requiring a check digit, though one can be added for additional security.
  • Variable Length: Unlike retail barcodes, CODE39 can be any length, allowing for flexibility in the amount of data encoded.
  • Alphanumeric Support: The ability to encode letters and numbers makes it suitable for applications requiring more than just numeric data.
  • Intuitive to Read: The start and stop characters (typically represented by asterisks) make it easy to visually identify a CODE39 barcode.

When to Choose CODE39 vs. CODE128

While CODE128 offers higher density and native full ASCII support, CODE39 remains the preferred choice in many applications due to:

  • Legacy System Compatibility: If you need to ensure your barcodes work with older scanning equipment, CODE39 is the safer choice.
  • Simplicity: CODE39 is easier to implement and has fewer encoding rules than CODE128.
  • Industry Standards: Many industries and government agencies have standardized on CODE39, particularly the military and defense sectors.
  • Visual Readability: CODE39 is generally easier to recognize visually due to its distinctive pattern.

If maximum data density or a requirement for lowercase letters and additional special characters is your primary concern, CODE128 might be more appropriate. However, for many industrial, healthcare, and government applications, CODE39 continues to be the standard choice due to its reliability and universal compatibility.

CODE39 Technical Specifications

CODE39 barcodes follow specific technical standards to ensure reliable scanning:

  • Symbology: Discrete, variable length
  • Character Set: 43 characters (standard) / 128 ASCII characters (extended)
  • Check Character: Optional Modulo 43
  • Quiet Zone: 10X minimum (X = narrow bar width)
  • Element Structure: Each character consists of 9 elements (5 bars and 4 spaces), of which 3 are wide and 6 are narrow
  • Start/Stop Character: Asterisk (*) is used but is not included in the human-readable portion
  • Self-Checking: Yes
  • Bidirectional Decoding: Yes

Our generator handles all these technical details automatically to ensure your barcodes are fully compliant with CODE39 specifications and will scan reliably in any environment.