Codabar barcode
A legacy numeric barcode still standard in blood banks, libraries, and older logistics systems.
Also known as: NW-7, Code 2 of 7, USD-4, ABC Codabar, Monarch
What is Codabar?
Codabar is a numeric barcode from the 1970s with four start and stop characters (A to D) that can carry meaning, self-checking patterns, and no built-in check digit. It remains the required format in blood bank labeling, library circulation, and some photo-finishing and legacy shipping systems, so operations that touch those worlds still print and read it. New applications should use Code 128.
Encodes: Digits 0 to 9 and the symbols - $ : / . +, framed by start and stop characters A, B, C, or D.
How Codabar is structured
Codabar is a simple discrete symbology: each character stands alone with an inter-character gap, and the start and stop characters double as a crude label-type field.
| Part | Length | What it means |
|---|---|---|
| Start character | 1 character | A, B, C, or D. Receiving systems often require a specific one. |
| Data | Variable | Digits and six symbols. |
| Optional check | 1 character | Application-defined; blood banks and some libraries add one, most others do not. |
| Stop character | 1 character | A, B, C, or D, frequently different from the start character. |
Specifications
- Character set
- 0 to 9 and - $ : / . +
- Start and stop
- A, B, C, or D; the pair can be used to signal the label type
- Check digit
- None in the base standard; some applications add mod 16 or mod 10
- Self-checking
- Yes
- Length
- Variable
- Quiet zones
- 10X on the left and right
- Density
- Low; each character is seven elements
Dimensions are GS1 General Specifications targets. Confirm against the retailer’s current routing guide before a print run.
Where it is used
- Blood bag and blood product labeling (ABC Codabar)
- Library book and patron cards
- Photo lab and film processing envelopes
- Legacy air-bill and shipping systems
Printed to satisfy a downstream system, never chosen fresh
Nobody selects Codabar for a new warehouse. It is printed because a library circulation system, a blood bank standard, or a legacy carrier integration requires it. In those cases the receiving system dictates the start and stop pair and whether a check digit is present, and your label must match exactly.
Mistakes that cost money
Wrong start and stop pair
A system expecting A…B will reject A…A or C…D. The pair is part of the specification, not decoration.
Assuming a check digit
Codabar has none by default. If the downstream system expects one, it must be computed and appended explicitly.
Replacing it with Code 128
Tempting, and wrong where a library or blood system requires Codabar. Keep the legacy format for that flow and modernize the rest.
How Endless handles Codabar
Endless ingests Codabar scans from legacy systems as ordinary identifiers, so an operation that still labels part of its flow this way can run it alongside GS1 and Code 128 labels on the same records.
Frequently asked questions
Is Codabar still used?
Yes, in a few entrenched places: blood banks, libraries, photo processing, and some legacy shipping systems. It is rare in new deployments.
Does Codabar have a check digit?
Not in the base standard. It is self-checking against misreads, but any protection against wrong values comes from an application-specific check digit that the receiving system defines.
Related symbologies
Definitions in the glossary
- Warehouse Management System (WMS)→
The system that runs day-to-day warehouse operations — receiving, slotting, picking, shipping.
Browse the full barcode symbology guide.

See it on your channels.
Spend your time on the business, not the busywork. Book a demo and watch Endless run your operations across every channel you sell on.
Get a Demo