How to Create QR Codes for URLs, Wi-Fi, and Contact Cards
QR codes are everywhere: restaurant menus, business cards, product packaging, event tickets, payment apps, vaccine passports. They are a quick way to get someone from the physical world to a digital destination without typing a URL, dictating a Wi-Fi password, or copying contact details. Creating one takes seconds, costs nothing, and (unlike short-link services) the QR code keeps working forever because the destination is encoded directly in the image.
A short history of the QR code
QR codes were invented in 1994 by Masahiro Hara and a small team at Denso Wave, a subsidiary of Denso Corporation, the largest automotive components manufacturer in Japan. The "QR" stands for "Quick Response": Toyota's factories needed a barcode that could be read in any rotation, store more data than a Code 39 barcode, and be scanned almost instantly so assembly lines did not stall. The result was a square two-dimensional code with three large position-detection patterns at the corners that let any scanner determine orientation in a single frame.
Denso Wave published the design openly. ISO standardised it as ISO/IEC 18004 in 2000, with revisions in 2006 and 2015. Crucially, Denso Wave chose never to enforce its patents, which let QR codes spread freely. Japan adopted them first for everything from supply-chain tracking to vending machines; Asia and Europe followed in the 2000s. The breakthrough in the West came when iOS 11 (September 2017) and Android (via Google Lens, also 2017) added native QR scanning to the camera app, eliminating the need for a separate scanning app. The 2020-2021 pandemic finished the job: every restaurant, every gym, every museum suddenly needed a contactless menu or check-in, and the QR code was already in every pocket.
Today the QR code carries hundreds of billions of scans per year. WeChat Pay and Alipay in China rest entirely on it; UPI in India ships QR-driven payments to a billion users; vCards on business cards have all but replaced typed contact details. It is one of the few 30-year-old standards that became more useful, not less, with time.
What QR codes can do
A QR code is a way to encode a text payload into a scannable image. What happens when someone scans it depends on the format of that text:
- URL:
https://example.com/...opens the link in the scanner's browser. - Wi-Fi credentials:
WIFI:T:WPA;S:NetworkName;P:Password;;joins the network automatically. - vCard (contact card):
BEGIN:VCARD ... END:VCARDadds the contact to the address book. - Plain text: any other string displays on the scanner's screen.
- Email:
mailto:address@example.com?subject=...&body=...opens a draft email. - Phone number:
tel:+15551234567prompts to call. - SMS:
smsto:+15551234567:Hello thereopens a pre-filled text message. - Geo location:
geo:48.8566,2.3522opens the coordinates in the device's map app. - Calendar event:
BEGIN:VEVENT ... END:VEVENT(iCalendar) adds the event to the calendar.
The QR code itself does not care; the scanning device's URL handlers decide.
How a QR code is built
A QR code is a square grid of black-and-white "modules" (the tiny squares). The structure is fixed:
- Three finder patterns (the large concentric squares at three corners) tell the scanner where the code is and which way is up.
- Alignment patterns (smaller squares for larger codes) correct for perspective distortion when the code is photographed at an angle.
- Timing patterns (alternating black/white lines between the finders) tell the scanner how big each module is.
- Format information stores the error-correction level and the masking pattern, repeated twice for redundancy.
- Data and error-correction codewords make up the bulk of the area. Reed-Solomon error correction lets the scanner recover the message even if part of the code is dirty, scratched, or obscured.
QR codes come in 40 versions, from version 1 (21x21 modules, max ~25 alphanumeric characters at error-correction L) to version 40 (177x177 modules, max ~4,296 alphanumeric characters at L). The generator picks the smallest version that fits your payload at the chosen error-correction level.
How to create a QR code
- Choose the QR code type: URL, plain text, Wi-Fi network, vCard, email, phone, SMS, or geo. The tool builds the right payload format for you.
- Enter your content: paste the URL or fill in the structured fields. The QR preview updates as you type.
- Pick an error-correction level: L (low) for digital screens, M (medium) for general use, Q (quartile) for printed material that may get worn, H (high) if you want to overlay a logo.
- Customise look (optional): adjust foreground colour, background colour, module shape, and add a logo in the centre. Always keep enough contrast.
- Download: PNG for screens, SVG for print, PDF if you want to drop the code into a layout. The tool also generates a 32x32 thumbnail you can preview-test before exporting.
Understanding error correction
QR codes have built-in redundancy so they can still be scanned even if part of the code is damaged or obscured. There are four levels:
| Level | Recovery | Best for |
|---|---|---|
| L (Low) | ~7 % | Clean digital screens, short data |
| M (Medium) | ~15 % | General use, the default |
| Q (Quartile) | ~25 % | Printed materials that may get worn |
| H (High) | ~30 % | Codes with a logo overlay, outdoor use, packaging that will get dirty |
Higher error correction means the QR code has more data modules (more tiny squares), so the same payload becomes a denser code that needs to be printed slightly larger to remain scannable. The trade-off is reliability against size.
Practical uses
For businesses:
- Print a vCard on business cards so contacts can save your details in one scan, no typing.
- Add a QR code to product packaging that links to a setup video, the warranty registration page, or the troubleshooting guide.
- Display at your storefront linking to your website, menu, opening hours, or Google reviews page.
- Put a Wi-Fi QR code on the receipt or table tent for guests so they can join without you reading out the password.
- Add to event invoices that link directly to a payment page (Stripe, Square, UPI).
For events:
- Generate Wi-Fi QR codes for guests, no more spelling out passwords.
- Link from a printed programme to the live schedule, maps, or session feedback form.
- Add to name badges linking to LinkedIn profiles or speaker bios.
- Run a "scan to enter the raffle" promotion that drives users to a sign-up form.
- Print QR codes on table cards that link to the event hashtag on Instagram or X.
For personal use:
- Share your home Wi-Fi password with visitors without dictating it.
- Create a QR code for your personal website, portfolio, or résumé.
- Add to printed invitations linking to RSVP pages.
- Use a vCard QR code on the back of conference name badges.
- Generate a QR code that joins a video call (Zoom or Google Meet) for hybrid meetings.
Tips for QR codes that work well
- Test before printing. Always scan with a real phone before sending to print. Test with both iOS Camera and Google Lens on Android if possible.
- Keep URLs short. Shorter URLs produce simpler QR codes (lower version, fewer modules), which are easier to scan at smaller sizes. Use a tracking-free URL shortener if needed.
- Ensure contrast. Dark modules on a light background work best. Inverted (light on dark) is technically allowed by the spec but is poorly supported by older scanners.
- Leave the quiet zone. The white border around a QR code, four modules wide, helps scanners detect it. Do not crop into it or place other graphics inside it.
- Match the size to the scanning distance. The rule of thumb is that the code's width should be at least 10 % of the expected scanning distance: 5 cm code for 50 cm reading, 1 m code for 10 m reading.
- Pick error-correction H if you add a logo. Cover at most 20 % of the area, keep the logo near the centre, and always test the scan.
- Avoid extreme colour pairs. Red on green, blue on purple, and other low-contrast pairs scan badly. Stick to high-contrast pairs or stay black-on-white.
- Use static QR codes when you can. They never expire and depend on no third-party service.
- Add a human-readable label. Print "Scan to join Wi-Fi" or "Scan for menu" next to the code so people know what it is for before they scan.
Common pitfalls
- Embedding tracking-laden URLs. A short, clean URL is more reliable and friendlier than a 200-character UTM-tracked link. Use UTM only if the analytics value justifies the extra modules.
- Inverting colours without testing. White-on-black QR codes are allowed but rejected by ~10 % of scanners in the wild. If brand colours conflict, change the brand colours for that one print, not the QR code.
- Logo too large. Even at error-correction H, more than 25-30 % logo coverage starts to fail. Test on three different phones before going to print.
- Distorting on a curved surface. A QR code on the side of a bottle or a curved sign can fail because the perspective distorts the modules. Use a flat sticker, a larger code, or a code on the flat part.
- Print resolution. A QR code printed at 72 dpi from a low-resolution PNG smears. Generate at 300 dpi or use SVG.
- Static codes for things that will change. If the destination URL will change (a moving event, a discount that ends), use a dynamic QR (paid service) or a stable redirect URL that you control.
- Skipping the quiet zone. A QR code that touches surrounding graphics or text fails to be recognised. Always leave four modules of padding.
- Reading distance mismatch. A 2-inch poster QR meant for 10-foot reading does not work. Match the size to the distance.
- Phishing risk. QR codes can hide the URL. Scanners that show the destination before opening (iOS, Google Lens) help, but a savvy attacker can spoof. Print "Scan for menu" next to the code so unexpected destinations look wrong.
- Wi-Fi codes that include the password in plaintext. That is by design (the format is
WIFI:T:WPA;S:Name;P:Pass;;), but it means anyone who photographs the code has the password. Treat printed Wi-Fi QR codes as you would a printed password.
Alternatives and adjacent code formats
QR is the most universal 2D code but not the only one. Different formats win in different contexts.
| Format | Capacity | Strength | Where it shines |
|---|---|---|---|
| QR Code | Up to ~4,296 alphanumeric chars | Universal scanner support, free | Marketing, menus, Wi-Fi, payments |
| Data Matrix (ISO/IEC 16022) | Up to ~2,335 alphanumeric chars | Very compact for short payloads | Industrial part marking, pharmaceuticals |
| PDF417 (ISO/IEC 15438) | Up to ~1,850 alphanumeric chars | Long horizontal "stacked" format | Boarding passes, driver licences |
| Aztec (ISO/IEC 24778) | Up to ~3,067 alphanumeric chars | No quiet zone required | Train tickets, ID cards |
| Code 128 (linear) | Short numeric/alphanumeric | One-dimensional, fast for tiny printers | Shipping labels, retail price tags |
| Maxicode | Fixed 93 alphanumeric chars | Designed for high-speed reading | UPS shipping labels |
| Han Xin Code (GB/T 21049) | Larger than QR | Better at encoding Chinese characters | China, government and logistics |
| micro-QR | Up to 35 alphanumeric chars | Tiny, fewer modules | Small electronics labels |
| Apple App Clip Code | URL only | Built into iOS, no scanner needed | App Clips on Apple devices |
For nearly all consumer-facing uses, QR Code is the right answer because every modern phone scans it natively. The others are specialised.
Privacy and the generator
The QR code generator runs entirely in your browser. The URL, Wi-Fi password, vCard, or other payload you enter is rendered to a QR matrix by JavaScript on your device, the resulting PNG or SVG is offered as a download, and nothing is sent to a server. Nothing is logged, no shortened URL is created, and no third-party tracker is added to the destination. For payloads that genuinely matter (your home Wi-Fi password, an unreleased product URL, an internal Zoom link, your personal mobile number), that local-only flow is the difference between trusting a stranger's URL shortener and trusting no one. The whole tool can run offline once the page is loaded, which you can verify by switching off your network and regenerating the same code.
Frequently Asked Questions
What can I put in a QR code?
URLs, plain text, Wi-Fi credentials, contact cards (vCard), email addresses, phone numbers, geographic coordinates, calendar events. The QR code simply encodes a text payload, the scanning device decides what to do with it based on the prefix (https for a URL, WIFI for a Wi-Fi join, MATMSG for an email, etc.).
What format should I download, PNG or SVG?
Use PNG for digital screens (websites, social media, presentations). Use SVG for print materials (business cards, posters, flyers) because SVG scales to any size without losing sharpness. PDF is a third option for layouts that already use it.
How small can a QR code be printed?
The minimum practical size is about 2 cm (0.8 inches) square for short URLs. Codes with more data or higher error correction need to be larger because they contain more modules (the small squares). The rule of thumb is that each module should be at least 0.4 mm at the scanning distance. Always test by scanning before printing a large batch.
Do QR codes expire?
Static QR codes (like the ones generated by this tool) never expire. They encode the data directly, so they work as long as the destination exists. A QR code pointing to a URL will work forever, but if the website goes down, the link will not. Dynamic QR codes (offered by some paid services) point to a redirector you control, which lets you change the destination later at the cost of depending on that vendor staying alive.
Can I put a logo in the centre of the QR code?
Yes. The QR code error correction lets you cover 7-30 % of the surface (depending on the level you choose) and still scan reliably. Pick error correction H for a visible logo, keep the logo under 20 % of the area, and always test the scan with several phones before printing.
Are QR codes patented?
No. Denso Wave invented QR codes in 1994 and ISO standardised them as ISO/IEC 18004 in 2000. Denso Wave holds patents but has chosen not to enforce them, so QR codes are royalty-free for use under the published standard.