How Do QR Codes Work?

A QR code is a grid of black and white squares that encodes data with enough redundancy to survive damage, dirt and a logo in the middle.

Last updated: October 2026 · Written by the Make My QR Code team

Short answer: a QR code stores data as a pattern of dark and light modules on a square grid. Finder patterns in three corners tell the scanner where the code is and how it is oriented. Error correction adds redundant data so the code still reads even when part of it is damaged, covered or dirty.

The parts of a QR code

Error correction: why a logo does not break the code

QR codes use Reed–Solomon error correction, which stores recovery data alongside the payload. There are four levels, and they determine how much of the code can be lost:

LevelRecoverable damageTypical use
L (Low)~7%Clean digital display, maximum data
M (Medium)~15%General print default
Q (Quartile)~25%Print with some wear, small logo
H (High)~30%Logo overlay, harsh environments

This is the mechanism behind logo embedding. A logo covering up to about 30% of the code can still scan — but only at level H, and only if the logo sits away from the three finder patterns. It is also why a scuffed or partially covered code often still works.

How much data fits

Data typeMaximum (approx.)
Numeric7,089 characters
Alphanumeric4,296 characters
Binary / bytes2,953 characters
Japanese kanji1,817 characters

These maximums apply at error-correction level L on the largest grid size. In practice, keep payloads short: every extra character adds modules, and more modules at a fixed print size means smaller physical dots and a higher chance of a failed scan.

What happens when you scan one

  1. The camera locates the three finder patterns and works out orientation and perspective.
  2. It samples the grid and converts each module to a bit.
  3. It reads the format information to learn the error-correction level and mask.
  4. It applies the mask to unmix the data, then uses Reed–Solomon to repair any errors.
  5. It interprets the decoded bytes using the mode indicator — URL, text, vCard, Wi-Fi and so on.
  6. The operating system decides which app to open for that data type.

Why codes fail to scan

Almost always one of these: too small, too little contrast, no quiet zone, printed on a curved or reflective surface, damaged beyond the error-correction budget, or a payload so dense that the modules blur together at the printed size. Notice that none of these are software faults — they are design and print decisions.

Frequently asked questions

How much data can a QR code hold?

Up to about 7,089 numeric characters or 4,296 alphanumeric characters at the lowest error-correction level. Practical codes hold far less to stay scannable at small sizes.

Can a QR code work without internet?

The scan itself works offline because decoding happens on the phone. If the code points at a website, that page still needs a connection.

Why are there three squares in the corners?

They are finder patterns. Three are enough to determine position, size and rotation, and leaving the fourth corner empty tells the scanner which way is up.

How much of a QR code can be damaged and still scan?

Up to 30% at error-correction level H, provided the three finder patterns remain intact.

Are QR codes safe to scan?

Generally yes, but a code can point anywhere. Preview the destination before opening it, and be cautious with codes on stickers pasted over legitimate ones.

Create a free QR code

Any content type, high-resolution PNG or SVG, no account needed.

Create a free QR code