Free tool

Free QR code generator

Make a QR code for a website, WhatsApp chat, Wi-Fi network, UPI payment or contact card. Everything runs in your browser — nothing you type is uploaded. Download a PNG for screens or a vector SVG for print. No sign-up, no watermark, no expiry.

If you leave out the scheme we add https://. Shorter links make a less dense code that scans from further away.

Size, correction and colours

The blank border. Four modules is the standard minimum; less than that and scanners struggle to find the code against busy artwork.

Modules
Background
Nothing to encode yet Fill in the fields on the left and your QR code appears here, redrawing as you type.

PNG for screens and social. SVG for print — it is vector, so it stays sharp on a hoarding or a 15 mm carton panel.

A QR code generator turns text — a web address, a Wi-Fi password, a UPI ID — into a square black-and-white pattern that any phone camera can read. A static QR code stores that text directly in the pattern, so it works forever but can never be edited or tracked once printed. A dynamic QR code stores a short redirect link instead, so the destination can be changed later and every scan can be counted. This tool makes static codes, free, entirely in your browser.

What each code type actually encodes

A QR code has no concept of "a WhatsApp code" or "a Wi-Fi code". It stores a string. What makes a phone open WhatsApp instead of a browser is the format of that string, and getting the format wrong is the single most common reason a home-made QR code does nothing useful when scanned. These are the payloads this tool writes.

TypePayload writtenWhat the phone does
Websitehttps://example.com/pageOpens the browser
TextThe raw textShows the text in the scanner app
WhatsApphttps://wa.me/91…?text=…Opens a chat with your message typed in
Emailmailto:you@x.com?subject=…&body=…Opens a draft in the mail app
Phonetel:+9198…Loads the number into the dialler
SMSSMSTO:+9198…:messageOpens a draft SMS
ContactA vCard 3.0 blockOffers to save a new contact
Wi-FiWIFI:T:WPA;S:ssid;P:pass;;Offers to join the network
UPIupi://pay?pa=…&pn=…&am=…&cu=INROpens the UPI app with the payment prefilled

Wi-Fi and vCard payloads use semicolons and commas as structural separators, so any of those characters inside your SSID, password or address must be escaped with a backslash. This tool does that for you — which is why a password like a;b,c still works here and silently breaks in many generators.

Static versus dynamic — and which one this is

This tool produces static QR codes. The destination is baked into the module pattern itself. That has three consequences worth being clear about before you send anything to print.

1

You cannot edit it after printing

If the landing page moves, the printed code is dead. Point static codes at URLs you control and do not intend to move — a domain root, a permanent page — rather than a campaign URL you will retire in six weeks.

2

You cannot count the scans

Nothing sits between the camera and the destination, so there is no scan log. You can still infer traffic by adding campaign parameters to the URL and reading your web analytics, but you will not see scans that never became page loads.

3

It never expires and never depends on us

The flip side, and the reason static is often the right answer. There is no redirect service that can go down, get acquired, start charging, or delete your code. Once it is printed it is yours.

A dynamic code trades that permanence for control: it encodes a short redirect URL, and the real destination lives on a server you can edit. It is the right choice when packaging will outlive the campaign printed on it. We wrote the full comparison, including when each one is a mistake, in dynamic vs static QR codes.

Printing a QR code so it actually scans

Most QR failures in the field are print failures, not encoding failures. Five things account for nearly all of them.

Size: 15 mm floor

Treat 15 mm square as the absolute minimum for a short URL and 20–25 mm as the safe figure for packaging. Rule of thumb: a phone needs about ten times the code width in distance, so a 20 mm code reads from roughly 200 mm.

Quiet zone: 4 modules

Keep a blank margin of at least four modules on all sides. Designers cropping into that margin to fit a layout is the most common reason a code that worked in the studio fails on the shelf.

Contrast: dark on light

Never invert. Scanners expect dark modules on a light ground, and many camera apps reject the reverse outright. Keep the pair above 7:1 contrast; the tool tells you the live ratio.

Less data, bigger modules

Content length drives module count. A 40-character URL and a 200-character URL in the same 20 mm square give very different module sizes. Shorten the link before you enlarge the code.

Error correction: match the surface

Level M for screens and clean paper. Level Q or H for cartons, sacks, tubes, cylinders and anything handled, scuffed or printed on an uneven substrate — or if a logo will sit over the centre.

Use vector for print

Download the SVG, not the PNG, for anything going to press. Vector edges stay crisp at any scale; a resampled PNG blurs module boundaries and blurred boundaries are exactly what a decoder cannot resolve.

Then test it. Print at final size on the final substrate and scan with at least two phones, one of them an old budget handset, in the light level of the place the code will live — a warehouse aisle, not your desk.

When a static QR code is not the right tool

A static code is genuinely the right answer for a poster, a shop counter, a business card, a menu, a guest Wi-Fi card or a payment sticker. One code, many scans, nothing to manage. Use this tool and take the output.

It stops being the right answer the moment you need each printed item to be individually identifiable. If you want to reward an electrician for scanning a specific carton, block a second person from claiming the same code, verify that a unit is genuine, or see which town a batch actually sold in, you need a different code on every unit and a system that knows which codes have been used. That is a QR code program, not a QR code image — different economics, different infrastructure.

RequirementFree static QRQR code program
One code on a poster or cardYesOverkill
Change the destination after printingNoYes
Count scansNoYes, per scan
Unique code per product unitNoYes, serialised
Block a code being claimed twiceNoYes
Pay a reward on scanNoYes
Prove a unit is genuineNoYes

If the right-hand column is what you actually need, start with what a QR code program is, or look at how Unotag runs serialised QR programs for Indian manufacturers. If it is not, the tool above is free and always will be — there is no upgrade prompt hiding behind it.

Frequently asked questions

Is this QR code generator really free?

Yes. There is no sign-up, no watermark, no scan limit and no trial period. The codes are generated by JavaScript running in your own browser, so serving the tool costs us nothing per code. You can use the output commercially, including on packaging and printed marketing.

Do these QR codes expire?

No. These are static QR codes, which means the destination is encoded directly into the black and white pattern. There is no redirect service in between that could be switched off, so the code keeps working for as long as the thing it points at exists. If you encode a URL and later delete that page, the code will still scan but will land on a broken link.

Can I edit a QR code after it has been printed?

Not with a static code. The data lives in the pattern itself, so changing the destination means generating and reprinting a new code. If you need to change where a printed code points, you need a dynamic QR code: it encodes a short redirect URL and the destination is changed on a server. That requires a hosted service, which this free tool is not.

How small can a QR code be printed?

About 15 mm square is the practical floor for a short URL scanned from arm's length, and 20 to 25 mm is safer for packaging. The real rule is a ratio: a phone needs roughly ten times the code width in scanning distance, so a 20 mm code reads from about 200 mm away. More data means more modules in the same space, which means each module gets smaller, so long URLs force a physically larger code.

Which error correction level should I choose?

Level M is the sensible default for screens and clean paper. Move to Q or H for cartons, tubes, sacks, labels or anything that gets handled, scuffed or printed on an uneven surface, and for any code with a logo placed over the centre. Higher levels add redundancy, so the code becomes denser for the same content and needs to be printed slightly larger.

Can I put a logo in the middle of the QR code?

Yes, if you use error correction level H and keep the logo under about 20 percent of the code area, centred, with a small light margin around it. This tool does not composite the logo for you, so download the SVG and place the logo in your design software. Always test the finished artwork on more than one phone, because a logo that covers a timing pattern will break the code silently.

Does anything I type get uploaded?

No. The QR library is served from this site and runs locally in your browser. Wi-Fi passwords, UPI IDs, phone numbers and contact details are turned into a pattern on your own device and are never sent to a server. You can confirm this by opening your browser's network tab, or by disconnecting from the internet after the page has loaded — the generator keeps working.

Can I track how many people scan my code?

Not with a static code, because nothing sits between the scanner and the destination to count the hit. You have two options: point the code at a URL carrying campaign parameters and read the traffic in your web analytics, or use a dynamic QR service that logs every redirect. If you need per-unit tracking rather than per-campaign tracking, that is a serialised QR program, where each printed item carries its own unique code.

Why does my coloured QR code fail to scan?

Almost always contrast, or inversion. Scanners look for dark modules on a light background, so a light-on-dark code is rejected outright by many camera apps. Even in the right direction, a mid-tone colour pair below about 7:1 contrast will read on a new phone in bright light and fail on a cheap phone in a dim shop. The tool shows the live contrast ratio and warns you before you download.

Need a different code on every unit?

Serialised QR, single-use validation, rewards and genuine-product verification — Unotag mirrors your channel in a sandbox within 48 hours. Email support@unomok.com.

More free tools