QR types & how-tos

How to make a Wi-Fi QR code (and what the string actually contains)

Guests stop asking for the password. Here is how the code works, how to make one, and the mistake that silently breaks it.

By Kiril UrbonasUpdated 7 min read

A Wi-Fi QR code encodes your network name, security type and password as plain text beginning with WIFI:. Phones parse it and offer to join, so nobody types anything. Make one by entering the exact SSID, choosing WPA, and typing the password. Nothing is encrypted — the code is the password in machine-readable form.

Key takeaways

  • The format is WIFI:T:WPA;S:<ssid>;P:<password>;; — plain text, not encryption. Add H:true; only for a hidden network.
  • Anyone who can photograph the code has your Wi-Fi password, so place it where you would happily write the password on the wall.
  • The semicolon is the one genuinely structural character. In the format every phone actually implements, a backslash also escapes \, ,, " and : inside an SSID or password.
  • iPhones have joined from a scanned code since iOS 11. On Android the reliable route is Settings → Wi-Fi → Add network → scan, or Google Lens; the stock camera app varies by manufacturer.
  • Use a separate guest network, so a code that walks out the door costs you a password reprint rather than access to your LAN.

What a Wi-Fi QR code actually is

A Wi-Fi QR code is a QR code whose payload is a short line of text describing a network. When a phone decodes it and sees that the text begins with WIFI:, it stops treating the string as text and starts treating it as a join request: it reads the network name, the security type and the password, and offers to connect.

There is no service in the middle, no account, and no encryption beyond what the Wi-Fi network itself uses. The QR code is a font your camera can read, and the thing written in it is your password. Everything in the security section follows from that one fact.

How do you make a Wi-Fi QR code?

Five steps, about a minute. The one people get wrong is the second: SSIDs are case-sensitive, so “Cafe Guest” is a different network from “cafe guest”.

  1. Step 01

    Choose the Wi-Fi type

    Open the generator and pick Wi-Fi as the QR type, so the fields match what a phone expects.

  2. Step 02

    Enter the exact SSID

    Type the network name exactly as it is broadcast, including capitals and spaces. SSIDs are case-sensitive, so check it against your router rather than typing from memory.

  3. Step 03

    Pick the security type

    Choose WPA for almost every modern network — it covers WPA2-Personal and WPA3-Personal alike. Use nopass only for a genuinely open network.

  4. Step 04

    Enter the password

    Type it exactly. Semicolons in particular need escaping, which the generator handles for you.

  5. Step 05

    Test, then export

    Scan the on-screen preview with a real phone before printing, then export SVG or PDF for print and PNG for screens.

What does the WIFI: string contain?

Four fields, each followed by a semicolon, with one extra semicolon closing the string:

A standard Wi-Fi payload
WIFI:T:WPA;S:Cafe Guest;P:flat white 42;;

It is worth knowing this, because every failure mode below is a failure to produce that string correctly.

FieldMeaningAccepted values
TSecurity typeWPA — covers WPA2-Personal and WPA3-Personal alike. Omit entirely for an open network.
SSSID — the network nameExact, case-sensitive text
HHidden network flagH:true when the SSID is not broadcast. There is no H:false — absence means “not hidden”.
PPasswordExact text; omitted for an open network
The four fields you will normally need

7 components

The Wi-Fi Alliance specification defines seven possible components in a Wi-Fi QR payload — type, transition-disable, SSID, hidden, SAE password identifier, password and SAE-PK public key. The four above cover everything a café or an office needs.

Source: Wi-Fi Alliance, WPA3 Specification v3.5 §7.1 · February 2025

Two conventions you will see in the wild are not in that specification. nopass and WEP come from ZXing’s original 2010 format; the Wi-Fi Alliance does not define WEP at all, and says to omit the T field entirely for an open network. Both still work on current phones.

A consequence worth noting before you print: longer SSIDs and passwords mean more characters, a denser grid, and smaller modules — so a network with a 30-character password needs a larger printed code than one with an 8-character password.

Which characters must be escaped?

The semicolon is the one genuinely structural character — it separates fields — and there are two authorities that disagree about the rest.

  • The de facto format, as ZXing defined it in 2010 and as most phones still implement it, asks for a backslash in front of \, ;, ,, " and : anywhere inside an SSID or password.
  • The Wi-Fi Alliance specification instead percent-encodes the semicolon as %3B and treats the other four as ordinary text — but Android does not parse percent-encoding when scanning.

So backslash escaping is what actually works today, and the semicolon is the one that bites either way. A password of guest;2026 must be written guest\;2026. Without the backslash, the phone reads the password as guest, tries to join, and fails with a generic “incorrect password” error that tells the user nothing useful.

One more edge case: if your SSID consists entirely of hexadecimal digits — say, C0FFEE — some parsers will read it as hex rather than literal text. The ZXing format allows a quoted form to disambiguate it, but the Wi-Fi Alliance specification has no quoted form at all, so support is patchy. If your network name looks like hex, test carefully or rename it.

Does it work on iPhone and Android?

On iPhone, yes, straight from the Camera app. On Android it depends where you scan — which is why you should print the password as text underneath regardless.

PlatformSinceWhere it works
iPhone / iPadiOS 11Camera app recognises the code and offers to join. Apple has never documented this publicly.
AndroidAndroid 10Settings → Wi-Fi → Add network → scan, and Google Lens. Reliable.
Android stock cameraVariesManufacturer-dependent. Some handle Wi-Fi codes, some ignore them entirely.
Older devices—Need a dedicated QR reader app.
Wi-Fi QR code support by platform

What Android 10 actually introduced was Wi-Fi Easy Connect and the Settings-based scanner, not camera-app support. That distinction matters in practice: a guest who points the stock camera at your code and gets nothing has not hit a broken code, and a line of printed text rescues the moment.

Is a Wi-Fi QR code secure?

No — and it is not meant to be. Because the password is the payload, the code is not a scoped credential: it is not time-bound, it cannot be revoked, and it does not know who scanned it. Anyone who photographs it keeps it.

That is genuinely fine for the case it was designed for: a guest network in a café, an office lobby, a holiday rental. It is a bad idea for the network your file server, your printer and your security cameras share. The practical rules:

  • Put the code on a guest network, isolated from your main LAN. Most consumer routers support one — look for “Guest network” in the admin panel.
  • Assume the code will be photographed and shared. Someone will post it to social media with your table setting in the background.
  • Place it where you would be comfortable writing the password in marker pen. A window facing the street is not that place; a table tent inside is.
  • Rotate the password on a schedule that matches your risk, and accept that rotating means reprinting.

Printing it so it actually scans

Wi-Fi codes are usually printed small — a table tent, a card by the till, a sticker on a router — which puts them at the edge of what a camera can resolve. Three things matter:

  • Size. At least 2.5 cm (1 in) across for arm’s-length scanning, and larger if the password is long.
  • Quiet zone. Four empty modules on every side. Designers crop this to tidy up a card, and it reliably breaks the code.
  • Vector export. SVG or PDF, not PNG — a vector file has no resolution to get wrong when the printer scales your artwork.

All three are covered properly in the print guide. And if you are weighing whether a static code is right at all, the static vs dynamic comparison lays out what you gain and give up.

Frequently asked

Is a Wi-Fi QR code secure?
The code is not encrypted — it is your password written in a machine-readable font. Anyone who can photograph it can read it, and can keep it after they leave. Use it for a guest network you are comfortable sharing, not for the network your NAS and printers sit on.
Does a Wi-Fi QR code work on iPhone and Android?
Yes, with a caveat about where you scan. On iPhone, the Camera app has recognised Wi-Fi codes since iOS 11 and offers to join. On Android, the reliable route is Settings → Wi-Fi → Add network → scan, available since Android 10, or Google Lens; whether the stock camera app handles it depends on the manufacturer. Print the network name and password as text as a fallback.
Can I make a Wi-Fi QR code for a hidden network?
Yes — add H:true; to the string. Without it, a phone will search for a broadcasting network of that name, fail to find it, and give up even though the credentials were correct. There is no H:false; leaving the field out is how you say “not hidden”.
What happens if I change my Wi-Fi password?
Every printed code stops working, because the password is baked into the code itself. Static QR codes cannot be edited after printing, so reprint the code whenever you rotate the password. That is the trade-off for a code with no server and no expiry.
Why does a Wi-Fi code shared from someone else’s phone sometimes fail?
Because the phone generated a non-standard string. The Wi-Fi Alliance specification defines T:WPA as the only password-based type, covering both WPA2-Personal and WPA3-Personal, but Android, GNOME and KDE all emit T:SAE when sharing a WPA3 network. Codes generated that way are malformed and some scanners reject them.
Try it

Enter your SSID and password and export a print-ready code. The string is built in your browser and never sent to a server — escaping included.

Make a Wi-Fi QR code

Written by

Kiril Urbonas — builder of QRify, a free QR generator that runs entirely in your browser. Corrections and additions are welcome; this page is updated when the guidance changes.

Read next