Free Code 39 Barcode Generator
Encode uppercase letters, digits, and a handful of symbols as Code 39 — the original alphanumeric barcode and the format every scanner ever made reads.
- 86 QR Types
- Free Business Card Designer
- Printable WiFi Cards
- Batch CSV (500 codes)
- 50 Templates
- 26 Languages
This barcode format renders monochrome with foreground and background colours only. Templates, dot/eye shapes, gradients, frames, and centre logos apply to QR codes only and are hidden here.
Show 30 more templates
Save a style with the button above to keep your favourites here.
Or pick a built-in icon:
Show 108 more icons
Renders behind the QR at adjustable opacity. Auto-forces EC=H so the QR still scans through the photo.
Batch Generation
Upload a CSV to generate up to 500 QR codes in a single batch. Each row becomes its own QR — pick a template or override 21 properties on a per-row basis: colors, frames, dot/eye/eyeball styles, gradients, transparency, size, error correction, format, built-in logo, and more.
21 columns: type, data, filename, frametext, frame, template, fgcolor, bgcolor, size, ec, dotstyle, eyestyle, format, logo, gradient, g2, gtype, gangle, transparent, eyeball, eyecolor. Only type and data are required. Use | to separate fields inside data (e.g. ssid|password|WPA).
All 86 QR types supported, including URL, WiFi, vCard, TOTP, Swiss QR-bill, PIX, PromptPay, ZATCA, PayNow, Bitcoin + Lightning, and more. Download the sample CSV to see every column, all 50 templates, 11 frame styles, and 156 built-in logo icons in action.
1. Download the sample CSV · 2. Edit it in Google Sheets, Excel, Numbers, or any text editor · 3. Upload it here
Save the entire QR — type, all field values, style, frame, logo, business card design — as a single .qr.json file. Load it later to recreate everything in one click.
Enter content to generate your QR code
E-signatures that hold up in court
Abundera Sign goes beyond basic e-signatures. Every document gets cryptographic proof, independent verification, and a tamper-evident evidence package.
- Auto-generated court-ready evidence packages
- Personal Document Seal — detects tampering instantly
- Anchored to 5 independent systems — no single point of failure
What is Code 39?
Code 39 (ISO/IEC 16388, also called Code 3 of 9) is the OG alphanumeric barcode — in production since 1974 and supported by literally every barcode scanner ever made. It encodes 0-9, uppercase A-Z, and the symbols -.$/+%* and space, plus mandatory start/stop asterisks. Trade-off: low density (about 50% wider per character than Code 128), but unbeatable scanner compatibility.
Where Code 39 dominates
- Healthcare: patient ID bands, specimen labels, equipment tags — HL7 widely adopted Code 39.
- US military logistics (LOGMARS): every DOD-tagged item carries Code 39.
- Inventory tagging: small businesses still print Code 39 from cheap thermal printers.
- Vehicle Identification Numbers (VINs): state DMVs and auto registries often use Code 39 for the VIN barcode.
Available in 26 Languages
Fully translated UI, native script rendering, and right-to-left support for Arabic and Urdu.
Frequently Asked Questions
What characters can I use?
Uppercase A-Z, digits 0-9, space, and the symbols - . $ / + % and * (which is the start/stop sentinel — added automatically). Lowercase letters are not supported in standard Code 39.
What's Full ASCII Code 39?
An extension that uses two-character pairs to encode lowercase + symbols. Not yet exposed here; if you need it, encode your data with the bwip-js code39ext bcid via the batch CSV path.
Is there a check digit?
Code 39 supports an optional Mod-43 check digit (used in HIBCC for healthcare). bwip-js doesn't auto-add it; if you need it, append it manually.
Will iPhone Camera scan Code 39?
Yes since iOS 15.
Why uppercase only?
Standard Code 39 has only 43 characters. Lowercase support requires the Full ASCII extension.
How big should I print it?
X-dimension of at least 7.5 mil (0.19 mm). Code 39 needs more space than Code 128 for the same data.
What's the difference vs Code 93?
Code 93 packs more data into the same width and adds two mandatory check characters. We support both — pick Code 93 if you need higher density and reliability on scuffed labels.