Code-39 Barcode Generator
Automotive, defense, ID badges
Code-39
What is Code-39?Linear Codes › Code-39
What is a Code-39 barcode?
Code 39, also called Code 3 of 9, is one of the oldest barcodes that can hold letters and digits. It is still common on ID badges, automotive parts, defense labels (LOGMARS) and in many older inventory systems. Almost every barcode scanner can read it.
Each character is made of nine bars and spaces, three of which are wide, which is where the name comes from. Start and stop asterisks are added automatically. Code 39 is self-checking, so a check character is optional; if you turn it on, a modulo 43 character is added. It is wider than Code 128 for the same data.
What data can Code-39 hold?
Uppercase A-Z, digits 0-9, space and the symbols - . $ / + %. Lowercase is not allowed, so we offer to convert it to uppercase or switch to Code 39 Full ASCII; the modulo 43 check character is optional.
Recommended size
Keep a quiet zone of at least 10 times the narrowest bar on each side. Code 39 gets long quickly, so keep the data short; an X-dimension of about 0.25 mm to 0.5 mm suits most labels.
More Linear Codes barcodes
How to Create a Barcode in 3 Steps
Choose a barcode type
Select a category on the left (e.g. Linear Codes), then the exact type like Code-128.
Enter data & customise
Type your data — we check it live and add check digits. Adjust size, font and colors.
Download or print
Get PNG, JPG, SVG, PDF or EPS, or print a full sheet of labels in one click.
Why Use QRCodeChamp Barcode Generator
125+ barcode types
Every linear, 2D, GS1, postal, healthcare and payment code.
Live validation
Friendly errors with one-click fixes and automatic check digits.
Print-ready PDF
Exact mm sizes, label sheets (Avery, A4, 4×6 thermal).
Bulk barcodes
Paste a list or generate number sequences.
Choose the Type of Barcode You Need
Not sure which barcode to use? Start with what you need it for — we’ll pick the right type.
Frequently Asked Questions
Standard Code 39 only has uppercase letters. Convert your text to uppercase, or use Code 39 Full ASCII, which encodes lowercase by combining two characters.
No. The * start and stop characters are added automatically, so type only your data.
Only if your scanner or software expects it. Code 39 is self-checking without it, and a scanner that is not set up for it will send the extra character as part of the data.
Code 39 uses more space per character than Code 128. Shorten the data, or switch to Code 128 if your system allows it.
