Code 39


The Code 39 was developed in 1975 by Intermec and was defined by several organizations (e.g. AIM, ANSI, DOD, AIAG, HIBCC, ISO, EN, ODETTE, Danish PTT, French Postal etc.) in different specifications and standards.

Symbol Examples

Code39 Symbol

Example of a Code 39 symbol with eight functional digits (12345678) and one check character (-):

Code39 Symbol with eight functional digits and one check character

Symbol Designations

The Code 39 (VBCD: Code 39) is sometimes also called

  • Code alpha 39 or
  • Code 3 of 9 or
  • 3 of 9 Code.

The two digits 3 and 9 state that each character consists of 3 wide elements with altogether 9 elements.

Areas of Application & Branches of Trade

  • Parcel services
  • Electronics industry
  • Chemical industry
  • Health and medical sector
  • Forwarding, logistics and transport business
  • Mostly still only serves internal logistic purposes.
  • In use for internal material and serial numbers.
  • Partly used for product identification in the health and medical sectors.

The special determinations for EAN 128 and/or UCC-128 are utilized additionally:

  • Consumables, trade
  • Medical sector
  • Packing industry


Advantages / Potencies

  • Alphanumerical character set
  • High reading reliability
  • Highly prevalent
  • Easy to produce

Disadvantages / Shortcomings

  • Is used less and less, as the Information Density is very low (nine elements and one intercharacter gap per symbol character are required).
  • An omnidirectional readability is only given with some reservations.

Codeable Character Set

  • Alphanumerical: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    0 1 2 3 4 5 6 7 8 9
  • 7 special characters: Space $ % + - . /
  • 1 start / stop-character is automatically generated by the "Visual Bar Code Designer".

Symbol Properties

  • Code type: discrete (the space – intercharacter gap – between the single characters contains no information).
  • Elements per symbol character: 9, 3 wide ones and 6 narrow ones, representing 5 bars and 4 spaces.
  • Self-checking characters: yes (the characters are intrinsically safe, meaning that a change within the character is detected to be an error).
  • Symbol Width: variable (the amount of data characters within the symbol can, depending on existing agreements, be variable or variable up to a defined maximum).
  • Ratio (ratio between the wide and the narrow elements): the ratio should range between 2.0 : 1 and 3.0 : 1.
  • Bi-directionally readable: yes (the barcode symbol can be read in two directions, i.e. forwards or backwards).
  • Check Character: an optional check character (by using a check character – symbol check digit – substitution errors can nearly all be detected).
  • Character Density: 13 to 16 modules per symbol character, including the space – intercharacter gap – occurring between the characters, and according to the ratio between the wide and the narrow elements.
  • Necessary characters containing no functional characters: the equivalent of 2 symbol characters.

Check Digits & Data Security

The nine Elements of each Character consist of five Bars and four Spaces. Each character of the Code 39 is Self-Checking and thereby already guarantees a high level of security against misread.

The existence of an additional Check Character (symbol check digit) is not mandatory.

Because of the higher security rate, a check character should be used (calculated according to Modulo 43), which is then automatically generated by the "Visual Bar Code Designer", if necessary.

Symbol Description

A symbol - starting from the left – consists of:

  • One leading Quiet Zone
  • one Start-Character,
  • one or more Symbol Characters, representing the data or the special characters,
  • one obligatory Check Character (symbol check character), which is automatically generated by the "Visual Bar Code Designer",
  • one Stop Character,
  • one closing quiet zone.
  • Human Readable Text
    A human readable translation of the data characters encoded in the symbol (and possibly the check digits) should usually be printed along with the symbol. The size of the characters and the font type are not specified. As long as the quiet zones are not touched, the human readable text can be printed at any given spot near the symbol. Usually, the human readable text is situated below the symbol.

Special Applications

The Code 39 serves as a basis for the special applications described below. For the differentiation as against the standard code Code 39, special check digit calculations, numbers of characters, etc. are in some cases mandatory.

Code 39

  • Danish PTT (VBCD: Danish PTT 39 Barcode)
    A special Code 39, used on parcel labels for mailing items in Denmark.
    The symbol contains 10 data characters, one especially calculated check character and, at the end, the two characters DK.

Code 39 Danish PTT

  • French Postal (VBCD: French Postal 39 A/R)
    A special Code 39, used on registered letter forms in France.
    The symbol begins either with RA or RB, contains 8 data characters, one especially calculated check character and, at the end, the two characters FR.

Code 39 French Postal