Barcode Generator
Create barcodes in CODE128, EAN-13, UPC-A, CODE39, ITF-14, and more. Customize bar size, colors, and label, then download as a crisp PNG or scalable SVG — all in your browser.
A barcode image is not the same as a registered product code
This is the confusion that sends people to a barcode generator and then trips them up later, so it is worth stating plainly before anything else. This tool takes a number you type and draws a technically correct, scannable EAN-13 or UPC-A barcode from it. What it cannot do is make that number meananything to a retailer’s system. A real retail barcode is not just a valid pattern of bars — it is a GTIN (Global Trade Item Number) that has been issued to your business by GS1, the non-profit that licenses company prefixes worldwide. The bars are the easy part; the ownership of the number is the part that costs money and takes registration.
So if you type an arbitrary twelve-digit number and generate a beautiful EAN-13, a checkout scanner will happily read the digits back — and then find nothing attached to them in the retailer’s catalogue, because that number was never assigned to you or your product. Worse, an invented number could collide with a real product somewhere in the world. That is fine, and genuinely useful, for barcodes you control end to end: internal inventory, asset tags, library and equipment tracking, event passes, warehouse labels, or a private system where you decide what each code means. It is not a shortcut around GS1 for anything you intend to sell through a retailer that requires registered barcodes.
The practical rule: use this tool freely for any closed system you own. Before you put a product on a shelf that scans at a till you do not control, get a real GTIN from GS1 first, then come back and generate the barcode image from that registered number.
Picking the right symbology, without the jargon
The format dropdown offers nine symbologies, and the choice matters more than any other setting because each one has different rules about what it can encode. If you are not sure, CODE128is the right default: it accepts any letters, digits, and common symbols, packs them densely, and is the general-purpose workhorse for internal labels, shipping references, and anything alphanumeric. Everything below is a special case of “use this instead when…”.
Reach for EAN-13 or UPC-A only for retail products — and only with a registered number, per the section above. EAN-8 exists for packages too small to fit a full EAN-13. ITF-14 is for the outer shipping cartons that hold multiple retail units, which is why it lives in warehouses rather than on shelves. CODE39 is the old reliable of asset tags and ID badges — uppercase and digits only, widely readable by older industrial scanners. MSI turns up in warehouse shelf labels, Codabar in libraries and blood banks, and Pharmacodein pharmaceutical packaging, where it must be a number between 3 and 131070. Choosing a format your target scanner does not support is a common, invisible reason a barcode “does not work” even though it renders perfectly.
Why the barcode sometimes vanishes as you type
If the preview suddenly disappears and a red message takes its place, the tool is not broken — it is refusing to draw an invalid code on purpose, because a barcode that violates its symbology’s rules would either fail to scan or encode the wrong thing. The message names the exact rule you broke. Type three digits into EAN-13 and you get Invalid value for EAN-13. Exactly 12 or 13 digits. Switch to CODE39 and type lowercase letters and it objects the same way, because CODE39 has no lowercase. Rather than silently letting you download something that will fail at the scanner, the tool blanks the preview and disables the download buttons until the value is valid again.
The check digit is the other thing that surprises people. Enter the first twelve digits of an EAN-13 and the rendered barcode shows thirteen — the tool computed the final checksum digit for you (so 590123412345 becomes 5901234123457). That digit is not decoration: scanners recompute it from the other twelve and reject the read if it does not match, which is how they catch a smudged or misread bar. If you already have the full thirteen-digit number, paste all of it and the tool verifies your check digit instead of appending a new one.
Making one that actually scans off paper
A barcode can be perfectly valid on screen and still fail once it is printed, and the reasons are physical rather than digital. The first is the quiet zone — the blank margin on either side of the bars that a scanner needs to find where the code begins and ends. This tool builds in a 12px margin for exactly that reason; if you crop the exported image tight to the bars, you can destroy the quiet zone and break scanning even though the code itself is fine. Leave the margins alone.
The second is bar width and resolution. The bar-width slider goes from 1 to 5; at the thinnest setting a low-resolution printer may blur adjacent bars into each other, so the scanner can no longer tell them apart. If a printed code refuses to scan, widening the bars a step and reprinting fixes it more often than anything else. This is also why format matters for export: SVG is a vector and stays razor-sharp at any size, so it is the right choice for anything going to print or into a design tool, while the PNG here is rendered at 3x resolution to keep raster edges crisp. The third is contrast: keep the bars dark and the background light. A scanner reads the difference between them, so a low-contrast colour pairing — the colour pickers let you make one — can look stylish and scan terribly. If in doubt, black on white always works.
What this tool does not do
It generates one-dimensional (linear) barcodes only. If you need a QR code — the square two-dimensional kind that holds a URL, Wi-Fi credentials, or a longer payload — that is a different symbology entirely, and the QR Code Generator is the tool for it. It also does not batch-generate: it draws one barcode at a time, so it is not built for encoding a spreadsheet of a thousand SKUs in one pass. And it does not register, reserve, or check the uniqueness of your numbers — as covered above, that is GS1’s job, not a generator’s.
What it does do, it does entirely in your browser: the barcode is drawn locally with JsBarcode and the value you type is never uploaded to ToolMintX. That matters when your codes are internal identifiers, unreleased product numbers, or anything you would rather not send to a server — nothing about your input leaves the page. When you are done, export the SVG for print or the 3x PNG for a document, and the file is generated on your device too.
How to Use
Choose a barcode format (CODE128 works for most general uses).
Type the value — the hint shows the exact digits or characters allowed.
Adjust bar width, height, colors, and whether to print the text label.
Download the barcode as a high-resolution PNG or a scalable SVG.
Features
Common Questions
About Barcode Generator
Create scannable barcodes in 9 symbologies including CODE128, EAN-13, EAN-8, UPC-A, CODE39, ITF-14, MSI, Pharmacode, and Codabar. Customize bar width, height, and colors, toggle the text label, and download a high-resolution PNG (rendered at 3x) or a scalable SVG. Live validation flags invalid values for each format with the exact rule, and check digits for EAN/UPC are computed automatically. Everything is generated locally in your browser, so your values are never uploaded. Note that a generated EAN-13 or UPC-A is a scannable image, not a registered retail number — selling through retailers requires a GTIN issued by GS1.
Also known as: make barcode, barcode maker, create barcode, ean upc generator, code128 barcode, barcode for inventory, barcode to png svg.
Processing Note
Barcode Generator runs in your browser, so the input you enter is processed locally on this page and is not uploaded to a ToolMintX account.
Tool Limits
Creator tools speed up production, but they do not replace editorial judgment, brand review, audience knowledge, or platform-specific policy checks.
Explore More
YouTube Thumbnail Downloader
Download YouTube video thumbnails in high quality.
Client-sideYouTube Title Generator
Generate catchy YouTube video titles using an in-browser language model.
Client-sideInstagram Hashtag Generator
Get a 30-hashtag Instagram set from 16 hand-built category lists, matched to your topic, mixing broad, medium, and niche tags.
Client-sideCaption Generator
Generate social captions instantly from a curated template engine, tuned by tone, platform, and CTA — with a small on-device AI model for bonus variations.
Client-side