Code 39 - History, Purpose, Advantages, Limitations and Usage - ByteScout
  • Home
  • /
  • Blog
  • /
  • Code 39 – History, Purpose, Advantages, Limitations and Usage

Code 39 – History, Purpose, Advantages, Limitations and Usage

Code 39 Barcodes

Code 39 barcode is one of the most widely and commonly used barcode types. It is a linear or 1d barcode that slices perpendicularly across the bars of the barcode and is also known as USS code 39, code 3 of 9, Alpha 39, USD-3, and Type 39. A 1D barcode means that they create it with single lines without any intersection.

Code 39 is capable of encoding all the alphanumeric characters (26 Alphabets and 10 numeric characters ranging from 0 to 9).  It can also encode space and six special characters including the dollar sign ($), Period (.), minus (-), percent (%), slash (/), plus (+). Asterisk (*) can also be used but only at the start or end of the code.


Code 39 was initially designed by two researchers from Intermec, named Ray Stevens and Dr.David Allais in the year 1974. Initial code 39 was created with two wide black bars and a wide space which could encode 40 characters excluding the first or last symbol resulting in 39 total characters. It is for this reason that this barcode is called code 39. The latest code 39 contains 9 bars in total with three wide and six narrow bars.

Code 39 symbology is the first alphanumeric symbology and generally used in non-retail sectors.  The founders invented it long ago but still one of the most popular, do-it-yourself barcodes.

Code39 Purposes

Code 39 has been recognized by ANSI (American National Standards Institute) as MH10.8M-1983. It is a general-purpose and most widely used barcode type. Its basic purpose is to encode a small amount of information containing alphabets as well as numeric characters in a linear pattern of bars and spaces.

Code Format

It consists of symbols containing numbers 0-9, uppercase letters A-Z, space characters and symbols: -.*$%/+{SPACE} and also lowercase letters with code 39 extended font. HI345678 is a code 39 barcode example that has a checksum digit of 67.

Code 39 can be produced in 2,0:1 and 3,0:1 proportion of the thin and thick lines of code. A higher proportion means the barcode will be broader and easier to read. The narrow bar maybe 0.0075″ and 0.05″ which means printing tolerances are quite possible in the barcode. And the code height is not dependent on the width of the code and determined based on individual applications.

A code 39 format has the following structure:

  1. Start character – asterisk (*).
  2. Any number of characters encoded.
  3. An optional checksum digit calculated.
  4. A stop character, which is a second asterisk character.

Both Code 39 start and stop character are asterisk marks. These asterisks are generally not shown in the text line. But sometimes these are shown in the text line with the asterisk marks but if the text line shows *1234* you have to enter 1234 because the stars are a fixed part of Code 39.

Code39 Barcode Advantages

The extensive use of this barcode type makes it portable. This barcode can be encoded and decoded by almost every barcode encoding/decoding equipment.

  • Code 39 can encode all 26 Alphabets of the English language and the numerals which were not possible with the previous barcodes.
  • It is much more secure and is not prone to wrong encoding and decoding.
  • It is a self-checking barcode format code 39 which means a single print defect cannot lead to misrepresentation of the character into another character.
  • Code 39 barcode’s reader is readily available and compatible with most of the readers in the market.

Code39 BarCode Limitations

It is not suitable for items that require a large amount of information to be encoded. In that case, the length of the code 39 barcode becomes too large, which is not appropriate for encoding as well as decoding.

  • Code 39 barcode can be easily damaged and distorted like any linear barcode.
  • It is a width-encoding code 39 symbology which can be quickly become unreadable on a slight ink-spread during printing.
  • The maximum number of characters possible to encode in code 39 format is 43.
  • Code 39 is 30% wider than the same encryption for code 128; this makes the code more difficult to scan, and users have to face practical difficulties.
  • Since it is an auto-correcting barcode, it cannot be fixed manually if the system misses anything.
  • The lowercase characters are not allowed in the code 39 format but the code 39 extended format.
  • Some readers do not accept the extended code 39, so make sure to try out your code before with your reader.


Code 39 symbology is commonly used in-store items, inventories, badges, and similar everyday items. Barcode format Code 39 is usually preferred in private or inter-company transactions.

  • It is widely used in the health sector and medical equipment.
  • Used by the US Defense department (LOGMARS) for the military equipment.
  • Used in the airline and aviation industry on airplane parts.
  • Used in tracking transportation and assembly of parts made at different locations.
  • Employee membership cards for security check


Code 39 barcode should be used when a small amount of information needs to be encoded. It is one of the most popular barcodes and servers purposes for most of its users. It has some significant advantages like self-checking features, the encoding of all letters, and much more. But still cannot be useful if there is a printing mistake or the width of the character is not appropriate. And if it had lowercase characters included in the regular code itself and included more characters in it, it would have been the perfect barcode you need.

So, make sure you print the code successfully, and if it is an extended code your reader reads it well. Besides that, you do not need to worry about its security and use it freely. With the help of Bytescout BarCode SDK you can generate Code 39, and BarCode Reader SDK can decode it.


About the Author

ByteScout Team ByteScout Team of Writers ByteScout has a team of professional writers proficient in different technical topics. We select the best writers to cover interesting and trending topics for our readers. We love developers and we hope our articles help you learn about programming and programmers.