Error correction guide
QR codes store extra Reed-Solomon recovery data, so a code can still be read when part of it is dirty, torn or covered. More recovery data makes the code denser.
| Level | Can lose up to | Use it for |
|---|---|---|
| L, low | 7% | Long URLs on screens, where the code stays clean |
| M, medium | 15% | Most printed codes; required for SEPA payment codes |
| Q, quartile | 25% | Outdoor signs, packaging, codes that may get scuffed |
| H, high | 30% | Codes with a logo in the middle, which hides part of the pattern |
Getting it to scan
Leave a clear margin (the quiet zone) of at least four modules around the code; the downloads include it. Keep strong contrast with a dark code on a light background, as many older scanners cannot read inverted codes. As a rule of thumb the code should be at least a tenth of the scanning distance wide: 2 cm for a business card read at 20 cm, 30 cm for a poster read from 3 metres. Always test a printed proof with two different phones.
How much a QR code holds
The largest QR code, version 40 at 177 × 177 modules, holds up to 7,089 digits, 4,296 alphanumeric characters or 2,953 bytes at low error correction. Short content makes small, easy-to-scan codes, which is why a short URL beats a long one. The version shown above tells you the size of your code: version 1 is 21 × 21 modules and each version adds 4.
Static codes, privacy and safety
These are static codes: the content is written into the pattern itself, so they work forever and nobody can track scans or switch the destination later. "Dynamic" QR services instead encode a redirect link through their own server, which lets them count scans but also stops working if the subscription lapses. When you scan codes in public, check the address your phone shows before opening it. Fake codes stuck over real ones on parking meters and restaurant tables are a growing way to steal payment details, and banks warn customers to type payment sites manually.
SEPA payment codes
In the euro area, invoices often carry an EPC QR code (also called GiroCode). Scanning it in a banking app fills in the beneficiary, IBAN, amount and reference, so there are no typing mistakes. The standard allows up to 331 bytes, amounts up to €999,999,999.99, and requires medium error correction. The generator checks the IBAN's check digits before creating the code. For converting prices between currencies, see the currency converter.