QR code fundamentals
How QR Codes Work
Published · Reviewed
A QR Code turns data into a square grid of dark and light modules that a decoder can locate, orient, sample, error-correct, and interpret. The symbol carries data; the camera or scanning application decides what action to offer after decoding it.
From text to modules
A generator first represents the supplied characters as data. It adds mode and length information, error-correction codewords, and other control information, then places those bits into a prescribed grid. A mask pattern is applied to avoid arrangements that would be difficult for a scanner to distinguish.
Each small square is a module, not an independent pixel or letter. The same payload can produce a different-looking valid symbol when the generator chooses another encoding mode, error-correction level, version, or mask. Visual difference alone does not mean that the decoded data changed.
- Numeric, alphanumeric, byte, and Kanji modes have different efficiencies.
- Unicode text is commonly encoded as bytes, so character count alone does not determine capacity.
- Shorter payloads usually make simpler, less dense symbols.
How a scanner finds and reads the grid
The prominent square patterns at three corners are position-detection patterns. Timing patterns, alignment patterns in larger versions, and format information help the decoder determine grid spacing, perspective, and symbol settings.
The clear border is the quiet zone. DENSO WAVE specifies a margin four modules wide on all sides. Text, borders, artwork, or another code placed inside this area can interfere with detection even though none of the data modules were changed.
21 × 21 data-and-function module areaAfter29 × 29 total module area after adding four clear modules to every sideNotePhysical or pixel dimensions come from multiplying that total by the chosen module size.
Versions and error correction
Standard QR Code versions run from 1 through 40. Version 1 contains 21 modules per side and each later version adds four per side, ending at 177 modules for Version 40. A generator normally chooses the smallest version that can contain the payload at the selected correction level.
Levels L, M, Q, and H add increasing error-correction capacity. DENSO WAVE describes approximate restoration rates of 7, 15, 25, and 30 percent of codewords respectively, while warning that actual recovery depends on how damage is distributed. Stronger correction adds redundancy and can make a code denser.
- Correction protects against some missing or unreadable modules; it is not a guarantee.
- A center logo deliberately covers modules and consumes part of the correction margin.
- Choose a correction level for the real environment, then scan-test the final artwork.
What happens after the scan
The decoder reconstructs the stored payload. If it resembles a URL, the scanning app may offer to open it; if it is plain text, contact data, or another recognized form, the app may offer a corresponding action. Those behaviors belong to the reader, not to the QR symbol itself.
A so-called static code directly stores its lasting payload. Services marketed as dynamic QR codes usually store a redirect URL whose destination can be changed by that service. The printed modules remain a normal QR Code, and the redirect depends on the provider and its continued availability.
- Preview and proofread the exact decoded text.
- Treat an unfamiliar QR destination like any unfamiliar link.
- Test with several representative devices before publishing or printing at scale.
Sources and review notes
Format and compatibility references were checked on the dates shown. Product support can change, so verify a critical destination directly.
- DENSO WAVE: What is a QR Code? Reviewed 2026-08-28
- DENSO WAVE: QR Code standardization Reviewed 2026-08-28
- DENSO WAVE: Error correction feature Reviewed 2026-08-28