Generate custom QR codes for URLs, WiFi, plain text, PayPal, vCard, or SEPA transfers — with logo, gradients, colors, and dot styling.
Encoding modes, capacity per version, the L/M/Q/H levels and the print rules that decide whether a scanner locks on.
ISO/IEC 18004 defines 40 matrix versions, from version 1 at 21×21 modules up to version 40 at 177×177, growing by 4 modules per side at every step. What fits is not decided by character count alone but by the encoding mode: numeric spends 10 bits per 3 digits (up to 7,089 digits), alphanumeric 11 bits per 2 characters from a 45-symbol uppercase set (up to 4,296), byte mode 8 bits per character (up to 2,953 bytes) and kanji mode 13 bits per ideograph. That is why the same URL typed in uppercase usually lands on a lower version, and a smaller matrix, than its lowercase twin.
Every QR code reserves part of its modules for Reed-Solomon error correction blocks, and the level you pick sets how much damage is tolerated: L recovers roughly 7% of the codewords, M 15%, Q 25% and H 30%. Raising the level is not free, because the redundancy takes space and pushes the version up: the same URL at level H produces a denser matrix than at level M. The encoder also scores 8 mask patterns and keeps the one with the lowest penalty, which avoids large uniform areas and sequences that imitate a finder pattern, while the format information is protected separately by a BCH (15,5) code.
On paper, geometry rules. The mandatory quiet zone is 4 blank modules around the whole matrix; if a layout crops it, many scanners give up. For sizing, the practical rule is a 10:1 ratio: the code side should measure at least a tenth of the reading distance, so about 3 cm for a 30 cm scan, and modules should not drop below 0.4 mm in print. Dark modules on a light background is the expected polarity: inverted codes, gradients and low-contrast pairs such as red on black read badly. Export SVG for print and PNG at 300 dpi or higher for screens.
Not if the code is static: the payload is baked into the module layout, so editing it changes the picture. The standard practice is to encode a short URL on a domain you control and resolve the real destination with a 301 or 302 redirect on the server, which you can edit later without reprinting anything.
Because the covered area eats into the error correction budget. Level H tolerates close to 30% of damaged codewords, but the usable margin shrinks when the logo also overlaps alignment patterns. Keep the cutout below that 30%, centered and with a light border around it, and never touch the three finder patterns in the corners or the timing pattern that joins them.
Decoders binarize the image in grayscale, so what matters is the luminance difference, not the hue. Two very different colors can end up nearly identical in gray, and several readers simply assume dark modules on a light background and discard inverted ones. Aim for high luminance contrast and avoid gradients that change brightness inside a single module.