QR Code Glossary — 25 Terms Defined (2026): Error Correction, Quiet Zone, UTM, Quishing & More
Plain-English definitions for 25 QR code terms — error correction L/M/Q/H, quiet zone, dynamic vs static, quishing, ISO 18004, Reed-Solomon, UTM parameters, smart redirects, and every other QR-adjacent term you'll encounter. Written by the QRLynx engineering team.
TL;DR
#error-correction-level).Jump to a term
- Dynamic QR Code
- Static QR Code
- Error Correction Level (L, M, Q, H)
- Quiet Zone
- Module
- QR Version
- Finder Pattern
- Reed-Solomon Codes
- ISO/IEC 18004
- Quishing (QR Phishing)
- vCard QR Code
- Short URL / Redirect URL
- UTM Parameter
- Scan Analytics
- Smart Redirect
- Retargeting Pixel
- Campaign QR Code
- Payload
- Mask Pattern
- Alignment Pattern
- Timing Pattern
- Data Capacity
- GS1 Digital Link
- Micro QR Code
- QR Code with Logo
Dynamic QR Code
A dynamic QR code encodes a short URL owned by the QR platform (e.g., qrlynx.com/s/abc123) rather than your final destination URL. When scanned, the platform looks up the current destination and redirects the phone to it. That indirection is what makes the QR code editable after it's printed — change the destination in the dashboard, and every existing printed code immediately points to the new URL.
Dynamic codes are the only way to get scan analytics (location, device, time) and the only way to fix a typo, swap a campaign, or rotate a menu without reprinting. Static codes can do none of those because the destination URL is baked directly into the QR pattern.
See also: Static QR Code, Dynamic URL QR Code generator.
Static QR Code
A static QR code has the destination URL baked directly into its pixel pattern. Scan it, and the phone reads the exact URL from the code itself — there's no server lookup in between. That means static codes work forever, don't depend on any platform staying online, and have zero ongoing cost.
The trade-off: you can't change the destination after printing, and you can't track scans (because the code never hits your server). Static codes are the right choice when the URL will never change — a personal website, a vCard, a hardcoded WiFi password. Any time the URL might change, use a dynamic code instead.
Error Correction Level (L, M, Q, H)
Error correction level determines how much of a QR code can be damaged, dirty, or covered before it stops scanning. The ISO/IEC 18004 specification (originally from Denso Wave) defines four levels:
- Level L (Low) — survives ~7% damage. Smallest/densest code. Best when the code lives in clean, controlled environments (digital displays, packaging inserts).
- Level M (Medium) — survives ~15% damage. The default for most generators. Good balance of density and resilience.
- Level Q (Quartile) — survives ~25% damage. Use for printed marketing, outdoor signs, anything that might get dirty or scuffed.
- Level H (High) — survives ~30% damage. Required when you put a logo in the center, because the logo itself counts as damage. Always use H for branded QR codes.
Higher error correction means more data modules, which means a denser/larger code for the same data. A QR code with a logo and level H is typically 15-20% larger than the same data at level L.
Under the hood, error correction uses Reed-Solomon codes — the same math used in CDs, DVDs, and satellite transmissions.
Quiet Zone
The quiet zone is the blank space around a QR code. The ISO/IEC 18004 spec mandates a quiet zone at least 4 modules wide on every side (a "module" is one of the small squares in the code). Without this margin, scanning apps can't reliably find the edges of the pattern and the code fails to scan.
Designers often trim or eliminate the quiet zone to "tighten up" a layout — this is the single most common reason QR codes fail in the wild. If you remember one QR code design rule, remember this one: never reduce the quiet zone below 4 modules, no matter how tight the layout gets.
Learn more: QR Code Design — ISO 18004 Quiet Zone, Contrast & Scannability Rules.
Module
A module is one cell of a QR code — one of the small black-or-white squares that make up the overall pattern. The entire QR code is a grid of modules, and its size is always described in modules rather than pixels (because pixel size depends on how you render it).
A Version 1 QR code is 21 × 21 modules (441 total). Each additional version adds 4 modules in each dimension — so Version 2 is 25 × 25, Version 3 is 29 × 29, all the way up to Version 40 at 177 × 177.
When printing, the module size (in millimeters or inches) determines scan distance — a common rule of thumb is the smallest module should be at least 10× larger than the pixel size of the scanning camera at the intended distance.
QR Version
A QR version is the size class of a QR code. There are 40 defined versions in the ISO 18004 spec:
- Version 1 — 21 × 21 modules. Holds up to ~25 alphanumeric characters at error correction L.
- Version 10 — 57 × 57 modules. Holds ~395 characters.
- Version 40 — 177 × 177 modules. Holds up to ~4,296 alphanumeric characters — but at this size, you need a print area of several centimeters for reliable scanning.
Most generators auto-pick the lowest version that fits your data at the selected error correction level. Keep your encoded URL short (use a dynamic QR code) to stay at a low version — lower versions scan faster and from further away.
Finder Pattern
The finder patterns are the three distinctive square-in-a-square-in-a-square shapes you see in three corners of every QR code (top-left, top-right, bottom-left). Their exact structure is a 7×7 block with specific black/white ratios (1:1:3:1:1) — this ratio is intentionally unlikely to appear in random imagery, so scanners can locate a QR code quickly.
Because there are three of them, a scanner can figure out the rotation and perspective of the code even if you hold your phone at an angle. The bottom-right corner is left intentionally blank of a finder pattern, which is how scanners know which way is "up."
Reed-Solomon Codes
Reed-Solomon is the error-correcting code underlying QR code's ability to still scan when partially damaged. Invented in 1960 by Irving Reed and Gustave Solomon, it's a type of mathematical redundancy that lets a decoder reconstruct the original data even when some symbols are missing or corrupted.
QR codes store both the real data and Reed-Solomon parity symbols. The ratio of data to parity is controlled by the error correction level — level H adds enough parity to tolerate 30% damage. Reed-Solomon is also what powers error correction in CDs, DVDs, Blu-ray discs, and deep-space satellite communication — so it's battle-tested mathematics.
ISO/IEC 18004
ISO/IEC 18004 is the formal international specification that defines what a QR code is. The current version is ISO/IEC 18004:2024, maintained by the International Organization for Standardization. It specifies every aspect of the code: the 40 versions, the four error correction levels, the finder patterns, the quiet zone width, the mask patterns, and the Reed-Solomon parameters.
QR code was originally invented in 1994 by Denso Wave, a subsidiary of the Denso automotive supplier, to track car parts on assembly lines. Denso Wave chose not to enforce patents, which is why QR codes are royalty-free to generate and scan today. Read the ISO/IEC 18004 spec on iso.org.
Quishing (QR Phishing)
Quishing is short for "QR phishing" — a social-engineering attack where a malicious QR code sends scanners to a fake website designed to steal credentials, deliver malware, or intercept payments. Common attack vectors include fake restaurant menu QRs with a sticker placed over the real one, fraudulent parking meter QRs that take payment but never record it, and phishing emails containing a QR code instead of a clickable link (which bypasses most link-scanning email filters).
The FBI issued a formal advisory about quishing in 2022, and reported cases have risen sharply since. Always: (1) inspect the URL your scanner previews before tapping, (2) never scan QR codes stuck over other QR codes, (3) be suspicious of QR codes in unsolicited emails.
Full guide: QR Code Scams & Quishing Explained — 4-Step Verify Checklist.
vCard QR Code
A vCard QR code encodes contact information in the vCard 3.0 or 4.0 format (the same format .vcf attachments use). When scanned, the phone recognizes the vCard structure and offers to save the contact directly — no copy/paste, no re-typing.
vCard QR codes encode a lot of data (name, multiple phone numbers, email, company, title, address, website, photo, note) and therefore tend to be dense — often Version 10+ at error correction level H. For business-card-sized prints, use a dynamic QR code pointing to a hosted vCard file instead — smaller code, easier to scan, editable after printing.
Short URL / Redirect URL
A short URL (also called a redirect URL or tracking URL) is what's actually encoded inside a dynamic QR code. It's a short link owned by the QR platform — for example, qrlynx.com/s/abc123 — that forwards the scanner to whatever destination is currently set in your dashboard.
Short URLs are what enable three key dynamic-QR features: (1) editable destinations — change the target URL without reprinting, (2) scan analytics — the platform sees every request and can log location, device, timestamp, and (3) A/B testing — route different scanners to different destinations based on device type, time of day, or campaign rules.
UTM Parameter
UTM parameters are standardized URL query strings that tell analytics tools where a visitor came from. They're appended to any URL (including QR destination URLs) and tracked automatically by Google Analytics 4, Mixpanel, and almost every marketing analytics product.
The five canonical UTM parameters: utm_source (e.g., qr_flyer), utm_medium (e.g., print), utm_campaign (e.g., spring_2026), utm_content (which specific QR code), and utm_term (optional keyword). A QR code destination with UTMs looks like example.com/promo?utm_source=qr_flyer&utm_medium=print&utm_campaign=spring_2026.
UTMs are the standard way to attribute offline QR scans to online conversions. Our free UTM Builder tool generates valid UTM URLs in one click.
Scan Analytics
Scan analytics are the data points captured every time someone scans a dynamic QR code. Because dynamic codes resolve through the platform's servers, every scan triggers an HTTP request that the platform can log. Typical fields include: approximate location (derived from IP), device type (mobile/tablet/desktop), operating system, browser, scan timestamp, and the user's referring context (if any).
Scan analytics do not identify the individual scanning — the platform only sees what any website sees from a visitor: aggregate device/geography data, not personal identity. Static QR codes have zero scan analytics because the phone goes directly to the destination without hitting the platform.
QRLynx includes 30-day analytics on every free plan (including one-time scans), with device, OS, and country-level location data visible in your dashboard.
Smart Redirect
Smart redirects let a single QR code send different scanners to different destinations based on rules you set. Common rule types:
- Device routing — iOS → App Store, Android → Google Play, desktop → website.
- Time-based — morning menu vs evening menu, happy-hour pricing, holiday promos.
- Geo-based — localize by country/region (Pix in Brazil, UPI in India, Venmo in the US).
- Scan-count — first-time scanners see onboarding, repeat scanners skip it.
- Language — route to
/esor/frbased on browser Accept-Language.
Smart redirects eliminate the need to print multiple QR codes for multiple audiences — one code, many destinations, all controllable from the dashboard. On QRLynx, this is a Pro feature (smart redirect rules).
Retargeting Pixel
A retargeting pixel is a 1×1 image or JavaScript snippet from an ad platform (Meta, Google Ads, TikTok, LinkedIn) that fires when someone visits a page — or, in the QR context, when someone scans your dynamic code. Once fired, that visitor is added to a custom audience you can later show ads to, even after they've left your site.
Retargeting via QR turns offline scans into online ad audiences. Someone scans your restaurant's menu QR → Meta adds them to your "restaurant visitors" audience → you can now serve them Instagram ads for the dinner special next week.
On QRLynx this is a Business-tier feature (retargeting pixels for QR codes).
Campaign QR Code
A campaign QR code isn't a different technology — it's a dynamic QR code configured with campaign-specific UTM parameters and tracked as a single attributable asset. The purpose: tie offline scans to online outcomes (signups, purchases, leads) for one specific campaign — a print flyer batch, a trade-show booth, a direct-mail run — so you can calculate ROI per campaign.
Best practice: one QR code per campaign asset. A flyer with 1,000 prints and a different flyer with 500 prints get different QR codes (and different UTM content tags) so you can tell which print run drove more revenue. Combine with a smart redirect to rotate offers mid-campaign without reprinting.
Payload
The payload is the data encoded in a QR code — whatever the QR pattern actually represents when decoded. It can be any string up to the version/error-correction limit: a URL (most common), plain text, WiFi credentials (WIFI:T:WPA;S:network;P:pass;;), a vCard, a calendar event (VEVENT format), an email (mailto:), a phone number (tel:), or a payment URI (bitcoin:, upi://).
Phone scanners recognize common payload formats and offer appropriate actions — tap to connect WiFi, tap to save contact, tap to open email. This is why the encoded format matters as much as the content: a URL-formatted QR is different from a plain-text QR even if both encode the same characters.
Mask Pattern
A mask pattern is an XOR pattern applied to the data modules of a QR code to break up problematic visual patterns that would otherwise confuse scanners. The ISO 18004 spec defines 8 possible mask patterns (numbered 0–7), and the encoder picks whichever one scores best against a penalty function — penalties are applied for runs of same-colored modules, 2×2 same-colored blocks, finder-pattern-like sequences in the data area, and imbalanced ratios of dark to light modules.
Mask pattern selection is one of the steps that makes two QR codes encoding the same data look visually different — the encoder may pick a different mask each time.
Alignment Pattern
Alignment patterns are small 5×5 square-in-a-square patterns placed at fixed positions in QR codes Version 2 and larger. They supplement the three large finder patterns by giving scanners extra reference points to correct for perspective distortion — the warping that happens when a phone camera isn't perfectly parallel to the code.
Version 1 codes (21×21) have no alignment patterns. Version 2 has 1. By Version 25, there are 16 alignment patterns scattered across the code. More alignment patterns mean more resilience to curved surfaces (cans, bottles, rounded packaging) and extreme viewing angles.
Timing Pattern
The timing pattern is the alternating black-and-white single-module line connecting the three finder patterns — one horizontal between the top finders and one vertical between the left finders. It's always one module wide.
The timing pattern gives scanners a grid reference — by counting the alternations, a scanner can figure out the module size and the total grid dimensions, which is how it knows which QR version it's reading. Without the timing pattern, every module could drift relative to the next and the code would be unreadable at angles.
Data Capacity
Data capacity is how much data a QR code can encode. It depends on four things: the version (1–40), the error correction level (L/M/Q/H), the encoding mode (numeric, alphanumeric, byte, Kanji), and how compressible the payload is.
Approximate ceilings at the biggest version (40):
- Numeric: ~7,089 digits at level L, ~3,057 at level H
- Alphanumeric: ~4,296 chars at level L, ~1,852 at level H
- Byte (UTF-8 / binary): ~2,953 bytes at level L, ~1,273 at level H
In practice, anything over Version 15 (77×77 modules) becomes visually dense and hard to print reliably at small sizes. For URLs longer than ~120 characters, always switch to a dynamic QR code (which encodes a short URL instead of the full target).
GS1 Digital Link
GS1 Digital Link is a URL-based standard from GS1 (the organization behind UPC and EAN barcodes) that unifies retail barcode identification with consumer-scannable web content. A GS1 Digital Link QR code encodes a URL that a point-of-sale system can parse as a GTIN (global trade item number) and a consumer can scan to land on a product page.
The format looks like https://example.com/01/09506000134352 — the 01 is the application identifier for GTIN, followed by the actual product number. By 2027, GS1 plans to replace legacy UPC barcodes with GS1 Digital Link QR codes on retail packaging globally — a massive industry shift underway right now.
Micro QR Code
Micro QR is a smaller variant of the QR code, also defined in ISO/IEC 18004. It comes in four versions (M1, M2, M3, M4), ranging from 11×11 to 17×17 modules. Micro QR codes use a single finder pattern instead of three, and omit the timing patterns — this saves space but also means less data capacity (M4 maxes out at ~21 alphanumeric characters at level L).
Use cases: small electronic components, medication blister packs, jewelry tags, anywhere physical space is extremely limited. Scanner support is universal on modern iOS/Android but spottier on legacy dedicated barcode scanners.
QR Code with Logo
A QR code with a logo is a standard QR code with a small image (typically 15–25% of the code's width) overlaid in the center. Phones can still scan it because the surrounding modules contain enough Reed-Solomon redundancy to reconstruct the data hidden under the logo — provided you've used the right error correction level.
Rules:
- Always use error correction level H (30% damage tolerance). Levels L, M, or Q will often fail to scan once a logo is applied.
- Keep the logo ≤25% of code width. Larger logos consume too many modules for even level H to recover.
- Keep the logo centered — don't place it over the corner finder patterns or the timing pattern.
- Test scan with 3+ phones before printing at scale.
Full guide: QR Code with Logo — step-by-step tutorial.
Need more than a definition?
By Ahmad Tayyem · Last updated: