ExplainerJun 26, 2026 · 7 min read

What Is a QR Code? How It Works, Types, and How to Use One

A clear explanation of how QR codes work, the difference between static and dynamic QR, when to use each type, and how to create and scan one for free.

The short answer

A QR code is a type of matrix barcode, a two-dimensional grid of black and white squares that encodes information. A phone camera decodes it in under a second and acts on the result: opens a URL, joins a WiFi network, saves a contact, opens a chat, or anything else the code encodes. Quick Response is the original intent, and modern phones deliver on that.

How a QR code stores information

The black and white squares are arranged in a pattern that encodes data in binary. The three large square markers in the corners (called finder patterns) let the camera locate and orient the code from any angle. A smaller alignment pattern helps correct for perspective distortion. The rest of the grid holds the encoded data, plus error-correction modules that let a partially obscured code still scan correctly.

QR codes have four error-correction levels: L (7%), M (15%), Q (25%), and H (30%). Level H is what allows you to place a logo in the center and still have the code scan reliably, because up to 30% of the pattern can be obscured or damaged.

Static vs. dynamic QR codes

This is the most important distinction for anyone using QR codes professionally.

A static QR code encodes your data directly inside the pattern. If you encode a URL, the URL is baked into the squares. This means the code is permanent (it works forever with no server), free to generate, and cannot be changed after printing. If the destination URL changes, you must reprint.

A dynamic QR code encodes a short redirect URL hosted on a service (like QRSprint). When scanned, the phone opens the redirect URL, which instantly forwards to wherever you currently point it. This has two major benefits: you can change the destination anytime without reprinting, and every scan is logged, giving you per-scan analytics (count, city, device, time of day).

Use static QR for: WiFi passwords, vCard contacts, plain text, anything that will not change. Use dynamic QR for: marketing materials, product packaging, print campaigns, anywhere you want the ability to update the destination or see scan data.

Common QR code types

  • URL QR: The most common. Encodes a website address. Scan opens the link in the phone's browser.
  • WiFi QR: Encodes network name, security type, and password. Scan connects the phone without typing.
  • vCard QR: Encodes a contact card with name, phone, email, company, and address. Scan prompts to save the contact.
  • WhatsApp QR: Encodes a wa.me link with a phone number and optional pre-filled message. Scan opens WhatsApp directly.
  • Email QR: Encodes a mailto: link with recipient, subject, and body pre-filled.
  • Location QR: Encodes GPS coordinates. Scan opens Google Maps or Apple Maps with the pin dropped.
  • App download QR: Encodes a smart link that routes to the App Store on iPhone and the Play Store on Android.
  • Security QR: A private in-app call is triggered when the code is scanned. The owner's phone number is never shown. Used for lost and found items, vehicles, and pets.

What can a QR code contain?

In terms of raw capacity: up to about 4,296 alphanumeric characters, or 7,089 numeric digits, or 2,953 bytes of binary data. In practice, the most useful encodings are:

  • A URL (most common, works for web, social, payment, and app links)
  • WiFi credentials in MECARD format (WIFI:T:WPA;S:NetworkName;P:Password;;)
  • A vCard or MECARD contact record
  • Plain text or a phone number
  • An SMS or email draft
  • A crypto payment address (Bitcoin, Ethereum, etc.)

How to create a QR code

On QRSprint, the process takes under 30 seconds for a static QR:

  1. Go to /qr and pick the type that matches your use (URL, WiFi, vCard, etc.).
  2. Fill in the data: paste the URL, enter the WiFi credentials, or fill in the contact fields.
  3. Optionally upload a logo and change colors.
  4. Click Download PNG or SVG. No account, no watermark.

For a dynamic QR, create a free account first, then follow the same steps with the Dynamic toggle turned on.

How to scan a QR code

On an iPhone running iOS 11 or later: open the Camera app, point it at the QR code, and tap the banner that appears. On an Android phone running Android 9 or later: open the Camera app and a QR banner should appear automatically. If your camera does not detect QR codes, open Google Lens (available on all Android phones) or install a QR scanner app from the Play Store.

QR code security considerations

Quishing (QR phishing) is a growing attack where malicious QR codes point to phishing sites. Before scanning a QR code in a public place, especially on a sticker placed over an existing sign or a QR at a payment terminal, check whether the physical placement looks tampered with. Most modern QR scanners show the URL before opening it, giving you a second to verify the domain.

For your own QR codes: a Security QR from QRSprint never exposes your real phone number to the scanner, because contact happens through an in-app relay rather than a direct call.

How long does a QR code last?

Static QR codes last forever. They require no server and have no expiry mechanism. The code will work as long as the destination it points to (a URL, for example) remains active. Dynamic QR codes depend on the redirect service (QRSprint or any other) remaining operational. When evaluating a dynamic QR service, check their track record and whether they charge for existing codes separately from new generation.

Free QR Generator

Generate any QR code free — right now

URL, WiFi, WhatsApp, vCard, UPI, and 15 more types. No signup for static QR. Download PNG or SVG.

Make a free QR code

Want to edit it after printing and track every scan?

Dynamic QR

Dynamic QR codes live in the QRSprint app

Change the destination any time without reprinting. See every scan: count, city, device, time. Security QR rings your phone when someone scans — your number stays private.