Code 39 Barcode Generator

Make Code 39 (Code 3 of 9) barcodes for asset tags, ID badges, VINs and older inventory systems. Optional mod 43 check character included.

A–Z, 0–9, space and - . $ / + %

Change the bar width, height and text here. The barcode on the left is drawn at the size it will print, so at 100% zoom it should match a ruler held to the screen.

PNG and JPG files store their resolution, so Word, Canva and label software place them at this size.

Colours

Dark bars on a light background scan best. Most scanners use red light, so red, orange and yellow bars read as blank.

What is Code 39?

Code 39, also called Code 3 of 9 or USD-3, dates from 1974 and was the first barcode that could hold letters as well as numbers. It is still common in places that adopted barcodes early: US defence logistics (LOGMARS), the car industry, hospitals, libraries, ID badges and asset tags. Its name comes from its pattern: each character has 9 elements, 3 of them wide.

CharactersA–Z (capitals only), 0–9, space and - . $ / + %
Start/stopAn asterisk (*) at each end, added automatically
Check characterOptional (modulo 43)
DensityLow: about 50% wider than Code 128 for the same data
Used forAsset tags, badges, VIN labels, AIAG automotive, LOGMARS

How to make a Code 39 barcode

  1. Type your value. Lower-case letters are turned into capitals, because Code 39 has none.
  2. Tick Add a Code 39 check character only if your scanner or system expects one. Most don't.
  3. Pick a bar width: Code 39 gets wide quickly, so keep values short.
  4. Download, or make a numbered run of asset tags with the bulk generator.

About the asterisks

Every Code 39 barcode starts and ends with an asterisk, the start/stop character. If you use a Code 39 font in Word or Excel, you have to type *ABC123* yourself. Here they're added automatically, and if you paste a value that already has them, we remove the extra ones.

When to choose Code 39

Choose it when a customer, government contract or existing scanner setup asks for it. For anything new, Code 128 is narrower, holds lower-case letters and has a built-in check. Read more in Code 128 vs Code 39.

Pallet racking in a distribution warehouse
Pallet racking in a distribution warehouse.

Questions

  • Yes. Code 39, Code 3 of 9, 3 of 9 and USD-3 are the same symbology.

  • Standard Code 39 only has 43 characters. "Full ASCII" Code 39 combines pairs of characters to make lower case, but most scanners need to be set up for it, so we stick to standard Code 39.

  • Only if your system asks for it. Code 39 is self-checking, so many systems run without one.

  • Code 39 uses more space per character than Code 128. Shorten the value, narrow the bar width, or switch to Code 128.