Free Barcode Generator
This barcode generator makes a scannable code in Code 128, UPC-A, EAN-13, ITF-14, Code 39, Data Matrix, PDF417 and more. Everything runs in your browser, nothing is uploaded, and the codes are yours to use commercially.
On this page
Build your code
Start from a common job, or set it up yourself.
Encodes the full ASCII set. Best choice for internal SKUs and carton labels.
Any ASCII characters. The check character is calculated for you.
Size, colour and export options
GS1 recommends 0.330mm for EAN-13 and UPC-A on a consumer item.
Never set this to zero. A cropped quiet zone is the most common reason a printed barcode will not scan.
Preview
What was checked
Verify any code by test scanning a printed sample before a production run. Provided as is, and used at your own risk. See the terms.
Which barcode type do you actually need?
Picking the wrong symbology is the most common reason a code is rejected downstream. Retail needs a registered GS1 number in a UPC or EAN symbol. Internal tracking can use anything your own scanner reads.
| Symbology | Encodes | Length | Check digit | Typical use |
|---|---|---|---|---|
| Code 128 | ASCII 0–127 | Variable | Modulo 103, automatic | Internal SKU, carton and bin labels |
| GS1-128 | ASCII via AIs | Max 48 characters | Modulo 103, automatic | Logistics labels carrying batch and expiry |
| Code 39 | 0–9, A–Z, and - . $ / + % plus space | Variable | Optional modulo 43 | Legacy inventory and asset tags |
| UPC-A | Digits | Exactly 12 | Modulo 10, required | Retail checkout in the US and Canada |
| EAN-13 | Digits | Exactly 13 | Modulo 10, required | Retail checkout worldwide |
| EAN-8 | Digits | Exactly 8 | Modulo 10, required | Items too small for EAN-13 |
| ITF-14 | Digits, even count | Exactly 14 | Modulo 10, required | Shipping cartons and cases |
| Data Matrix | Alphanumeric and binary | Variable | Reed-Solomon, built in | Small parts, electronics, healthcare |
| PDF417 | Alphanumeric and binary | Variable | Error correction levels | Driving licences and documents |
This tool cannot issue you a registered UPC
It draws a valid, scannable UPC-A or EAN-13 image from whatever number you type. It does not and cannot assign you a GS1-registered GTIN. A number you invent will scan, but retailers and marketplaces check that the number is registered to your company, and listings using an unregistered one get rejected.
Sizing and printing
A barcode that looks right on screen can still fail at the printer. Three things decide whether it scans.
X-dimension
This is the width of the narrowest bar, and it sets the size of everything else. The GS1 General Specifications give a minimum of 0.264mm and a recommended 0.330mm for EAN-13 on a consumer item, rising to a 0.495mm minimum on outer packaging. ITF-14 and GS1-128 both sit at 0.495mm minimum. The tool warns when your value falls outside the range for the symbology you picked.
Quiet zone
The blank margin either side of the symbol. UPC-A needs at least 9 times the X-dimension on both sides. EAN-13 needs 11 times on the left and 7 on the right. ITF-14 and GS1-128 need 10 times on both. Artwork crowding that margin is a common cause of failed scans.
Print resolution and scaling
Export SVG when your label software accepts it, since vector output stays sharp at any size. If you export PNG, use the print or high resolution setting and never resize the image non-proportionally afterwards. Test scan a printed sample before committing to a full run.
How it works
Pick a symbology, type your value, and the code redraws as you type. The validation panel tells you what was checked: character set, length, check digit, and whether the size you chose falls inside the GS1 range. Encoding happens in your browser using the bwip-js library, so the value you type is never sent anywhere.
Sources
Every specification figure on this page traces to one of the following. Nothing is stated here that could not be checked against them.
- GS1 General Specifications size limits, as published by GS1
- ISO/IEC 15417, Code 128 symbology specification
- ISO/IEC 16388, Code 39 symbology specification
- ISO/IEC 16022, Data Matrix symbology specification
- bwip-js, MIT-licensed barcode encoder implementing the ISO/IEC symbologies
Last reviewed 6 September 2026
This generator is built and maintained by Cedrick Reese at Ready Utilities. Encoding is handled by bwip-js, an MIT-licensed JavaScript port of Barcode Writer in Pure PostScript, which implements the ISO/IEC symbology specifications directly. The character set, length and check-digit rules shown in the validation panel are taken from those specifications, and the X-dimension, height and quiet-zone figures come from the GS1 General Specifications size limits as published by GS1. Those figures are rechecked against the current published specification whenever this page is updated, and the library version is pinned so output does not change without a review.
Common questions
Can I use these barcodes commercially?
Yes. Codes you generate here are yours, with no account, no attribution and no expiry. Note that this is a separate question from whether a retail UPC number is registered with GS1, which it is not unless you registered it yourself.
Do these barcodes expire?
No. These are static images with no service behind them. There is nothing to switch off and no subscription to lapse. A code stops working only if the number it carries stops being meaningful in your own system.
Can I get a UPC for free?
You can generate a UPC-A image for free here. You cannot get a registered GTIN for free. Registration is handled by GS1 and carries a fee, and retailers verify that the number belongs to your company.
Why will my printed barcode not scan?
Usually one of four things: the quiet zone was cropped by surrounding artwork, the X-dimension is below the minimum for that symbology, the print contrast is too low, or the image was resized non-proportionally. Test scan a printed sample before a full run.
Which barcode type should I use for my products?
For retail checkout, UPC-A in North America or EAN-13 elsewhere, using a GS1-registered number. For internal stock, asset tags and bin labels, Code 128 is the usual choice because it encodes letters and digits compactly. For shipping cartons, ITF-14.
Is my data sent anywhere?
No. The barcode is drawn in your browser. The value you type is never transmitted to this site or to anyone else.
Related
- Barcode types explained, a fuller reference for choosing a symbology
- How to create a barcode, the six steps from symbology to a tested print
- Why a barcode will not scan, and how to diagnose it by symptom
- Bulk barcode generator, up to 500 codes from a list, a CSV or a sequence
- How to get a real UPC barcode
- QR code generator, static and no expiry