Free Tool by VNDLY
Code 39 Barcode Generator
Create scannable Code 39 barcodes for warehouse, manufacturing and asset labels. Enter letters or numbers, preview, and download as PNG or SVG. Free, no signup.
Industrial / inventory. Letters, digits, some symbols.
100% free · no signup · generated in your browser (your data never leaves your device).
Generating barcodes for products you sell?
A barcode is only useful if you can track what it's attached to. VNDLY auto-assigns barcodes to every product, then tracks stock, sales, purchasing and reorders across all your channels, scan with your phone, no extra hardware.
Before printing a batch
- Check the value. Standard Code 39 accepts A to Z, 0 to 9, spaces and
- . $ / + %. Use uppercase letters. The encoder adds the start and stop marks; do not type asterisks around your value. - Check the printed size. Keep the bars in proportion and the value readable. A longer code needs more label width. Choose a size supported by your printer and scanner; screen resolution alone does not establish a suitable physical label size.
- Use clear contrast. Print dark bars on a plain white background. Avoid faded print, reflections, creases and text or graphics that cross the bars.
- Leave clear space. Keep blank margins on both sides of the bars. Do not crop them away or let the label edge, nearby text or another barcode intrude. Code 39 needs at least ten narrow-bar widths of quiet space on each side. Check your scanner and label specification for any larger requirement.
- Test one finished label. Print it on the intended stock, attach it to the item or bin, and scan it with the scanner you will use at work. Confirm that the receiving field contains the exact value, including spaces and punctuation, before printing the rest.
Example asset label
ASSET-0042
A fictional handheld scanner. Keep its asset identifier stable when it moves between locations.
Example bin label
BIN-A03-B02
A fictional bin in aisle A03. Store the location separately from the product SKU.
Character and start/stop guidance follows the BWIPP Code 39 encoder documentation; the quiet-zone rule follows Accusoft's Code 39 guidance. For a different label use case, see the barcode format guide and generator.
Code 39 for warehouse and asset labels
Code 39 has been a staple of industrial and internal inventory for decades. Because it encodes letters as well as numbers, it suits alphanumeric codes like asset tags, shelf and bin locations, and work-order references, the kind of labels that live inside a warehouse rather than on a retail shelf.
It is not the most compact symbology, so if you need to pack a lot of characters into a small label, Code 128 is usually a better fit. But when a partner or existing system expects Code 39, or you just want simple, reliable alphanumeric labels, it does the job and scans almost everywhere.
Printing the label is the easy part. Tracking what is actually on the shelf against it is where VNDLY helps: link each item to its barcode, then scan with your phone to receive purchase orders, run cycle counts and move stock between locations.
Which barcode do I need?
Start from what the label has to do, not from the barcode name. Internal labels can use any format you like; retail products must carry the format the store's scanner expects.
| You need to label | Use | Why |
|---|---|---|
| Internal SKU labels, bin and shelf labels | Code 128 | Encodes letters, digits and dashes, so any SKU works. Dense and read by every scanner and phone app. |
| A product sold in US or Canadian stores | UPC-A | The 12-digit retail standard. The number must come from a GS1 company prefix; the generator only draws it. |
| A product sold in Europe or worldwide | EAN-13 | The 13-digit retail standard used everywhere outside North America. Also GS1-issued. |
| Shipping cartons and pallets | ITF-14 | Wraps the EAN or UPC of the product inside with a packaging level digit. Prints well on corrugated cardboard. |
| Tiny parts, electronics, medical items | Data Matrix | A 2D code that fits a serial or lot number on a few millimetres of label. |
| Links, batch info, anything a phone should open | QR code | Holds far more data than a 1D code and needs no scanner hardware at all. |
| Legacy industrial, automotive or government systems | Code 39 | Older and less dense than Code 128, but still required by some existing systems and specifications. |
Definitions: barcode, UPC, GTIN. Background reading: barcode types and how they work.
Frequently asked questions
- What is a Code 39 barcode?
- Code 39 (also called Code 3 of 9) is a 1D barcode common in manufacturing, automotive, defence and internal inventory. It encodes uppercase letters, digits and a few symbols, which makes it handy for alphanumeric asset and location codes.
- Is this Code 39 generator free?
- Yes, completely free with no signup and no watermark. Codes are generated in your browser, so what you type never leaves your device.
- What can Code 39 encode?
- Uppercase A to Z, digits 0 to 9, and the symbols minus, period, space, dollar, slash, plus and percent. It is not the most compact format, but it is widely supported and easy to print and scan.
- Code 39 or Code 128, which should I use?
- Use Code 128 when you need to fit more data in less space or include lowercase characters; it is the general workhorse. Choose Code 39 when a system or partner specifically expects it, or for simple alphanumeric asset and shelf labels.
- How do I track stock against these barcodes?
- The barcode is only step one. To track stock, locations and movements against it, you need inventory software. VNDLY links each product or asset to its barcode and lets you scan it with your phone to receive, count and move stock.