Codabar
Published by the QRinsec Editorial Team — practical documentation about QR codes, barcode standards, and QRinsec’s client-side tools. Content is reviewed against product testing and published technical documentation from sources such as GS1, Denso Wave, and ISO standards where applicable.
Have questions or corrections? Contact us.
Codabar is an older self-checking numeric barcode that uses four start/stop letters (A, B, C, D) and was designed to print easily on early equipment.
Important Notice
Codabar has no built-in check digit — substitution errors are undetected. Do not use in new critical applications.
Important Notice
Blood banking has migrated to ISBT 128 (Code 128-based). Do not implement Codabar for new blood bank systems.
Key Facts
- Characters
- 16 (0–9, - $ : / . +)
- Start/Stop
- A, B, C, D (any pair)
- Check Digit
- None (optional Mod 16 in some apps)
- Standard
- No current ISO standard
- Common Use
- Legacy libraries / blood banks
What is a Codabar barcode?
Codabar (also known as NW-7, USD-4, Code 2 of 7, or Rationalized Codabar) is a linear barcode symbology developed by Pitney Bowes in 1972. It encodes 16 characters: digits 0–9 and six special characters (- $ : / . +). Start and stop characters are drawn from four letters (A, B, C, D) that do not appear in the data — giving each symbol a unique delimiter pair. Codabar is notable for its use in US blood bank systems (ISBT 128 predecessor), FedEx airbills (now largely replaced), library systems, and photo lab index cards.
Symbol structure explained
Each Codabar character is represented by 4 bars and 3 spaces (7 elements total), with exactly 2 of the 7 elements being wide — hence 'Code 2 of 7'. Start and stop characters (A, B, C, D) each have a unique pattern that cannot be confused with data characters. There is no inter-character gap — a narrow space separates all elements including those between characters.
Check digit
Codabar has no mandatory check digit in the base specification. However, some applications (particularly blood banking) implement a Modulo 16 check digit. The ISBT 128 standard (now the global blood bank standard) has replaced most Codabar blood bank applications with Code 128 + GS1 Application Identifiers.
Codabar vs. Code 39 vs. Code 128
Codabar encodes fewer characters than Code 39 (16 vs. 43) and is not self-checking per character, but it was simpler to implement in 1970s electronics. Code 128 has entirely superseded Codabar for new designs — ISBT 128 (Code 128-based) replaced Codabar in blood banking, and Code 128 now dominates logistics. Codabar survives primarily in legacy library and medical systems.
When to use Codabar
Codabar should only be used when:
- Existing legacy systems (library cataloguing, older lab equipment) mandate it.
- Migrating from a Codabar system and new labels must be backward-compatible during transition.
For all new designs, use Code 128 or a GS1-compliant symbology. Do not adopt Codabar for new applications.
Printing requirements
Minimum X-dimension: 0.191 mm. Wide-to-narrow ratio: 2:1 to 3:1. Quiet zones: 10× X-dimension each side. Include the start/stop character letters (A, B, C, or D) in the human-readable text below the barcode. No minimum height requirement, but 6.35 mm (0.25 in) is conventional.
Common scanning failures
Codabar's lack of a check digit means substitution errors (one digit read as another) are not detected by the scanner. This makes data integrity fully dependent on print quality. Correct wide-to-narrow ratio is critical — always verify with a barcode verifier before use in any clinical or mission-critical application.
Comparison
| Feature | Codabar | Code 39 | Code 128 |
|---|---|---|---|
| Character Set | 16 chars | 43 chars | 128 ASCII |
| Check Digit | None | Optional | Mandatory |
| ISO Standard | None | ISO/IEC 16388 | ISO/IEC 15417 |
| Status | Legacy only | Active (DoD/auto) | Current standard |
Frequently Asked Questions
Is Codabar still used today?
Yes, but only in legacy systems. Library barcode systems and some older lab equipment still use Codabar. Blood banking has largely migrated to ISBT 128 (Code 128). No major standard recommends Codabar for new implementations.
What are the Codabar start and stop characters?
Codabar uses any of four letters (A, B, C, D) as start and stop characters. The start and stop characters can be different (e.g., start A, stop B). They appear in the human-readable text but do not represent data.
Does Codabar have a check digit?
No mandatory check digit exists in the base Codabar specification. Some implementations add a Modulo 16 check digit, but this is application-specific and not universally supported.
What replaced Codabar in blood banking?
ISBT 128, based on Code 128 with GS1-compliant Application Identifiers, replaced Codabar as the global standard for blood bank labelling, providing structured data and built-in error detection.
Need to create a Codabar barcode?
Generate high-quality, scannable Codabar barcodes for free with our advanced barcode generator. Download in vector SVG or PNG format.
Create Codabar Barcode Now