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
- 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.
URL
Link to any website, landing page, or web resource.
Format
https://example.com/path?query=valueExample
https://webtoolsplanet.com/generator/qr-code-generatorPlain 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:VCARDExample
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:VCARDVERSION: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%20codeSubject 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:+919876543210Include 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%20codeThe 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.
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=INRpa: 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+DelhiLatitude 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:VCALENDARExample
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:VCALENDARDTSTART 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 yearsNo 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.pdfExample
https://example.com/menu/restaurant-menu-2026.pdfThis 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 →
