WebToolsPlanet

QR Code Payload Format Reference

Every QR payload URI format with field rules and copy-ready examples.

QR codes encode plain strings — the format of that string determines what action a scanner takes. This reference covers every major payload format used by our QR Code Generator, with the exact syntax, field rules, and a working example for each.

Working on a QR cluster?

Open the QR tools hub for the main static QR generator, WhatsApp QR, vCard QR, PDF QR, menu QR, form QR, WiFi QR, UPI QR, branded logo QR, print-prep tools, and scan reliability helpers.

Quick navigation

  • URL — Link to any website, landing page, or web resource.
  • WiFi — Connect to a WiFi network without typing the password.
  • vCard (Contact) — Share contact details — name, phone, email, company, address, website.
  • Email (mailto) — Open a pre-addressed email compose window on scan.
  • Phone (tel) — Dial a phone number directly on scan.
  • SMS — Open an SMS compose window with a pre-filled number and optional message.
  • WhatsApp — Open a WhatsApp chat with a pre-filled message.
  • UPI Payment — Initiate a UPI payment — pre-fills UPI ID, name, and optional amount.
  • Location (geo) — Open a map at specific coordinates on scan.
  • Calendar Event (iCalendar / VEVENT) — Add an event to the user's calendar on scan.
  • Plain Text — Encode arbitrary text — notes, codes, instructions, serial numbers.
  • PDF / Document URL — Link to a hosted PDF, doc, or file.
  • Restaurant Menu URL — Link to a hosted menu page, PDF menu, or ordering page.
  • Feedback / Google Form URL — Link to a Google Form, survey, RSVP, registration, or feedback form.

URL

Link to any website, landing page, or web resource.

Format

https://example.com/path?query=value

Example

https://webtoolsplanet.com/generator/qr-code-generator

Plain HTTPS URL — no special encoding required. HTTP URLs work but HTTPS is preferred for trust. Do not omit the scheme (https://) — bare domain names may not be recognised by all scanners.

WiFi

Connect to a WiFi network without typing the password.

Format

WIFI:T:<security>;S:<SSID>;P:<password>;H:<hidden>;;

Example

WIFI:T:WPA;S:CafeGuest;P:welcome2024;H:false;;

T: security type — WPA, WEP, or nopass. S: network name (SSID). P: password (omit for open networks). H: true if SSID is hidden. Special characters in SSID or password (semicolon, backslash, comma, colon, double-quote) must be escaped with a backslash.

vCard (Contact)

Share contact details — name, phone, email, company, address, website.

Format

BEGIN:VCARD
VERSION:3.0
N:<last>;<first>;;;
FN:<display name>
ORG:<company>
TITLE:<job title>
TEL;TYPE=CELL:<phone>
EMAIL:<email>
URL:<website>
ADR;TYPE=WORK:;;;<street>;<city>;<state>;<zip>;<country>
END:VCARD

Example

BEGIN:VCARD
VERSION:3.0
N:Sharma;Raj;;;
FN:Raj Sharma
ORG:Acme Ltd
TITLE:Product Designer
TEL;TYPE=CELL:+919876543210
EMAIL:[email protected]
URL:https://acme.com
END:VCARD

VERSION:3.0 is the most widely supported version. All fields except N and FN are optional. Phone numbers should include country code (+91 for India). Payload grows large with many fields — use error correction M or higher.

Email (mailto)

Open a pre-addressed email compose window on scan.

Format

mailto:<address>?subject=<subject>&body=<body>

Example

mailto:[email protected]?subject=Hello&body=I%20scanned%20your%20QR%20code

Subject and body must be URL-encoded (spaces → %20). All fields except the address are optional. Works in any email client app.

Phone (tel)

Dial a phone number directly on scan.

Format

tel:<phone number>

Example

tel:+919876543210

Include country code with + prefix for international compatibility. Spaces and dashes are stripped by phone apps. On iOS and Android, tapping the QR opens the dialer with the number pre-filled.

SMS

Open an SMS compose window with a pre-filled number and optional message.

Format

sms:<phone number>?body=<message>

Example

sms:+919876543210?body=Hello%2C%20I%20saw%20your%20QR%20code

The body parameter must be URL-encoded. The separator between number and body varies by platform: iOS uses &body=, Android may use ?body= or ;body=. Our generator uses the cross-platform compatible format.

WhatsApp

Open a WhatsApp chat with a pre-filled message.

Format

https://wa.me/<phone>?text=<message>

Example

https://wa.me/919876543210?text=Hello%21%20I%20scanned%20your%20QR%20code.

Phone number must include country code without the + prefix (e.g., 91 for India). Message must be URL-encoded. wa.me is the official WhatsApp deep link — it opens the WhatsApp app on mobile and WhatsApp Web on desktop.

UPI Payment

Initiate a UPI payment — pre-fills UPI ID, name, and optional amount.

Format

upi://pay?pa=<UPI_ID>&pn=<payee name>&am=<amount>&cu=INR&tn=<note>

Example

upi://pay?pa=merchant@okaxis&pn=Ram%20General%20Store&am=100.00&cu=INR

pa: payee address (UPI ID). pn: payee name (URL-encoded). am: amount in decimal — omit for open-amount. cu: currency code, always INR for India. tn: optional transaction note. Recognised by Google Pay, PhonePe, Paytm, BHIM, Amazon Pay, and all UPI apps.

Location (geo)

Open a map at specific coordinates on scan.

Format

geo:<latitude>,<longitude>?q=<query>

Example

geo:28.6139,77.2090?q=India+Gate+New+Delhi

Latitude and longitude in decimal degrees. The q parameter is an optional place name that improves the map label. On Android, opens Google Maps. On iOS, opens Apple Maps (Google Maps if installed). Alternatively use a short Google Maps URL for consistent cross-platform behavior.

Calendar Event (iCalendar / VEVENT)

Add an event to the user's calendar on scan.

Format

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
SUMMARY:<event title>
DTSTART;TZID=<IANA timezone>:<YYYYMMDDTHHmmSS>
DTEND;TZID=<IANA timezone>:<YYYYMMDDTHHmmSS>
LOCATION:<venue>
DESCRIPTION:<details>
END:VEVENT
END:VCALENDAR

Example

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Product Launch
DTSTART;TZID=Asia/Kolkata:20260601T090000
DTEND;TZID=Asia/Kolkata:20260601T110000
LOCATION:Taj Hotel Bangalore
DESCRIPTION:Annual product launch event
END:VEVENT
END:VCALENDAR

DTSTART and DTEND use local time format with an IANA timezone such as Asia/Kolkata or America/New_York. DTSTART is required; DTEND and other fields are optional. iOS prompts to add the event to Calendar. Android behaviour varies by installed calendar app.

Plain Text

Encode arbitrary text — notes, codes, instructions, serial numbers.

Format

<any plain text string>

Example

Serial: SN-2026-00142
Warranty: 2 years

No special format or prefix. Scanners display the raw text. Payload size limit: QR version 40 supports up to 2953 bytes of binary data or 4296 alphanumeric characters. Text QR codes are commonly used for offline labels, asset tags, and printed reference cards.

PDF / Document URL

Link to a hosted PDF, doc, or file.

Format

https://example.com/path/to/document.pdf

Example

https://example.com/menu/restaurant-menu-2026.pdf

This is a plain URL pointing to the hosted file. On mobile, the browser will open the PDF in-app or prompt to download. Ensure the URL is publicly accessible without authentication. Use a URL shortener or custom domain for cleaner presentation in the QR.

Feedback / Google Form URL

Link to a Google Form, survey, RSVP, registration, or feedback form.

Format

https://forms.gle/<form-id>

Example

https://forms.gle/example-feedback-form

The QR code stores only the form URL. Responses and permissions remain controlled by Google Forms or your chosen form platform. Test access from a signed-out phone before printing.

Payload size limits

QR code data capacity depends on the version (1–40) and error correction level. Higher error correction reduces data capacity. Practical limits for common formats:

  • Numeric only: up to 7,089 characters (version 40, error correction L)
  • Alphanumeric: up to 4,296 characters
  • Binary / UTF-8: up to 2,953 bytes
  • vCard with many fields: can exceed 500 bytes — use error correction M or Q
  • WiFi with long password: typically 60–120 bytes — well within limits
  • Module grid size: version 1 is a 21×21 module grid; each version adds 4 modules per side, up to 177×177 at version 40
  • Micro QR codes: a separate, smaller format (11×11 to 17×17 modules) with lower capacity — most consumer scanners only support standard QR, so use it only if you control the scanning app

Encoding rules

  • URL query string values must be percent-encoded (space → %20, # → %23)
  • WiFi SSID and password: escape semicolon, backslash, comma, colon, and double-quote with a backslash
  • vCard values with commas or semicolons must be quoted or escaped
  • iCalendar event timestamps use local time format: YYYYMMDDTHHmmSS (no Z suffix — the scanning device applies its own timezone)
  • UPI amounts must use decimal notation with two decimal places: 100.00

FAQ

How much data can a QR code store?

A QR code's capacity depends on its version (1–40) and error correction level. At the maximum size (version 40, error correction L), a QR code holds up to 7,089 numeric characters, 4,296 alphanumeric characters, or 2,953 bytes of binary/UTF-8 data. Higher error correction levels (M, Q, H) trade capacity for damage resistance, so a code with a logo overlay or expected wear typically holds noticeably less than the theoretical maximum.

How small can a QR code be and still scan reliably?

For print, keep a QR code at least 0.8–1 inch (2×2 cm) per side, and larger if it will be scanned from more than arm's length away — a common rule of thumb is roughly 1 inch of QR code size per 10 feet of scanning distance. Below about 0.8 inches, phone cameras struggle to resolve individual modules, especially on codes with higher data density or a logo overlay.

What is a QR code 'version' (e.g. version 10, version 40)?

QR code version refers to the size of the module grid, not a revision number. Version 1 is a 21×21 module grid; each version up adds 4 modules per side, up to version 40 at 177×177 modules. Higher versions store more data but need more physical space and a higher-resolution scan to read reliably — most real-world QR codes (URLs, WiFi, contact cards) fall between version 3 and version 10.

What is the minimum print size for a QR code?

There's no fixed minimum in the QR spec itself — it depends on module count and printer/scanner resolution. As a practical floor, don't print a QR code smaller than about 0.8 inches (2 cm) per side at 300 DPI, and test-scan the actual printed output before mass-producing labels, packaging, or signage.

What is the quiet zone on a QR code, and why does it matter?

The quiet zone is the blank margin of at least 4 modules required on all four sides of a QR code. Scanners use it to detect where the code starts and ends; cropping or overprinting into the quiet zone is one of the most common reasons an otherwise-undamaged QR code fails to scan.

What is QR code masking?

Masking is an internal step in QR code generation that XORs the data pattern with one of eight fixed mask patterns to avoid large blocks of same-color modules, which would otherwise confuse a scanner's image-recognition algorithm. It's applied automatically by any QR generator — not something you configure manually.

Is a QR code the same as a barcode?

No. A traditional barcode is 1D — data is encoded only in the width of vertical bars, typically a short numeric ID. A QR code is 2D, encoding data in both directions across a grid of square modules, which lets it hold far more data (URLs, contact cards, WiFi credentials) and include error correction that lets it survive partial damage.

How many possible QR codes are there?

The number depends on the QR version and encoding mode used, but at the largest version (40) the possible combinations are so large that practical exhaustion is never a real-world concern. In everyday use, the limit that matters is how much data you're trying to encode into a single code, not how many unique codes could theoretically exist.

Ready to generate a QR code?

Use the free QR Code Generator to create any of these formats — no account, no watermark, PNG and SVG export.

Open QR Code Generator →