Guide

QR Code Basics: How They Work

A QR code looks simple from the outside — a black-and-white square you point a camera at. Underneath, it's a small, deliberately engineered data structure with built-in redundancy, standardized geometry, and several encoding modes chosen for different kinds of content. This guide covers the fundamentals: how the code is structured, what types of QR codes exist, and how error correction lets a code keep working even when part of it is damaged or covered.

What's in this guide

How QR Codes Work

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 →

Types of QR Codes

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 →

QR Code Error Correction Levels Explained

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 →