Calci.inCalculate Today for a Better Tomorrow

QR Code Generator

URLs, wifi, contacts and UPI

The guide

QR codes, error correction and why the generator matters

How error correction lets a damaged code still scan, what the version and module count mean, and why some free generators stop working after a month.

Last reviewed · 1,461 words

In short

  • Error correction comes in four levels. The highest recovers from 30% damage and costs capacity to do it.
  • A static QR code contains the data itself and works forever. A dynamic one contains a redirect URL owned by someone else.
  • Free generators that offer tracking are producing dynamic codes, and the link dies when the free trial does.
  • Shorter content produces a lower version with larger modules, which scans faster and prints smaller.
  • Contrast and the quiet zone matter more than size. A code with no white margin frequently fails to scan.

A QR code is a two-dimensional barcode holding up to about 4,300 alphanumeric characters. It was invented by Denso Wave in 1994 for tracking car parts and released without licensing fees, which is why it is everywhere.

The structure

Every code has fixed elements a scanner uses to orient itself.

Three position markers — the large squares at three corners. They let a scanner find the code and work out its rotation, which is why a QR code reads at any angle.

Alignment patterns, smaller squares that correct for the distortion of scanning a curved or angled surface.

Timing patterns, alternating lines between the position markers that establish the module grid.

The quiet zone, a blank margin of at least four modules on every side. It is not decoration — a scanner uses it to find the boundary, and its absence is one of the most common reasons a printed code fails.

Data and error correction modules, everything else.

Error correction

Reed-Solomon error correction lets a damaged code still resolve, at the cost of capacity.

LevelRecovers fromCapacity cost
L (Low)~7% damageSmallest code
M (Medium)~15%Default for most uses
Q (Quartile)~25%Larger
H (High)~30%Largest code

Level H is what allows a logo in the centre of a QR code. The logo obscures modules, and the error correction reconstructs them — up to about 30% of the total, which in practice means a logo covering no more than a fifth of the area with a safety margin.

Use M for screens, where nothing damages the code. Use Q or H for print, especially anything that will be handled, folded, weathered or stuck to a surface that gets scuffed.

The trade is real: at the same content, H produces a noticeably larger code than L, with smaller modules at a given physical size — which can make it harder to scan if printed small.

Versions and capacity

QR codes come in 40 versions, from version 1 at 21×21 modules to version 40 at 177×177. Each step adds four modules per side.

VersionModulesNumeric capacity at level M
121×2134
537×37255
1057×57652
2097×972,061
40177×1775,596

Capacity depends on the character set. Numeric is most efficient at about 3.3 bits per digit; alphanumeric — uppercase letters, digits and a few symbols — is next; byte mode covers everything else and costs 8 bits a character.

Shorter content is genuinely better. A URL of 30 characters produces a version 3 code with large, chunky modules that scans instantly from a distance. The same destination behind a 200-character URL with tracking parameters produces a version 10 code whose modules are a third the size at the same printed dimensions, and it will fail from any distance or on any print that is slightly soft.

Shortening a URL before generating is worth doing for anything printed.

Static against dynamic

This is the distinction that costs people money, and it is rarely explained.

A static code contains the data itself. The URL, the text, the contact details are encoded in the pattern. It works forever, needs no service, and can never be changed.

A dynamic code contains a short URL pointing at a redirect service, which forwards to your real destination. It can be edited after printing and it can be tracked.

The catch: the code depends on that service continuing to exist and continuing to redirect. Free generators offering "tracking" or "editable codes" are producing dynamic codes, and when the free tier expires the code stops working — including every copy already printed.

The rule: for anything printed, use a static code, unless you specifically need to change the destination and are paying a service you trust to be there. A static code pointing at a URL you control gives you the ability to change what is at that URL, which covers most of what people want dynamic codes for.

What a QR code can contain

TypeFormat
URLhttps://example.com
Plain textAny text
Wi-FiWIFI:T:WPA;S:NetworkName;P:password;;
ContactvCard or MeCard format
Emailmailto:name@example.com?subject=Hello
Phonetel:+919876543210
SMSsmsto:+919876543210:message
Locationgeo:19.0760,72.8777
Calendar eventiCalendar format

The Wi-Fi format is the most underused. A printed code lets a guest join a network without reading a password aloud, and every modern phone supports it natively.

UPI payment codes in India follow a defined format — upi://pay?pa=address&pn=name&am=amount — standardised by NPCI so that any UPI app can read any merchant's code. The interoperability is the reason UPI QR adoption moved as fast as it did.

Printing and displaying

Minimum size is roughly 2 × 2 cm for a typical URL scanned from 30 cm. The working rule is that scanning distance is about ten times the code's width, so a code read from 3 metres needs to be about 30 cm across.

Contrast. Dark on light, with the ratio well above 3:1. Inverting it — light modules on a dark background — fails on many scanners, because the specification assumes dark-on-light and not every reader handles the inversion.

Never scale non-uniformly. A stretched code will not scan.

Keep the quiet zone. Four modules of blank margin, minimum. Placing a code hard against a design element is the most common print failure.

Avoid glossy laminate where a code will be scanned under a light, since the reflection blows out the pattern.

Test the actual printed artefact, from the actual distance, on more than one phone. A code that scans on screen and fails in print is a wasted print run.

Security

A QR code is an opaque link, which makes it a good phishing vector.

Quishing — placing a malicious code over a legitimate one — has become common on parking meters, restaurant tables and payment terminals. The victim scans what looks like an official code and lands on a convincing fake.

The defences are ordinary: check the URL your phone previews before opening it, be suspicious of a code that is a sticker over something else, and never enter payment details on a page reached only through a scanned code you did not expect.

For merchants, a printed code should be laminated or under glass, and checked periodically that nothing has been stuck over it.

Designing a code that still scans

A QR code tolerates a surprising amount of styling and there are limits.

Colour. Any dark-on-light pair with strong contrast works. Gradients scan if the lightest point remains dark enough against the background. Inverting to light modules on dark fails on a meaningful share of scanners.

Rounded modules and custom shapes generally scan, because the scanner samples the centre of each module. Very rounded shapes lose reliability at small sizes.

A centre logo works at error correction level H, covering no more than about a fifth of the area. Test it, because the tolerance depends on which modules happen to be obscured.

Do not modify the position markers. Those three squares are how a scanner finds and orients the code. Restyling them is the single most common cause of a designed code that will not scan.

Every one of these should be tested on at least three phones across both major operating systems, at the size and on the material it will actually be used on.

Where QR codes are worth using

QR earns its place where typing is the alternative and the context is physical.

Payments. UPI in India is the clearest example — a merchant needs no hardware beyond a printed sheet, which is most of why acceptance spread as fast as it did.

Wi-Fi access for guests, and for anyone setting up a device without a keyboard.

Physical to digital handover — a menu, a manual, a product registration, a museum label. Anywhere the person is holding a phone and standing in front of something.

Event tickets and boarding passes, where the code carries a reference the scanner validates against a system.

Where it is usually not worth it: on a web page, since the reader is already on a device that can follow a link. On television or in a video, where the viewer cannot hold their phone steady long enough. And on anything where the destination matters enough that the person should see the URL first.

What this tool assumes

  • Error correction level M by default, which suits screen display; select Q or H for anything printed.
  • The version is chosen automatically as the smallest that fits the content at the selected error correction level.
  • Codes are static — the data is in the pattern, so they work indefinitely and cannot be edited afterwards.
  • Nothing is transmitted. The code is generated in your browser and the content never leaves it.
  • Test any code you intend to print, at its final size, before printing it in quantity.

Sources

Frequently asked questions

Is my data sent to a server?

No. The code is generated in your browser. Most online QR generators fetch the image from a third-party API, which sends whatever you encoded, frequently a wifi password or a payment link, to someone else's server.

What is error correction?

Redundancy built into the code so it still scans when damaged or partly covered. High correction recovers about 30% of the code, which is what allows a logo in the middle, at the cost of a denser pattern.

How do wifi QR codes work?

They encode the network name, password and security type in a standard format that phone cameras recognise, so a guest can join without typing anything. Anyone who photographs the code has the password, so treat a printed one exactly as you would the password.

Do QR codes expire?

A static code like these does not, because it contains the data directly. Dynamic codes from marketing services point at a redirect that stops working when the subscription lapses.