About ScanCodeGenerator
On this page
What this site is
ScanCodeGenerator makes barcodes and QR codes in your browser, through the barcode generator and the QR code generator. It covers the linear symbologies used in retail and logistics, Code 128, Code 39, Code 93, UPC-A, UPC-E, EAN-13, EAN-8, ITF-14, GS1-128, Codabar and ISBN, and the 2D codes used on small parts, documents and phones, Data Matrix, PDF417, Aztec and QR.
It exists because most free barcode tools are attached to something else being sold, a scanner, a label printer, or an inventory subscription, and that shapes what they tell you. This one has nothing downstream to sell, which frees it to do two things those tools generally do not.
It tells you when a code will not scan
Rendering a barcode is easy. Rendering one that survives a printer and a scanner is the part people get wrong. Before drawing anything, the generator checks the character set and the length against the rules for the symbology you selected, calculates the check digit and tells you if the one you supplied is wrong rather than silently correcting it, and warns when the X-dimension or quiet zone falls outside the range published by GS1. Those three things account for most barcodes that render correctly and then fail on the label.
The output is unrestricted
Some widely used free barcode generators licence their output for non-commercial and private use only, which is an awkward condition on a tool whose entire purpose is labelling products people intend to sell. Codes generated here carry no such restriction. No account, no email gate, no watermark, no expiry.
How the underlying data is verified and kept current
Two independent bodies of specification sit behind this site, and they are treated differently from ordinary web sources.
Character sets, lengths and check digit schemes come from the ISO/IEC symbology specifications that define each barcode type. These are stable, changing rarely and slowly, and they are implemented in software by the MIT-licensed bwip-js library, which this site uses at a pinned version so that output cannot change without a deliberate review.
Size figures, meaning X-dimension, symbol height and quiet zone, come from the GS1 General Specifications. GS1 revises its general specification annually, so every size figure quoted on this site is rechecked against the current published version whenever the page carrying it is updated, and the date of that check is recorded in the site's own fact-check log rather than left implicit.
Where a figure cannot be verified against a primary source, it is left out rather than approximated. That is why, for instance, the page on getting a registered UPC quotes no fee: GS1 pricing is set per country and revised over time, and a number published here would go stale silently.
What it deliberately does not do
It cannot issue a GS1-registered GTIN, and it says so on every page where someone might assume otherwise. It does not offer dynamic or trackable codes, because those need a redirect service running behind them and this site is static by design, which is also why the codes here cannot expire. And it does not scan or decode codes, only create them.
Nothing you type is transmitted
Encoding happens entirely in your browser. The value you enter is never sent to this site or anywhere else, which matters if you are encoding internal SKUs or customer references.
Who runs it
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 symbology specifications governing each barcode type covered by this site
- bwip-js, MIT-licensed barcode encoder implementing the ISO/IEC symbologies
Last reviewed 6 September 2026
This page is written and maintained by Cedrick Reese. The verification approach described above is the one actually applied across the site: symbology rules from the ISO/IEC specifications via a pinned library version, size limits from the current published GS1 General Specifications, and omission rather than approximation where a primary source cannot be reached. Questions and corrections are welcome through the contact page.