Codabar Specification

The Codabar symbology is the oldest symbology, and is used for shipping/receiving (Federal Express), publication control and distribution (libraries), as well as for controlling government supplies. This symbology allows the encoding of strings of up to 16 digits, 10 numeric digits (0 through 9) and 6 special non alpha characters ("+" (plus), "-" (minus), "$" (dollar sign), "/" (slash), ":" (colon), and "." (point)). There are also 4 start/stop code choices possible when using the Codabar symbology. These characters (A, B, C, or D) must be included at the beginning or ending of a string. Using start/stop characters gives Codabar additional coding ability due to the variable character combinations possible. Bars & Stripes will optionally supply these start/stop characters for you.

Codabar Character Set

The numbers in the table correspond to the width of the element. A 0 means the element is narrow, and a 1 means the element is wide.
 

Data    B  S  B  S  B  S  B   Value
  0     0  0  0  0  0  1  1     0
  1     0  0  0  0  1  1  0     1
  2     0  0  0  1  0  0  1     2
  3     1  1  0  0  0  0  0     3
  4     0  0  1  0  0  1  0     4
  5     1  0  0  0  0  1  0     5
  6     0  1  0  0  0  0  1     6
  7     0  1  0  0  1  0  0     7
  8     0  1  1  0  0  0  0     8
  9     1  0  0  1  0  0  0     9
  -     0  0  0  1  1  0  0     10
  $     0  0  1  1  0  0  0     11
  :     1  0  0  0  1  0  1     12
  /     1  0  1  0  0  0  1     13
  .     1  0  1  0  1  0  0     14
  +     0  0  1  0  1  0  1     15
  A     0  0  1  1  0  1  0     16
  B     0  1  0  1  0  0  1     17
  C     0  0  0  1  0  1  1     18
  D     0  0  0  1  1  1  0     19
  

NOTE

The start/stop characters are A, B, C, and D.

Check Digit Calculation

There is no checksum defined as part of the Codabar standard, but some industries (libraries, for example) have adopted their own checksum standards.  Many libraries use the following system which includes 13 digits plus a checksum;

  Digit 1 indicates the type of barcode:  2 = patron, 3 = item (book)
  Digits 2-5 identify the institution
  The next 6 digits (00010 586) identify the individual patron or item
  Digit 14 is the checksum

 

Step 1: Designate the most significant digit postion as odd.

        8 5 3 2 9 0 1 2 5 8 6 7 3
        O E O E O E O E O E O E O

Step 2: Multiply each digit in an odd (O) position by 2.

         8   3   9   1   5   6   3  <-- odd digit
        16   6  18   2  10  12   6  <-- product
	
Step 3: Sum the products that are less than 10 

        6   +   2     +     6  = 14

Step 4: Subtract 9 from each of the remaining products
        and add to the total

        (16-9) + (18-9) + (10-9) + (12-9) + 14 = 34

Step 5: Add to the total,all the digits in the even (E) positions.

        34 +  5+2+0+2+8+7 = 58

Step 6: Subtract from the next higher multiple of 10.

        60 - 58 = 2

        In this example, the check digit is 2.
  

AIIM Check Digit Calculation

AIM recommends the following checkdigit calculation

  1. The sum of all character values is taken, including the Start and the Stop characters.
  2. The data character whose value that when added to the total from step one equals a multiple of 16 is the check character.

Check Character Example

Step 1: Add the character values (from the table), 
        including the start/stop characters.

         A   8   3   2   9   0   1   B  <-- Message characters
        16 + 8 + 3 + 2 + 9 + 0 + 1 + 17 <-- Values from table

        Sum of values: 56

Step 2: Subtract the result from the next higher multiple of 16

        (16 * 4) - 56 = 8 check character

        The check digit is 8