What's in this guide
QR codes are built from a grid of modules arranged around three fixed finder patterns, timing patterns, and (for larger codes) alignment patterns that let a scanner locate and orient the code regardless of angle or rotation. Data is encoded using one of several modes — numeric, alphanumeric, byte, or kanji — chosen automatically based on what's being stored, and the amount of data that fits depends on the code's version, which ranges from a compact 21x21 grid up to a dense 177x177 grid.
Read the full breakdown of QR code structure and encoding →
Not all QR codes serve the same purpose. A static QR code encodes its final data permanently at creation time, while a dynamic QR code encodes a short redirect URL that can be repointed later without reprinting the code. Beyond that distinction, QR codes can hold different categories of content entirely — URLs, contact cards (vCard), Wi-Fi credentials, plain text, email drafts, SMS messages, and more — each with its own formatting rules.
Compare QR code types and when to use each →
Every QR code includes redundant data generated with Reed-Solomon error correction, which is what allows a code to scan correctly even when it's partially obscured, printed poorly, or has a logo placed in the middle. There are four standardized correction levels — L, M, Q, and H — trading off data capacity against damage tolerance. Picking the right level depends on how and where the code will actually be used.
Understand the tradeoffs between correction levels →