Chapters
Chapter 1: What is a QR code?
A QR code (short for "Quick Response" code) is a two-dimensional barcode that stores data in a grid of black and white squares called modules. When you point a smartphone camera at one, the phone's camera reads the pattern, decodes it using the QR specification, and translates it back into the original data - usually a URL, some plain text, or a structured payload like a contact card or WiFi credential.
The format was invented in 1994 by Masahiro Hara at the Japanese company Denso Wave, originally to track automotive parts on Toyota assembly lines. Traditional 1D barcodes could only store about 20 characters; QR codes can store several thousand, and they can be scanned at any angle. Denso Wave chose not to enforce the QR patent, which is why the format spread so widely - there are no licensing fees to pay, ever.
QR codes are formally defined by the ISO/IEC 18004 standard. Every QR code generator in the world, including free browser tools and expensive enterprise suites, produces codes that conform to the same specification. The pattern a tool generates for https://example.com is interchangeable with what any other tool produces.
Since iOS 11 (2017) and Android 9 (2018), smartphone cameras have supported QR code scanning natively - no special app needed. This removed the single biggest friction point in consumer adoption and is the reason QR codes exploded in mainstream use between 2020 and 2026.
Want the numbers? Our QR Code Statistics 2026 post has 35+ cited stats on usage, adoption, payments, and growth forecasts.
Chapter 2: Types of QR codes (by data)
A QR code can hold almost any kind of data, but a few structured formats have emerged as conventions. When a smartphone recognizes one of these formats, it offers a relevant action instead of just showing the raw text. These are the ten types worth knowing about.
1. URL / website link
The most common type. The code contains a URL (e.g. https://example.com) and scanning it opens the link in the phone's browser. Good for print-to-digital campaigns, product packaging, menus, and business cards.
2. Plain text
The code contains arbitrary text that the phone displays after scanning. Useful for serial numbers, instructions, or short messages that don't need a URL.
3. Email
Encodes a mailto: link, optionally with a pre-filled subject and body. Scanning opens the phone's email app ready to send. Good for customer support contact codes.
4. Phone number
Encodes a tel: link. Scanning opens the phone dialer with the number pre-filled. One tap to call.
5. SMS
Encodes an SMSTO: link with a recipient number and optional message body. Common for opt-in marketing flows and "text this keyword" campaigns.
6. WiFi credentials
Encodes an SSID, password, and encryption type using the WIFI: format. Scanning prompts the phone to join the network. Great for guest WiFi in cafes, offices, rental properties, and event venues.
7. vCard (digital business card)
Encodes a full contact card - name, phone, email, company, address, website - using the vCard format. Scanning offers to save the contact. Replaces paper business cards.
8. Calendar event
Encodes an iCalendar event with title, location, start and end times. Scanning offers to add the event to the phone's calendar. Common on event posters and invitations.
9. GPS location
Encodes a latitude/longitude using the geo: URI. Scanning opens the phone's map app pointing to the location. Used for venue directions, real estate signs, and trailheads.
10. Social profile
A URL-type code pointing to a social media profile (Instagram, LinkedIn, TikTok, etc.). Technically just a URL code, but pre-configured generators make it easier to build.
A good QR code generator supports all ten of these out of the box. If you're stuck typing raw vCard syntax by hand, you're using the wrong tool.
Chapter 3: Static vs dynamic QR codes
This is the single most important distinction in the QR code world, and most buyers don't understand it until they've been billed. Every QR code you'll ever see is one of these two things.
Static QR codes
A static QR code contains the destination data directly inside the code pattern. If the code encodes https://yourbrand.com, then the pattern itself is a visual representation of those characters. When scanned, the phone decodes the pattern, gets the URL, and opens it. There is no middleman, no server, no account required. The code works today, in 10 years, and in 100 years. It's free to generate and free to use forever.
Dynamic QR codes
A dynamic QR code contains a short redirect URL pointing to a third-party server. The pattern might encode something like https://qr-provider.com/abc123. When scanned, the phone hits the provider's server, and the server looks up where the code is "supposed" to go, then forwards the user to the real destination. This extra hop is what makes two features possible: you can edit the destination after printing, and you can collect analytics on each scan.
The catch: if the provider's server goes down, changes ownership, or simply decides to start charging more, every printed dynamic code stops working. A dynamic QR code that was printed on 10,000 flyers becomes a dead link the day the subscription lapses.
| Feature | Static | Dynamic |
|---|---|---|
| Works forever | Yes | Only while subscription active |
| Editable after printing | No | Yes |
| Scan analytics | No | Yes |
| Subscription required | Never | $5 to $50+/mo |
| Third-party dependency | None | Provider server |
| Works offline | Yes | Needs internet |
For most real-world use cases - WiFi codes, vCards, product packaging, tombstone URLs that won't change - static is the safer choice. Use dynamic codes only when you actually need the editability or the analytics, and when you're confident the campaign won't outlive your subscription.
Going deeper on this: Read our full guide to QR codes that never expire for a longer breakdown of why subscription codes break and how to avoid it.
Chapter 4: How to create a QR code (step by step)
Creating a QR code takes under two minutes. Here's the full process from blank browser tab to exported file.
- Open a QR code generator. Any browser-based tool works - desktop, phone, or tablet.
- Pick your data type. URL, WiFi, vCard, email, SMS, plain text, and so on. This determines how the scanning phone will interpret the code.
- Enter your content. Type or paste the URL, contact details, or text. The preview should update live as you type. If it doesn't, use a better tool.
- Customize the design (optional). Change foreground and background colors, upload a logo, and pick an error correction level. See Chapter 5 for the details.
- Test the scan. Before exporting, always test the code with your phone camera. Point it at the preview on your screen and make sure it resolves to the right destination. Do this even if you're in a hurry - printing 500 posters with a broken QR code is a very expensive mistake.
- Export in the right format. PNG for standard digital use, HD PNG (1024 pixels or higher) for printing, SVG for anything that needs to scale (billboards, vector design files, vehicle wraps).
That's it. Total time: roughly 60 to 90 seconds once you know what you're doing.
Want to skip ahead and start making codes?
QR Code Pro Generator does all ten data types, custom colors, logos, HD export, and bulk CSV. One-time $29, no subscription, works offline.
Try QR Code Pro - $29 →Chapter 5: Customization and logos
Every QR code has three visual dimensions you can customize without breaking the scan: color, logo placement, and error correction level. These interact with each other, so it's worth understanding all three at once.
Colors
The rule is contrast. A QR scanner reads the pattern by detecting the difference between "dark" modules and "light" modules. As long as the foreground is clearly darker than the background, almost any color combination works. Dark brand color on a white (or off-white) background is the standard and always scans.
What doesn't work: inverted codes (light modules on a dark background) scan on some phones but fail on others. Low-contrast combinations (medium gray on light gray) fail consistently. If you care about universal scannability, keep it dark-on-light.
Logo embedding
QR codes include error correction, which means a portion of the pattern can be obscured or damaged and the scanner can still reconstruct the original data. This is what lets you place a logo in the center of a QR code without breaking it. The QR specification defines four error correction levels:
- L (Low): recovers ~7% of data
- M (Medium): recovers ~15% of data
- Q (Quartile): recovers ~25% of data
- H (High): recovers ~30% of data
If you're adding a logo, always use High. Keep the logo under roughly 25% of the total code area (30% is the hard ceiling, 20% is safer), and center it. Test by scanning before committing to print.
Want a walkthrough just on this? See our guide to QR codes with logos for a deeper breakdown of sizing, placement, and common mistakes.
Chapter 6: Best practices for print and web
A QR code that scans perfectly on your laptop can fail completely in the real world if you ignore basic print and placement rules. These are the ones that actually matter.
Size
The rule of thumb is that the QR code's physical side length should be at least one tenth of the scanning distance. So a code scanned from 2 meters away should be at least 20 cm per side. A flyer held 30 cm from the face can use a 3 cm code. For billboards, size accordingly - some outdoor QR codes are meters wide.
Quiet zone
QR codes require a blank margin around the code equal to at least 4 modules in width. This "quiet zone" is part of the scanning algorithm, not a design suggestion. Don't place text, graphics, or borders inside the quiet zone. Most generators include it automatically.
Resolution
For print, export at at least 300 DPI or use an SVG (which has infinite resolution). A 1024 pixel HD PNG prints cleanly up to about 8 cm; beyond that, go SVG. Never use a screenshot of a preview - the compression artifacts can cause scan failures on low-end phones.
Contrast and lighting
Glossy surfaces are the enemy of QR codes. A code printed on a glossy magazine cover under fluorescent lights can fail to scan because of reflections. Matte finishes scan more reliably. Similarly, avoid printing QR codes on surfaces that curve sharply (unless the code is small relative to the curve radius).
Test before committing
Always scan the final printed code with at least two phones (one iOS, one Android) before ordering a run. Walk through the full user experience: scan, confirm the destination loads, confirm it's mobile-friendly. Most QR code "failures" in the wild are actually landing page failures, not code failures.
Chapter 7: Real-world use cases
The short version: almost any time a potential customer is looking at a physical surface and you want to get them to a digital destination, a QR code is the right tool. These are the patterns that work best in practice.
Restaurants and hospitality
Contactless menus, online ordering, review requests ("scan to leave us a Google review"), WiFi access for guests, tableside payment. The National Restaurant Association reported 88% of US restaurants adopted QR menus during the 2020 shift and most kept them.
Events and conferences
Ticketing, session check-ins, speaker bio lookups, vCard exchange at booths, calendar event adds, venue maps, post-event feedback forms. Trade show badges with QR codes have replaced paper business card exchanges almost entirely.
Retail and packaging
Product authentication, user manuals, warranty registration, "how to use" video links, supply chain traceability. The GS1 Sunrise 2027 initiative is pushing retailers worldwide to support next-generation QR codes at point of sale by 2027, which will accelerate this.
Marketing and advertising
Print-to-digital campaigns, out-of-home posters, TV commercials, direct mail, branded merchandise. The 2022 Coinbase Super Bowl ad (a bouncing QR code that filled the screen for 60 seconds) is credited with mainstreaming QR codes in US advertising.
Personal and small business
Business cards, portfolio links, WiFi access for guests, real estate yard signs, Etsy packaging inserts, fitness studio class signups, church bulletins, car window signs.
Bulk generation
Some use cases need hundreds or thousands of codes at once: one per product, one per table, one per serial number, one per ticket. This is where bulk CSV import matters - feed a spreadsheet in, get a zip of individually-named files out.
Need bulk? See our bulk QR code generator guide - CSV import, 10-1000 codes at a time, no subscription.
Chapter 8: Security and QR phishing ("quishing")
QR codes have one real security concern worth knowing about. It's called quishing - short for "QR phishing" - and it works like this: an attacker prints a malicious QR code and physically pastes it over a legitimate one. Common targets are parking meters, restaurant tables, and public posters. A victim scans the sticker, lands on a lookalike payment page, and enters card details. The FBI's Internet Crime Complaint Center issued a formal advisory about this in 2022.
If you're a QR code user (the person scanning), the defenses are the same as with any phishing:
- Look at the URL preview your phone shows before tapping. If it doesn't look like the expected domain, stop.
- Don't scan QR codes on physical surfaces where a sticker could plausibly have been applied by anyone (parking, public restrooms, unsupervised table tents).
- For payments especially, prefer typing the URL manually or using an app you trust.
If you're a QR code publisher (the person printing), the defenses are:
- Print the destination URL next to the QR code as plain text. Users can verify the preview matches.
- For payment or sensitive flows, laminate or physically secure the code so a sticker can't easily cover it.
- Use a branded domain for your destinations so users recognize it.
Quishing is a real but manageable risk. No credible market research firm forecasts it will cause a decline in QR code usage.
Chapter 9: Choosing a QR code generator
QR code generators fall into three categories, and picking the wrong one is the most common mistake we see.
Category 1: Free web tools
Tools like QR Code Monkey and the free tier of most online generators. Great for one-off static codes. Limitations: ads, watermarks on some, limited customization, no bulk, and the tool may disappear without warning.
Use when: you need one or two static codes and don't care about customization or branding.
Category 2: Subscription services
Tools like Beaconstac, QR Tiger, Flowcode, Uniqode (formerly Beaconstac), Scanova, and ME-QR. These charge $15 to $50 per month for dynamic codes, analytics, custom branding, and bulk features. The business model depends on codes stopping working if you cancel.
Use when: you genuinely need dynamic editing and real-time scan analytics, and you're confident you'll keep paying for the lifetime of the printed codes. Be aware that a typical user will pay $180 to $600 per year for features they use occasionally.
Category 3: One-time purchase tools
Standalone HTML tools or desktop apps you buy once and own forever. These generate unlimited static codes, support all ten data types, offer customization and bulk, and work offline. No recurring fees. QR Code Pro Generator is in this category - a $29 one-time purchase that replaces a $180-600/year subscription for most users.
Use when: you want to generate codes for your business without ongoing fees, you're comfortable with static codes, and you want the tool to keep working forever.
Compare all three categories side by side
Our full comparison page breaks down QR Code Pro vs. Beaconstac, QR Tiger, Flowcode, and the others with 3-year cost math.
Buy QR Code Pro - $29 →Chapter 10: Next steps and further reading
If you made it this far, you know more about QR codes than 99% of the people making purchasing decisions about them. A few places to go next depending on what you're trying to do:
The short summary of this entire guide: QR codes are a standardized, free, permanent technology that any good tool can produce. Subscriptions are selling you editability and analytics, not codes. For the majority of real-world use cases, a one-time static code generator is the right choice.