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
- The sum of all character values is taken, including the Start and the Stop characters.
- 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