Loading Barcode Mint…

Barcode Mint

Free Online Barcode & QR Code Generator

Linear Barcode

Code 39 Barcode Generator

Code 39 is the barcode that started self-checking alphanumeric encoding, and it's still trusted today for its simplicity and near-universal scanner support.

Open the generator ↓
Preview
100%

01

Symbology

Code 128
All 106 →
02

Data

03

Properties

Properties

2
100
18
10
04

Bulk & batch generate

🔒 Pro

Turn a CSV — or a numbered sequence — into hundreds of barcodes at once, exported as a ZIP of images or a print-ready PDF sheet. Launching with Pro.

Launching soon

Pricing — join the early list

The browser generator stays free forever. Paid plans are for teams who need bulk output and developers who need the REST API at scale — commercial license included. Tell us what you'd use; early-list members get first access and launch pricing.

For the generator

Free $0/forever

What you're using right now

  • 100+ barcode & QR symbologies
  • Live preview & customization
  • PNG & SVG export, no login
  • Copy to clipboard
Available now ✓

For developers — REST API

Priced by requests. Commercial license and self-serve keys included; usage dashboard at launch.

Small $19/mo$190/yr 500 req / mo
Large $499/mo$4,990/yr 50K req / mo
Enterprise Custom Contact us

Get early access + launch pricing

Which features would you actually use? (optional — it helps us decide what to build first)

No spam — one email when it launches. The free tool isn't going anywhere.

What Is a Code 39 Barcode?

Code 39 is one of the oldest and most widely supported linear barcode symbologies, first introduced in 1974. It encodes uppercase letters A–Z, digits 0–9, and a limited set of symbols: hyphen, period, dollar sign, forward slash, plus sign, percent sign, and space. Every valid Code 39 barcode is bounded by an asterisk (*) start/stop character, which is why you'll sometimes see it referred to informally as a symbology with visible "bookend" markers when the human-readable text is shown beneath the bars.

Code 39 remains popular decades after newer, denser symbologies emerged because it's simple, robust, and supported by essentially every barcode scanner ever made — including older laser scanners with no configuration required. Its lower density compared to Code 128 means longer barcodes for the same data, but for short identifiers that tradeoff rarely matters.

How Code 39 Encodes Data

Each Code 39 character is represented by 9 elements — 5 bars and 4 spaces — of which exactly 3 are wide and 6 are narrow, giving the symbology its "3 of 9" name (Code 39 is a contraction of that). This fixed wide/narrow ratio design makes it self-checking: a scanner can validate the internal structure of each character independently, which is part of why Code 39 has a reputation for reliability even on lower-quality prints, without requiring a mandatory check digit.

A check digit (modulo 43) is available as an option but isn't required by the base standard, unlike Code 128 where it's mandatory. Because the character set tops out at 43 symbols (26 letters, 10 digits, 7 symbols, plus the start/stop asterisk), Code 39 can't represent lowercase letters or extended ASCII directly — for that, see Code 39 Full ASCII, which layers a two-character encoding scheme on top of standard Code 39 to reach the full character range.

Where Code 39 Is Used

Code 39's long track record and broad hardware compatibility keep it in active use across several industries:

Code 39 Technical Specifications

Code 39 is standardized as ISO/IEC 16388. Its character set covers 43 symbols: A–Z, 0–9, and seven special characters (space - . $ / + %), plus the asterisk used exclusively as the start/stop delimiter. Each character is built from 9 elements — 5 bars and 4 spaces — of which exactly 3 are wide, giving each character a fixed 3-of-9 ratio regardless of which character it represents. There's no fixed maximum length; Code 39 barcodes grow linearly with data length and can become quite long relative to denser symbologies. A modulo-43 check digit is available but optional in the base standard, unlike Code 128's mandatory checksum.

How to Create a Code 39 Barcode in Barcode Mint

Select Code 39 from Barcode Mint's symbology list. Enter your data using uppercase letters, digits, and the supported symbols (- . $ / + % and space) — lowercase letters aren't valid in standard Code 39, so if your source data includes them, either convert to uppercase or switch to Code 39 Full ASCII. The live preview updates as you type, showing the asterisk start/stop characters automatically. Then:

For numbered part or asset series, use the batch/sequence generator. For labeling an entire inventory list, the bulk CSV → ZIP/PDF tool converts a spreadsheet into a complete set of barcode files or a printable PDF sheet. To integrate Code 39 generation into your own systems, call the REST API with /barcode?type=code39&data=YOURDATA.

Print and Scan Best Practices

Code 39's forgiving design still benefits from careful printing:

Code 39 vs. Related Codes

Against Code 39 Full ASCII, standard Code 39 is limited to uppercase and a handful of symbols, while Full ASCII layers a two-character shift scheme on top to reach lowercase and the full ASCII range — at the cost of roughly doubling barcode length for those extra characters. Against Code 93, Code 39's successor, Code 93 covers the same core character range in a noticeably shorter barcode with mandatory dual check digits, but isn't quite as universally supported by older scanners. Against Code 128, Code 39 is far less dense and lacks lowercase support, but its simplicity and decades-long hardware compatibility keep it entrenched in automotive and defense standards that predate Code 128's adoption.

Common uses

Frequently asked questions

What characters can a code 39 barcode generator encode?
A code 39 barcode generator encodes uppercase letters A–Z, digits 0–9, and the symbols hyphen, period, dollar sign, slash, plus sign, percent sign, and space — 43 characters total plus the asterisk start/stop marker.
Does Code 39 require a check digit?

No, the base Code 39 standard doesn't require one because the symbology is self-checking by design. An optional modulo-43 check digit is available for extra error detection in regulated or high-reliability applications.

Can Code 39 encode lowercase letters?
No, standard Code 39 only supports uppercase. Use Code 39 Full ASCII if you need lowercase letters or extended characters.
Why is Code 39 still used if Code 128 is denser?

Code 39 remains popular for its simplicity, self-checking reliability, and near-universal hardware support, especially in industries like automotive and defense with long-standing standards built around it.

Can I generate Code 39 barcodes in bulk?

Yes, Barcode Mint's bulk CSV → ZIP/PDF tool generates a full batch of Code 39 barcodes from a spreadsheet in one step.

Related barcode types

Browse all 106 barcode & QR types →