Disclaimer
On this page
These tools produce correctly formatted, scannable code images. This page sets out, plainly, what that does and does not get you — because the gap between the two has real commercial consequences.
Barcodes are images, not registrations
This is the most important limitation on the site. Generating a UPC, EAN, ITF-14 or GS1-128 image does not create, assign or reserve a product number.
Retail GTINs are issued by GS1, which maintains the database retailers and marketplaces check a number against. That database maps a number to a brand owner. Printing a well-formed number you are not entitled to use produces a barcode that scans perfectly and identifies somebody else's product — a failure that surfaces at a distributor, at a retailer's onboarding check, or worst, at a checkout.
- Selling through retail or a major marketplace: obtain a company prefix from GS1. There is no legitimate shortcut, and cheap resold UPCs are typically old prefixes that do not resolve to you.
- Internal use only — your own stockroom, your own scanners, nothing leaving the building: you may number however you like. Code 128 is designed for this and consumes no retail number space.
- ISBN and ISSN are issued by national agencies, not by us. Our tools convert and validate a number you already hold.
The same applies to the checksum: a valid check digit proves a number is internally consistent, never that it is yours.
No guarantee of universal scanning
We cannot guarantee any given code will be read by every scanner, app or device. Readability depends on size, contrast, quiet zone, print quality, substrate, ambient light, scanning angle and the reader's own hardware and configuration — most of which are outside this site's control and, at generation time, outside its knowledge.
Camera scanning additionally depends on your browser. Which symbologies can be detected varies by device, and where native detection is unavailable only QR codes can be read.
The scan-reliability rating is not a print grade
The Good / Needs attention / High risk indicator beside a generated code is a set of heuristics over the design: contrast ratio, quiet-zone width, data density, logo coverage against the error-correction level, export resolution and content length.
A formal print grade — ISO/IEC 15415 for 2-D symbols, ISO/IEC 15416 for linear ones — measures a printed symbol with calibrated optics under specified lighting, and reports a letter or numeric grade per parameter. That is a laboratory or verifier measurement. If a trading partner requires a graded symbol, our rating does not substitute for one, and you will need a barcode verifier.
Test before you print
Always test on real devices, at the final size, on the final material, before a production run. Print one sample, scan it with more than one phone at the distance and lighting it will really be used at, and photocopy it once and scan the copy — surviving that means there is margin. The printing guide has the full checklist.
Where a code will be printed at scale or applied to packaging that cannot be reprinted, the cost of a proper test is negligible against the cost of the run.
Static codes cannot be changed
Every QR code produced here is static: the data lives in the pattern. Once printed it cannot be repointed, disabled or corrected. If the destination URL may need to change, point the code at an address you control and change what that address serves — not at a third-party link that may expire.
Not professional advice
QRBarcodeTools is a utility. It is not a legal, regulatory, security, medical or commercial certification service, and nothing on this site constitutes professional advice. Labelling requirements for regulated goods — pharmaceuticals, food, medical devices, hazardous materials — are set by law and by your trading partners, and compliance is your responsibility.
Availability and accuracy
The tools are provided free and as-is, with no warranty and no uptime commitment, as set out in the terms of use. We correct errors when they are reported and record the corrections in the changelog; if you believe a value produced here is wrong, please tell us with the input and the expected output so it can be verified against the published specification.