Code 39 Barcode Generator

Generate Code 39 barcodes for IDs, badges and inventory.

Your data is processed locally in your browser and is not uploaded to our servers.
Advertisement
Advertisement

What is Code 39?

Code 39 is a long-established barcode used for ID cards, badges, inventory and government or military systems. It's simple and widely supported by older scanners.

How to create one

Enter your data using the supported characters. Lowercase letters are converted to uppercase; unsupported characters are flagged so you can correct them before generating.

Supported characters

Code 39 supports A–Z, 0–9, space and the symbols - . $ / + %. It doesn't support lowercase or most punctuation, which keeps it robust but limits capacity.

Where to use it

Common on name badges, asset labels, library cards and industrial tracking where compatibility with legacy equipment matters more than density.

Scanning and printing tips

Code 39 is less dense than Code 128, so it needs more width per character. Keep it short, print at a generous size, and maintain contrast.

Limitations

Limited character set and lower density make it unsuitable for long or mixed-case data. Consider Code 128 when you need more.

Frequently asked questions

Why was a character rejected?

Code 39 supports only A–Z, 0–9, space and - . $ / + %. Lowercase is auto-converted to uppercase; other symbols are not allowed.

Code 39 or Code 128?

Use Code 39 for legacy compatibility and simple IDs; use Code 128 for denser, mixed-case data.

Does it need start/stop characters?

The required start and stop markers are added automatically.

Curious how we build and check these codes? Read our methodology.