Skip to content
cliplimeClipLime

Make a Code 39 barcode

Capital letters, digits and a few symbols, with an optional check character. Nothing is uploaded.

What you type stays in your browser

What should the barcode say?

Capital letters A to Z, digits, space and - . $ / + %. Lowercase letters are changed to capitals.

Optional mod 43 check, used by some industries. Leave it off unless your system asks for it.

Your barcode

Type a number or some text and your barcode appears here, ready to download.

Style

Pixels for the thinnest bar. It sets how big the picture is.

3 px
100 px

In bar widths, on each side. Code 39 needs at least 10. The border is where a scanner finds the start of the code.

11 bars

The number or text a person can read.

20 px

Contrast 21:1Good

Black on white is the safest. Many shop scanners use red light and cannot see red or orange bars.

For PNG and SVG. The bars are then read against whatever is behind them.

Need a different kind of barcode? The barcode generator makes Code 128, Code 39, EAN-13, UPC-A, EAN-8 and ITF-14.

At a glance

What it holds
Capital letters A to Z, digits 0 to 9, space and - . $ / + %. 43 characters, up to 50 in one barcode.
Lowercase
Changed to capitals for you. Code 39 has no lowercase letters.
Start and stop
The star * at each end is added for you and cannot be part of your text.
Check character
Optional mod 43 check, off by default. Switch it on only if your system asks for it.
Width
Each character is wider than in Code 128, so the same text makes a barcode roughly 30% wider here.
Downloads
PNG and SVG, with your colours, bar width, height and blank border.
Privacy
Made in your browser. What you type is not uploaded or saved.

How to do it

  1. 1

    Type your text

    Part numbers, badge numbers or inventory codes. Anything outside the 43 characters gets an error that names it.

  2. 2

    Decide on the check character

    Leave it off unless the system reading your barcodes expects a mod 43 character at the end.

  3. 3

    Style it

    Pick the bar width, height and colours, and leave the blank border at 10 or more.

  4. 4

    Download and test

    Save a PNG or an SVG, then scan a printed copy with the same scanner that will be used for real.

What Code 39 is for

Code 39, also called Code 3 of 9, was developed in the 1970s and became common in defence logistics, the car industry and some healthcare labelling. It is still the format on many ID badges, parts bins and older inventory systems, because it needs no check digit and can be read by almost any scanner.

The name comes from how each character is built: nine elements, five bars and four spaces, of which three are wide. Each character stands alone with a small gap after it, which makes Code 39 tolerant of printers that are not very precise.

The 43 characters, and what to do with lowercase

The 43 characters are the digits 0 to 9, the capital letters A to Z, and the symbols hyphen, full stop, space, dollar, slash, plus and percent. The star * is a 44th character that is used only to start and end the barcode, so it never appears in your text.

Lowercase letters are converted to capitals here, and a note says so. Accented letters and other symbols give an error. If you need lowercase letters or more symbols, use Code 128. There is also a Full ASCII version of Code 39 that uses pairs of characters to make lowercase, but many scanners do not have it switched on, so this tool does not make it.

The optional check character

Code 39 does not need a check digit, and plain Code 39 barcodes do not have one. Some industries add a mod 43 check character at the end. To work it out, give each character its value (0 to 9 for digits, 10 to 35 for A to Z, then 36 to 42 for hyphen, full stop, space, dollar, slash, plus and percent), add the values up and divide by 43. The remainder picks the check character.

Switch the check character on and the tool shows the sum step by step. Be careful: most scanners are not set up to check it. They pass it to your software as an ordinary last character, so only use it when the system that reads your barcodes is built to expect and remove it.

Questions people ask

Can Code 39 hold lowercase letters?

Not in the standard version. This tool turns lowercase into capitals. If you need lowercase, use Code 128.

Why does my scanner show a star at each end?

Some scanners are set to include the start and stop character in what they send. The star is not part of your text, and it can be switched off in the scanner's settings.

Should I turn on the check character?

Only if the system reading your barcodes expects one. Plain Code 39 has none, and a scanner that is not set to check it will send it on as an extra character.

Is Code 39 or Code 128 better?

Code 128 is more compact and holds more characters, so it is the better choice for new labels. Code 39 is the right choice when a system, a customer or a standard asks for it.

How many characters can I use?

This tool allows up to 50. The format has no fixed limit, but each character adds length and long barcodes get hard to scan, so keep it as short as you can.

Guides that help

All QR codes guides →