Advanced Options
2
100
16
10

Enter data above to generate barcode

Barcode Generator

I spent the better part of a week last year re-labeling 600 SKUs after our warehouse switched from an old EAN-8 system to Code 128 — and the “barcode generator” our 3PL recommended kept spitting out images with wrong quiet zones. Genuinely painful. Use the barcode generator above to create single or batch barcodes in whatever format you actually need — Code 128, EAN-13, EAN-8, UPC-A, and a handful of others. Pick your type, paste your data, download the PNG. Takes about four seconds per barcode, or you can switch to batch mode and knock out a whole spreadsheet of SKUs at once.

Barcode Generator

Why the Barcode Format Actually Matters More Than People Think

Most folks who aren’t neck-deep in supply chain stuff assume a barcode is a barcode. You scan it, it beeps, done. But if you’ve ever had a shipment rejected at an Amazon FBA intake because your UPC-A had a bad check digit, or watched a cashier scan the same item six times because the EAN-13 was printed at the wrong DPI, you know the format is half the battle. Code 128 is the one I reach for most often — it handles alphanumeric data, it’s compact, and basically every scanner made after 2005 reads it without drama. There’s a reason it’s the default in most warehouse management systems, from SAP to Fishbowl.

EAN-13 is what you’ll need if you’re selling retail in Europe or really anywhere outside North America. It’s the thirteen-digit system administered by GS1, and getting a legitimate EAN-13 means you’ve registered your company prefix through them — which costs anywhere from $250 to $2,500 per year depending on how many products you’re listing. Some sellers on eBay and Etsy skip the official registration and buy “recycled” EANs from resellers, and honestly, it works fine until it doesn’t. I’ve seen listings pulled from Amazon Germany over prefix ownership disputes that took months to sort out. If you’re doing any kind of serious retail, just pay GS1 directly and save yourself that headache.

UPC-A is essentially the American version of EAN-13 — twelve digits, same GS1 infrastructure. Every grocery store scanner in the US reads UPC-A. If you’re a small brand trying to get into Whole Foods or Target, the buyer is going to ask for your UPC before they ask for your sell sheet. EAN-8 is the short format for physically small products where a full thirteen-digit barcode won’t fit on the packaging, though it’s gotten rarer now that printing resolution has improved so much. We used to use EAN-8 on sample-size cosmetics tubes but switched everything to Code 128 two years ago when our label printer got upgraded.

Batch Mode and When You’ll Actually Need It

Single barcode generation is fine if you’re printing one label for a prototype or testing your thermal printer setup. But realistically, anyone managing inventory at scale — even a small Shopify store with 150 SKUs — needs batch generation. The batch mode on this barcode generator lets you paste a list of values and get all the corresponding barcodes generated at once, which is the part that most free tools either lock behind a paywall or limit to ten barcodes at a time. I’ve used Avery’s online tool, the Barcode1 site, and even a LibreOffice Calc extension for batch jobs, and they all have some annoying limitation — file format restrictions, forced watermarks, or a cap on quantity that you only discover after you’ve formatted your whole CSV.

One thing that trips people up: the check digit. For EAN-13 and UPC-A, the last digit is calculated from the preceding ones using a specific modular arithmetic formula — you multiply alternating digits by 1 and 3, sum them, and the check digit is whatever you’d add to reach the next multiple of ten. So for a UPC-A starting with 01234567890, you’d calculate: (0×1)+(1×3)+(2×1)+(3×3)+(4×1)+(5×3)+(6×1)+(7×3)+(8×1)+(9×3)+(0×1) = 0+3+2+9+4+15+6+21+8+27+0 = 95, and the check digit would be 5 (since 100 – 95 = 5). Get this wrong and scanners reject the barcode silently — no error beep, just nothing happens when you scan. It’s the kind of bug that wastes an hour of troubleshooting because you assume it’s a scanner problem when it’s really a data problem. The barcode generator here handles the check digit automatically for EAN and UPC formats, which is one less thing to mess up.

Printing Barcodes That Actually Scan

Generating the barcode is half the job. Printing it so it reliably scans is the other half, and there’s more that goes wrong here than most people expect. Thermal printers like the Zebra ZD420 or the DYMO LabelWriter are the standard for warehouse labels, but if your print density is set wrong — or if you’re printing on glossy stock that reflects the laser scanner — you’ll get inconsistent reads. I’ve seen entire pallet shipments held at receiving because the barcodes were printed at 203 DPI on labels designed for 300 DPI, and the bars bled together just enough to confuse the reader. Inkjet printing works in a pinch for small batches, but the resolution falloff on cheaper paper is real. If you’re generating barcodes here and printing them yourself, download at the highest resolution the tool offers and scale down in your label template rather than scaling up.

The quiet zone — the blank margin on either side of the barcode — is another thing people crop out accidentally. It needs to be at least ten times the width of the narrowest bar for most symbologies. Crop it too tight in Canva or Photoshop and the scanner has nothing to calibrate against, so it either misreads or ignores the code entirely. If you’re building product labels and space is tight, Code 128 is generally the most compact option for alphanumeric data, which is another reason it’s become the warehouse default over things like Code 39, which was everywhere in the 2000s but takes up noticeably more horizontal space for the same data.

One limitation worth knowing: this tool generates 1D barcodes. If you need a QR code or a Data Matrix — which you might for things like shipping labels with URLs or lot tracking codes that encode more data — that’s a different type of barcode generator entirely. The two technologies look similar to end users but they’re fundamentally different encoding systems with different scanner requirements.

FAQ

What’s the difference between Code 128 and UPC-A?

Code 128 encodes both letters and numbers and is used mainly for internal inventory, shipping labels, and warehouse operations. UPC-A is a numeric-only, 12-digit format governed by GS1 and is required for retail point-of-sale scanning in North America. If you’re selling products in stores, you need UPC-A or EAN-13. If you’re labeling shelves or tracking internal assets, Code 128 is more flexible and compact.

Do I need a GS1 prefix to create a barcode?

For internal use — warehouse bins, asset tags, event badges — no. You can encode any alphanumeric string into a Code 128 barcode and use it however you want. But if you’re selling products through retail channels like Amazon, Walmart, or any grocery chain, you need a GS1-assigned company prefix to generate valid UPC-A or EAN-13 codes. GS1 membership in the US starts around $250/year for small product counts.

Why won’t my printed barcode scan?

The three most common causes are insufficient quiet zones (the blank margins got cropped), low print resolution causing bars to bleed together, and a wrong check digit for EAN/UPC formats. Try reprinting at a higher DPI, making sure there’s at least 5mm of blank space on each side of the barcode, and verify the check digit matches the standard calculation for your format.

How many barcodes can I generate in batch mode?

Batch mode lets you paste a list of values and generate all corresponding barcodes at once. There’s no hard limit on the number of barcodes per batch, though very large lists may take a moment to process and render. For extremely large runs — thousands of SKUs — you might want to break it into batches of a few hundred to keep things manageable.

Can I use these barcodes commercially?

The barcode images themselves are just visual encodings of data — there’s no copyright on a Code 128 or UPC-A barcode image. What matters legally is whether you have the right to use the underlying number. For GS1-assigned prefixes (UPC-A, EAN-13), you need a valid GS1 membership. For Code 128 with your own internal numbering, there are no restrictions.