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.

Quick navigation

  • URLLink to any website, landing page, or web resource.
  • WiFiConnect 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.
  • SMSOpen an SMS compose window with a pre-filled number and optional message.
  • WhatsAppOpen a WhatsApp chat with a pre-filled message.
  • UPI PaymentInitiate 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 TextEncode arbitrary text — notes, codes, instructions, serial numbers.
  • PDF / Document URLLink to a hosted PDF, doc, or file.

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:raj@acme.com
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:hello@example.com?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:<YYYYMMDDTHHmmSS>
DTEND:<YYYYMMDDTHHmmSS>
LOCATION:<venue>
DESCRIPTION:<details>
END:VEVENT
END:VCALENDAR

Example

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

DTSTART and DTEND use local time format (YYYYMMDDTHHmmSS, no Z suffix) — the calendar app interprets them in the scanning device's local timezone. 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.

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

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

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 →