QR Code Generator — Wi-Fi, vCard, URL & Payment Codes

Pick what the code should do, fill in the fields, and the code updates as you type. Download it as SVG for print or PNG for screens. Everything is generated on your device — including the Wi-Fi password.

If you leave off the scheme, https:// is added automatically.

What this tool does

It turns a small form into a QR code. The type you choose decides the grammar inside the code: a plain link, a block of text, a Wi-Fi joining string, a contact card, a prefilled email or SMS, a phone number to dial, a pair of map coordinates, or a UPI payment link. The code is drawn as you type, and you can download it as SVG (for print, where it stays sharp at any size) or PNG (for screens and documents).

Method

A QR code carries text; the type only changes which text it carries, and how the characters that would otherwise be ambiguous are escaped. These are the payloads each type produces:

TypePayload
Website linkhttps://… (the scheme is added if omitted)
Plain textthe text, unchanged
Wi-FiWIFI:T:WPA;S:…;P:…;; with \ ; , : " escaped
Contact carda vCard 3.0 block, BEGIN:VCARD … END:VCARD
Emailmailto:you@example.com?subject=…&body=…
SMSSMSTO:+15550100:message
Phonetel:+15550100 (formatting stripped)
Mapgeo:48.8584,2.2945
UPI paymentupi://pay?pa=…&pn=…&am=…

The symbol itself follows ISO/IEC 18004, with a Reed–Solomon error-correction block whose size you choose. Higher correction means a denser symbol that survives more damage; a larger on-screen size makes it easier for a camera to resolve each module.

Example

A café wants a code on each table. Rather than a link to a menu page, the Wi-Fi type is often the one customers scan first — SSID CafeGuest, password flat white (with the space kept) — which becomes:

WIFI:T:WPA;S:CafeGuest;P:flat white;;

For the menu itself, a short link such as cafe.example/menu is encoded as https://cafe.example/menu: short enough that the symbol stays sparse and scans instantly, even in low light.

Everything is generated in your browser and nothing is stored, so a code containing a Wi-Fi password or a payment address never leaves your device. QR Code is a registered trademark of DENSO WAVE. Check that the code scans from the distance and lighting it will actually be used in before printing it at scale.

Frequently asked questions

How do I make a QR code for a Wi-Fi network?

Choose “Wi-Fi” and enter the network name (SSID) and the password, then pick the security type — WPA for essentially every modern router, WEP for old hardware, or “No password” for an open network. Guests scan the code and their phone offers to join; they never have to type the password.

Which QR code should I use for a business card?

The vCard type. It writes a contact card into the code, so scanning it offers “Add contact” with the name, phone, email and address already filled in — much less error-prone than a plain text code that the user has to copy by hand.

Why does my Wi-Fi QR code scan but not connect?

The WIFI: grammar treats \, ;, ,, : and " as structural characters, so any of them inside a network name or password has to be escaped. This tool does that escaping; a code made by hand often does not, which is the usual cause of a scan that opens a joining screen and then fails.

Should I download SVG or PNG?

SVG for print and for anything that will be scaled — it stays sharp at any size. PNG for pasting into a slide, an email or a document. Both are generated from the same symbol, so they contain the same data.

How much text fits, and will it still scan?

Up to about 2,900 bytes, but density is the enemy of scanning: the more data, the smaller each module, and the harder an older camera finds it. Keep a link short, and for a vCard leave out fields you do not need. A larger on-screen size also scans far more reliably than a small one.

What is error correction for?

It is redundant data that lets the code survive damage — a tear, a smudge, or a logo printed over the middle. Level M is the sensible default; Q or H tolerate more damage but make the symbol denser. Use H only when the code may be partly covered or worn.

Do QR codes expire?

A static QR code never expires — it is a drawing of the data, so it works as long as the printed symbol exists and the data is still meaningful. If the code contains a shortened URL, the link behind the shortener can expire or be repointed, and that is where “expiring QR codes” come from: the symbol is fine, the destination is not. Codes generated here encode the content directly, so there is no redirect to expire.

Can I put a logo in the middle?

Yes, within limits. Error correction lets a scanner reconstruct missing modules, so a small logo over the centre still scans — but the logo destroys data, and the higher the correction level the more damage the symbol tolerates. Use level H, keep the logo well under a fifth of the area, avoid covering the three finder squares in the corners, and test with several phones before printing. A code that scans on one phone and not another is usually too dense or too damaged.

What is the smallest size I can print?

Size is set by the module, not by the symbol as a whole. As a working rule, each module should be at least 0.4 mm across in print; a version-3 code is 29 modules wide, so it needs at least 12 mm — and that is the minimum, not a comfortable size. For a poster read from a metre away, make it several centimetres. If you must shrink a code, reduce the payload first: a shorter URL needs fewer modules and stays readable at a smaller size.

Sources

  • ISO/IEC 18004:2015, Information technology — Automatic identification and data capture techniques — QR Code bar code symbology specification (the symbol format and its error-correction levels).
  • IETF, RFC 6350 — vCard Format Specification (the escaping used in the contact-card payload). rfc-editor.org/rfc/rfc6350
  • Wi-Fi Alliance, Wi-Fi Easy Connect — the network-access QR conventions behind the WIFI: payload. wi-fi.org
  • NPCI, UPI Linking Specifications — the upi://pay deep link and its parameters. npci.org.in

Everything runs in your browser — nothing you type is uploaded.