QR Code Payload Formatter (text / URL / WiFi / vCard)
Build the canonical text payload encoded in a QR code โ plain text, URL, WiFi-network credentials, or vCard contact. Includes a ready-to-render image URL for visual scanning.
Result
- Full payloadhttps://scoutmytool.com
- URL-encodedhttps%3A%2F%2Fscoutmytool.com
- Render link (api.qrserver.com โ free, no auth)Copy/paste into a browser tab to see and save the QR image.https://api.qrserver.com/v1/create-qr-code/?size=240x240&data=https%3A%2F%2Fscoutmytool.com
- Bytes23
- Recommended error-correction levelHigher levels make the QR more robust at the cost of payload capacity.H (30% recovery)
Step-by-step
- Pick payload type โ url.
- Build canonical string per the QR scanner-recognised format (WIFI:, BEGIN:VCARD, SMSTO:, mailto:).
- URL-encode for use in a renderer query string.
How to use this calculator
- Pick the payload type. The relevant fields highlight in the form below.
- Fill in the fields. The full payload is shown in the breakdown.
- Copy/paste the "Render link" into a browser tab to view the QR.
- Or copy the "Full payload" into your own QR library (qrcode-generator, qrcode npm, every smartphone OS API).
About this calculator
Most "QR code generator" tools just call a third-party renderer; the interesting part is building the payload your QR is going to encode. WiFi credentials use a specific colon-and-semicolon format that scanners auto-recognise as "join this network". Contacts use the vCard format with BEGIN:VCARD / END:VCARD. SMS uses SMSTO:number:message. This tool builds the canonical text for each so you can paste it into any QR-rendering library (or the included render-URL).
How it works โ the formula
WiFi : WIFI:T:<auth>;S:<ssid>;P:<password>;;
vCard: BEGIN:VCARD\nVERSION:3.0\nFN:<name>\n...\nEND:VCARD
SMS : SMSTO:<number>:<message>These payload formats are recognised by every modern QR scanner because they have specific prefixes the scanner UI uses to decide what action to suggest (join network, add contact, open mailto:, etc.). The actual QR encoding is just text wrapped in error-correcting codewords โ see ISO/IEC 18004 for the binary encoding details.
Worked examples
- Inputs:
- kind=url, text=https://example.com
- Output:
- payload "https://example.com" (19 bytes)
- Inputs:
- kind=wifi, ssid=Home, password=hunter2, auth=WPA
- Output:
- WIFI:T:WPA;S:Home;P:hunter2;;
- Inputs:
- kind=vcard, name=Jane, org=Acme
- Output:
- BEGIN:VCARD\nVERSION:3.0\nFN:Jane\nORG:Acme\nEND:VCARD
Limitations
- No inline rendered QR image โ the rendered preview URL points to an external service. For privacy-sensitive payloads use a local library (qrcode-generator npm).
- Payload-size validation is an upper bound; actual capacity depends on the chosen error-correction level and character mode.
- Does not support all vCard 4.0 advanced fields (PHOTO, GEO, KEY, etc.).
Payload formats are stable, scanner-recognised standards โ they decode the same way on every modern scanner regardless of who renders the visual code.