QR code glossary
42 terms, defined in one sentence each and then explained. If a definition here is wrong, the source is on GitHub and a correction takes one pull request.
- Alignment pattern
- Alignment patterns are the small 5 × 5 concentric squares scattered through larger QR codes. They let a scanner correct for perspective distortion when the code is curved, tilted or photographed at an angle.
- BharatQR
- BharatQR is India's interoperable merchant QR standard, built on EMVCo, allowing a single code to accept card-network payments. It is distinct from UPI, which uses its own upi:// deep-link format.
- BIP-21
- BIP-21 is the Bitcoin URI scheme that lets a QR code carry an address plus an optional amount, label and message. It is why every Bitcoin wallet interprets a scanned payment code the same way.
- Codeword
- A codeword is one 8-bit byte in a QR code's data stream. Capacity tables are ultimately expressed in codewords: a version-1 code holds 26 of them, split between data and error correction.
- Contrast ratio
- Contrast ratio is the luminance difference between a QR code's dark and light modules. Decoders need a clear threshold; the practical floor is about 40% luminance difference, and colour choice matters far less than luminance choice.
- Data capacity
- Data capacity is how much a QR code can hold, and it depends on three things at once: the version, the error-correction level and the encoding mode. The maximum is 7,089 digits, 4,296 alphanumeric characters or 2,953 bytes.
- Decode-verify
- Decode-verify is the practice of reading a generated QR code back with a real decoder before shipping it. It is the only way to know that a styled, logo-bearing or heavily coloured code actually scans, rather than assuming it does.
- Denso Wave
- Denso Wave is the Japanese company that invented the QR code in 1994, and it holds the patents. It chose not to enforce them for use of the standardised format, which is why QR codes are free for everyone to generate and read.
- DPI (dots per inch)
- DPI is printing resolution. For QR codes it matters because each module must be rendered from a whole number of printer dots — 300 dpi is the practical minimum, and generating from vector rather than raster avoids the problem entirely.
- Dynamic QR code
- A dynamic QR code contains a short URL that redirects through a provider's server. That makes the destination editable and the scans trackable — and makes the printed code dependent on that provider staying in business and staying paid.
- ECI (Extended Channel Interpretation)
- ECI is a mechanism for declaring which character set a QR code's byte data uses. Without it, byte mode has no declared encoding, and decoders simply guess — usually UTF-8 on phones, sometimes ISO-8859-1 on industrial scanners.
- EIP-681
- EIP-681 is the Ethereum URI scheme for payment requests. It carries a recipient address, a chain id and a value in wei, and optionally a contract function call — though wallet support for the richer forms is inconsistent.
- EMVCo QR code
- EMVCo QR is the international standard for payment QR codes, defining a tag-length-value payload used by PIX in Brazil, PromptPay in Thailand, QRIS in Indonesia and many others. It has merchant-presented and consumer-presented modes.
- Encoding mode
- Encoding mode is how characters are packed into bits. QR codes support numeric (3.33 bits/char), alphanumeric (5.5), byte (8) and kanji (13), and a single code can switch modes mid-stream to use the cheapest one for each run.
- EPC QR code
- An EPC QR code, branded GiroCode in German-speaking markets, encodes a SEPA credit transfer as a twelve-line text block. European banking apps read it and prefill a bank transfer for the payer to authorise.
- Error correction level
- Error correction level sets how much of a QR code can be damaged and still decode: L tolerates about 7%, M 15%, Q 25% and H 30%. Higher levels cost capacity, so the same data needs a bigger code.
- Finder pattern
- The three large concentric squares in the corners of a QR code are finder patterns. A scanner locates them first to work out where the code is, how big it is and which way up it is — which is why the missing fourth corner is deliberate.
- Format information
- Format information is the 15-bit block next to the finder patterns that records the error-correction level and mask pattern. It is stored twice and protected by its own BCH code, because a decoder cannot read anything else without it.
- GS1 Digital Link
- GS1 Digital Link is a URL syntax that carries GS1 identifiers such as a GTIN, batch and expiry date. It lets a single QR code on packaging serve both consumers and supply-chain scanners.
- Interleaving
- Interleaving is the reordering of QR code data so that consecutive codewords come from different error-correction blocks. It spreads localised physical damage across multiple blocks, so no single block exceeds its correction capacity.
- ISO/IEC 18004
- ISO/IEC 18004 is the international standard defining QR codes: symbol structure, encoding, error correction, masking and decoding. It is the authoritative reference, and it is why codes from any generator read on any scanner.
- Kanji mode
- Kanji mode packs Shift-JIS double-byte characters into 13 bits each instead of the 16 bits they would take in byte mode. It exists because QR codes were invented in Japan for Japanese text.
- Mask pattern
- A mask pattern is one of eight XOR patterns applied to a QR code's data area to avoid large blocks of one colour and false finder-like shapes. The encoder tries all eight, scores them, and keeps the best.
- MeCard
- MeCard is a compact contact format created by NTT DoCoMo. It encodes the same essentials as a vCard in roughly 40% fewer bytes, producing a visibly coarser and more scannable code at the same printed size.
- Micro QR code
- Micro QR is a smaller variant defined in the same standard, ranging from 11 × 11 to 17 × 17 modules with a single finder pattern and a two-module quiet zone. It holds far less data but fits where a standard code cannot.
- Module
- A module is one square cell of a QR code — the smallest unit of the pattern. Codes are measured in modules, not pixels or millimetres, because the module count is fixed by the version and the physical size is whatever you print it at.
- Payload
- The payload is the actual string encoded in a QR code — the URL, the WIFI: block, the vCard. Everything about a code's size, density and minimum print dimensions follows from the payload's length and character set.
- Quiet zone
- The quiet zone is the blank margin around a QR code. The specification requires at least four modules of clear space on every side, and codes fail more often from a missing quiet zone than from almost any other design error.
- Quishing
- Quishing is phishing delivered by QR code. It works because the destination is unreadable to a human before scanning, and because a code in an email image evades URL-based filtering that would catch the same link as text.
- Reed–Solomon coding
- Reed–Solomon is the error-correcting code that lets a damaged QR code still decode. It adds redundant codewords so that a decoder can reconstruct the original data even when part of the pattern is unreadable.
- rMQR code
- rMQR is a rectangular QR variant standardised in ISO/IEC 23941 (2022). It carries more data than Micro QR in a long, thin footprint, which suits cable labels, pipes, cylindrical parts and shelf edges.
- Scan rate
- Scan rate is the share of people who see a QR code and scan it. There is no universal benchmark worth quoting — placement, context and the reason to scan swamp every other variable, including the design of the code itself.
- Short URL
- A short URL is a brief address that redirects to a longer one. In QR codes it is used to reduce payload length — which genuinely produces a coarser, more scannable code — at the cost of adding a permanent dependency.
- Static QR code
- A static QR code contains its destination directly in the pattern. It cannot be edited or tracked, and it never expires — because nothing has to keep running for it to work.
- SVG
- SVG is a vector image format, and the right one for QR codes. Because the pattern is described as shapes rather than pixels, it prints crisply at any size and never softens module edges through interpolation.
- Timing pattern
- The timing patterns are the alternating black-and-white lines running between the finder patterns, one horizontal and one vertical. They tell the decoder the module pitch, so it knows where each cell boundary falls.
- UTM parameter
- UTM parameters are query-string tags — utm_source, utm_medium, utm_campaign — that let your analytics attribute a visit to a specific campaign. In QR codes they are the standard way to measure scans without any third-party tracker.
- vCard
- vCard is the standard contact-record format, defined in RFC 6350 for version 4.0 and RFC 2426 for 3.0. Encoded into a QR code it becomes a digital business card that a phone can save directly to its address book.
- Vector graphic
- A vector graphic describes shapes mathematically rather than as a grid of pixels, so it can be scaled to any size without loss. For QR codes it is the correct format for anything that will be printed.
- Version
- A QR code's version is its size: version 1 is 21 × 21 modules and each step adds 4 modules per side, up to version 40 at 177 × 177. The encoder picks the smallest version that fits your data at your chosen error-correction level.
- Version information
- Version information is an 18-bit block present only in QR codes of version 7 and above, recording the code's size. Smaller codes do not need it because the decoder can count modules directly.
- ZXing
- ZXing — "zebra crossing" — is the open-source barcode library that most QR decoding is ultimately built on. FreeQR uses a WebAssembly build of it to decode every code it generates, before you download it.