Skip to main content
PRODUCTS, LABELS & BIG IDEAS

Free Codabar Barcode Generator

Codabar accepts 0–9 and - $ : / . + between a/b/c/d start and stop characters. Check digit: none in this implementation. Keep a quiet zone of 10 modules clear on each side of the printed symbol.

  • No signup
  • Free commercial use
  • No watermarks

Choose a symbology

Retail & logistics

General purpose

2D symbols

Accepts: 0–9 and - $ : / . + between A/B/C/D start and stop characters · Check digit: None in this implementation · Quiet zone: 10 modules each side

Design

Bar colour
Keep a strong contrast, then test a scan.
Background
Keep a strong contrast, then test a scan.

Printed below the symbol. Long text wraps onto up to four lines.

Bars, the human-readable digits and the quiet zone are never covered — the caption and call-to-action sit below the symbol. Scanners need that clear margin to find the code.

Upload your logo

A logo can sit above or below a barcode only — anything placed over the bars stops it scanning.

Optional

PNG, JPG or WebP · Up to 2 MB · Stays on your device

Product numbers. Ready for the real world.

When to use Codabar

Codabar survives where the systems around it never changed: library circulation desks, blood bank bags, photo-processing envelopes and some courier tickets. Its start and stop characters (A, B, C or D) can carry meaning in those systems, so match whatever your existing labels already use rather than picking one at random.

Read back by our scanner — Decoded back with every A/B/C/D start and stop pair. Some scanners must be configured to accept Codabar at all.

Try a Codabar example before making your labels

The generator’s example value is A12345678B. It is demonstration data for testing the tool, not a number assigned to your business. Replace it with the exact reference your stock system, supplier or retailer expects. This format accepts 0–9 and - $ : / . + between a/b/c/d start and stop characters; punctuation, missing digits and accidental spaces can matter.

First generate one label and read the human-readable value under it. Then scan the exported image using a reader that supports Codabar. Compare the decoded value with your original record, including any leading zeroes. If the format adds or verifies a check character, use the generator’s validation result rather than adding an arbitrary digit yourself.

From a valid image to a usable printed barcode

A barcode only identifies the value encoded in its bars. Your till or inventory software must already know what that value means. A scan will not automatically create a product record, set a price or register a new retail identifier. Test with the scanner and software that will be used in your actual workflow.

Export SVG for a designer or PDF for a fixed print layout. Keep the blank space around the symbol and avoid squeezing the width to fit a label. Print at actual size, inspect the narrow bars for smudges or missing ink, and test on the final material. A good scan from a monitor does not prove that a glossy, curved or very small printed label will work.

For a batch, keep identifiers as text in your spreadsheet so leading zeroes are not lost. The bulk generator creates files from rows, and the label maker arranges them for sheets or rolls. Try a small batch first and compare several labels against the source file before producing the full run.

Frequently asked questions

What are the A, B, C and D characters for?

They mark the start and the stop of the symbol, and in some deployments the pair chosen also signals what kind of record the number is. The data between them may use digits and - $ : / . +.

Does Codabar have a check digit?

Not in this implementation. Some sectors apply their own modulo 16 scheme on top; if yours does, include the check character in the data you type.

Will any scanner read it?

Many handheld scanners ship with Codabar disabled and must be configured to accept it. Test on the actual device before rolling out labels.

Has this output actually been read back?

Our exports were decoded back with every A/B/C/D start and stop pair during testing.