Make a scannable 1D barcode — Code 128, UPC-A, EAN-13 or Code 39 — with correct check digits and GS1 quiet zones. The barcode image has no watermark; download the PNG or SVG with a free account, built in your browser.
Code 128 is the best default for internal, shipping and asset labels — highest density, full ASCII.
The exact value the scanner will read.
Prints the value as text so a person can key it in if a scan fails. Standard on retail labels.
Code 39 is self-checking — the check digit is optional. Turn this on only if your host system requires mod-43.
Width of the narrowest bar. 0.33 mm is GS1 nominal for retail.
Taller bars tolerate skewed scans. Retail floor ≈ 5 mm.
Mandatory blank margin each side. GS1 minimum ≈ 10× (7× floor enforced).
300 is the floor for crisp thermal/laser labels.
This free barcode generator builds a scannable 1D (linear) barcode right in your browser and renders it live as you type. Choose a symbology — Code 128, UPC-A, EAN-13 or Code 39 — enter your data, and the tool validates it, computes the correct check digit, adds the mandatory quiet zones, and lets you download a PNG or SVG whose barcode image carries no watermark. Viewing is free with no sign-in; a free account unlocks download & save.
Say you have the 11-digit base 03600024145 and need the 12th (check) digit.
UPC-A weights the odd positions by 3:
So 03600024145 becomes 036000241457. Type the 11 digits here and the
tool appends the 7 automatically — type all 12 and it verifies the 7 for you.
Note: EAN-13 uses the opposite parity (it weights the even positions by 3) — swapping
these two is the single most common barcode bug, and both are implemented here exactly to GS1 spec.
The X-dimension is the width of the narrowest bar; it drives the whole symbol's size and scannability. GS1 nominal for retail UPC/EAN is 0.33 mm, with a POS range of 0.264–0.66 mm. The quiet zone is the mandatory blank margin on each side — GS1 wants roughly 10× the X-dimension for Code 128 and Code 39. Below ~0.264 mm, or when a bar rounds to under 1 pixel, bars blur together and scans fail. For anything large, export the SVG so it scales with zero blur — never blow up a small PNG.
<iframe src="https://snaptoolsuite.com/barcode-generator/?embed=1"
style="width:100%;max-width:560px;height:1100px;border:0;"
title="Barcode Generator" loading="lazy"></iframe>
<p>Free <a href="https://snaptoolsuite.com/barcode-generator/">Barcode Generator</a> by Snap Tool Suite</p>
Full copy-paste steps are in the box below.
For internal use — asset tags, shelf labels, picking — yes, use Code 128 or Code 39 freely. For retail UPC-A/EAN-13 numbers used to sell through stores or marketplaces, you generally need a GS1-issued company prefix. This tool encodes whatever number you type into a correct, scannable symbol, but does not register that number to you. Made-up retail numbers risk listing rejection or collisions.
Code 128 for internal/shipping/asset labels (highest density, full ASCII). UPC-A for North American retail POS (12 digits). EAN-13 for worldwide retail POS (13 digits). Code 39 for legacy/industrial/automotive systems.
UPC-A is 11 data digits + 1 check digit. Enter 11 and the tool computes and appends the check digit. Enter all 12 and it validates the one you supplied — flagging a mismatch instead of silently overwriting it, because a mismatch usually signals a typo upstream.
Yes, when printed correctly. Print from the SVG or a ≥300 DPI PNG, keep the quiet zone, and test-scan a printed sample with your real scanner before a full run. Print contrast and thermal head wear matter beyond the on-screen preview.
It's the mandatory blank margin left and right of the bars. Scanners use it to find the start/stop pattern. GS1 wants ≥~10× the narrow-bar width each side. Cropping it away is the #1 cause of barcodes that won't scan.
No. Every barcode is built entirely in your browser. Nothing is uploaded, logged, or stored.
Built locally in your browser. Nothing you type is ever sent, logged, or stored.