Skip to content
FlashScan Pro

URL, SMS, email, Wi-Fi, vCard: every content type a QR code holds

A QR code is just a container: a tour of the payload formats — URL, tel:, mailto:, sms:, WIFI:, vCard — and what the phone does with each one.

A QR code is just a box: what matters is inside

A QR code doesn’t “do” anything by itself. It’s a container: it encodes a text string, and the phone reads that string and decides the action. https://… becomes “open link,” tel:… becomes “call,” WIFI:… becomes “join network.” Understanding these formats — the payloads — means understanding what you actually put in a code, and why some codes “don’t work.”

A tour of formats, with payloads

URL — the classic

https://example.com/offer

The action: open the browser. The generator automatically prepends https:// if you enter a bare domain — a payload that doesn’t start with a known scheme is treated as plain text by many phones, not as a link.

Phone — tel:

tel:+14155552671

Offers to call. Useful on service posters (“scan to reach the agency”). Keep the international +1… format: a local number scanned from abroad no longer dials correctly.

Email — mailto:

mailto:contact@example.com?subject=Quote&body=Hello

Opens the email client with recipient, subject, and body pre-filled. Spaces and accents go through URL encoding — the generator handles it.

SMS — sms:

sms:+14155552671?body=I%20am%20interested

Opens the SMS app with a pre-filled message — the user confirms sending. Supported on iOS and Android, though the action depends on the default SMS client.

Wi-Fi — WIFI:

WIFI:T:WPA;S:MyBox;P:password;;

Joins the network with no typing. Field-by-field format, with escaping of ; and : — full detail in Wi-Fi QR code.

Contact — vCard

BEGIN:VCARD
VERSION:3.0
N:Doe;Jane;;;
FN:Jane Doe
TEL:+14155552671
END:VCARD

Offers “Save contact.” The line-per-field structure and ;/, escaping are detailed in vCard QR code.

Geolocation — geo:

geo:48.8566,2.3522

Opens the map at the given coordinates. Handy for guiding people to a precise point — a venue, a hidden entrance — without making them type an address.

Plain text

Meeting room B, door code 4291

Any text: the phone displays it, to copy manually. Useful for access codes, references, instructions — as long as content stays reasonable.

The prefix is the contract

Notice the pattern across every format: the payload announces its type through a prefix — https://, tel:, mailto:, sms:, WIFI:, BEGIN:VCARD. That prefix is a contract between the generator and the phone: write it exactly (lowercase schemes, the right separators, proper escaping) and the phone offers the right action; break it and the payload degrades into inert text. It’s also why hand-typing payloads is error-prone — a generator that knows the formats produces the contract correctly every time.

How much text fits in a code?

Maximum capacity depends on the character type: at maximum size (version 40, level L), the standard reaches 7,089 digits, 4,296 alphanumeric characters, or 2,953 bytes in binary — enough for a small full text. But these figures are theoretical: every added character densifies the pattern, and beyond a few hundred characters the modules get so small that reading demands a large, sharp, well-lit code. In practice: short URLs, reasonable vCards, texts under ~300 characters.

What makes a payload fail

  • No scheme: www.example.com without https:// is often shown as text, not opened as a link.
  • URL-only scanner: some built-in scanners only recognize links; an sms: or a vCard shows raw or opens nothing. A scanner that displays content — like FlashScan Pro’s — is the workaround.
  • Content too long: beyond a few hundred characters the pattern gets very dense; at small print sizes, readability suffers (see print size).
  • Unescaped characters in structured formats (; in vCard or Wi-Fi) — serious generators escape them for you.

The payload isn’t the destination

A useful nuance for diagnosing “weird” codes: what’s decoded and what happens next are two different things. A code containing https://… can still lead elsewhere if the URL redirects. Conversely, a code displayed “for a website” may encode a tel: or plain text — only the decoded content is authoritative. That’s why a scanner showing the raw payload before opening anything is your best verification tool: it shows what’s actually encoded, not what the medium claims to encode.

And the “exotic” formats?

You’ll meet other payloads in the wild: geo: for GPS coordinates, tel: as seen, WIFI: for networks, BEGIN:VCARD for contacts, but also MATMSG: (alternative email), SMSTO:, or proprietary schemes (instagram://, paypal.me/…). The principle doesn’t change: the code carries a string, and the device — or the installed app — decides whether the scheme means anything. An unknown scheme simply displays as text.

In the generator

The standard mode takes text or URL (with automatic https://), Wi-Fi mode assembles the WIFI:, vCard builds the card, batch processes URL lists. After generating, the copy button shows the raw payload produced — the best way to verify what’s actually encoded before printing. And to read any code you come across, the scanner shows its content in plain text before opening anything.