How to Create a QR Code for a Website, Wi-Fi, Contact or Payment
A QR code turns a physical surface — a menu, a poster, a business card, a wall — into something a phone can act on instantly, with no typing and no searching. But "just generate a QR code" hides a real decision: a QR code for a Wi-Fi password works completely differently under the hood from one for a payment or a contact card, and picking the right type matters as much as the design. This guide covers what QR codes actually are, every common type, and how to design and test one properly before it goes anywhere permanent — like print.
What a QR Code Is
A QR (Quick Response) code is a two-dimensional barcode — a square grid of black and white modules — that encodes data directly into its visual pattern. Unlike a traditional 1D barcode, which only encodes a short string read in one direction, a QR code's two-dimensional structure lets it hold significantly more data (URLs, contact details, Wi-Fi credentials, and more) and be scanned from almost any angle.
How QR Codes Work, at a Basic Level
When a camera scans a QR code, it reads the pattern of dark and light modules and decodes them back into the original data using a standardized format. Three of the code's corners have larger square markers (finder patterns) that let a scanner instantly detect the code's position and orientation, regardless of the angle it's viewed from. QR codes also include built-in error correction, meaning a portion of the code can be damaged, obscured, or covered by a logo, and the code will still scan correctly — this is exactly what makes adding a logo to the center of a QR code possible without breaking it, as long as the error correction level is set appropriately for how much of the code is covered.
Website URL QR Codes
The most common type — encodes a web address, so scanning opens that page directly in the phone's browser. Used constantly on posters, packaging, print ads, and business cards to send people straight to a website without typing a URL.
Wi-Fi QR Codes
Encodes a network's SSID (name), password, and security type (like WPA/WPA2) in a standardized format that phones recognize automatically — scanning it offers to join the network directly, no typing the password required. Genuinely useful anywhere guests need Wi-Fi access repeatedly: a cafe, an office, a rental property, or a home.
Contact / vCard QR Codes
Encodes a full contact card (vCard format) — name, phone, email, company, and more — so scanning it offers to save that contact directly to the phone, instead of manually typing details from a business card. This is one of the more practical, higher-value QR code uses precisely because it eliminates typing entirely.
Payment QR Codes
In markets with a standardized payment QR format — UPI in India being a widely used example — a payment QR code encodes a payee's ID (and optionally a fixed amount), so scanning it opens a payment app with the recipient already filled in, ready to pay. Commonly seen at shop counters, on invoices, and increasingly even on small vendor stalls.
Text QR Codes
The simplest type — encodes plain text directly, with no special format. Scanning it just displays that text. Useful for short instructions, a message, or any content that doesn't fit one of the more specialized types above.
Static vs. Dynamic QR Codes
This distinction matters more than most people realize, and it's worth being precise about it:
- A static QR code encodes its content directly into the pattern itself. Once generated, what it points to or contains is permanent — scanning it always leads to that exact same content, and there's no way to edit or redirect it afterward without generating and reprinting an entirely new code. Static codes don't depend on any external service staying online; they work for as long as the destination itself (a website, for instance) remains valid.
- A dynamic QR code instead encodes a short redirect link. Scanning it sends the phone through that redirect, which then forwards to the actual destination — and because the redirect is controlled by a service rather than baked into the code, the destination can be changed later without reprinting the QR code itself, and scans can typically be tracked and counted. The tradeoff is that a dynamic QR code depends on that redirect service staying online indefinitely — if it goes down or the account is deleted, the code stops working even though the printed pattern looks identical.
It's important not to assume every QR code is editable after the fact — most QR generators, including the majority of types here, produce static codes by design, which is exactly right for content that genuinely shouldn't need to change (like a Wi-Fi password or a saved contact). Dynamic only makes sense, and is only offered, for link-based QR codes specifically, since "redirect somewhere else" is the one thing a dynamic code is actually doing differently from a static one.
When to Use Each Type
- Static — anything permanent or unlikely to change: a Wi-Fi network, a contact card, a fixed payment ID, plain text, an app store listing.
- Dynamic — a URL you might need to update later (a seasonal promotion, a menu that changes, a campaign landing page), or when you specifically want scan analytics.
QR Code Size
Size needs to scale with scanning distance — a QR code on a business card, scanned from a few centimeters away, can be small (roughly 2×2 cm is generally enough), while one on a poster or storefront window meant to be scanned from a few meters away needs to be proportionally much larger. As a rough rule of thumb, a QR code should be roughly 1/10th the expected scanning distance — a code meant to be scanned from 1 meter away should be at least about 10cm across.
Quiet Zone / Margins
The "quiet zone" is the blank, unobstructed white margin required around a QR code's edge — scanners rely on this empty space to correctly detect where the code starts and stops. Cropping a QR code too tightly, or placing it directly against a busy background or another graphic element with no border, is one of the most common reasons an otherwise well-designed QR code fails to scan reliably. Keep a clear margin around every side, at minimum roughly 4 modules wide (the width of about 4 of the small squares that make up the code).
Contrast
QR scanners rely on clear contrast between the dark and light modules to read the pattern correctly. Standard black-on-white offers the most reliable contrast and the widest compatibility across scanner apps and lighting conditions. Custom colors can work well too, but low-contrast combinations (light gray on white, or two similarly-toned colors) meaningfully increase scan failures, especially in poor lighting or from an angle — test any custom color combination thoroughly before committing to it for print.
Testing Before Printing
Always scan a test print — not just the on-screen version — with multiple phones and scanner apps before committing to a full print run. A code that scans perfectly on a bright laptop screen can behave completely differently once printed: paper texture, ink saturation, print resolution, and real-world lighting all affect scannability in ways a screen preview can't fully predict. This single step catches the large majority of QR code failures before they become an expensive reprint.
Common QR Code Mistakes
- Too small for its scanning distance — a code sized for a business card doesn't work on a storefront window.
- Insufficient quiet zone — cropped too tight or placed against a busy background.
- Low contrast colors that look fine on screen but fail to scan reliably in print or poor lighting.
- An oversized logo that covers too much of the code, exceeding what the error correction level can compensate for.
- Never test-scanning the actual printed version before a full print run.
- Using a static code for content that changes often, forcing a reprint every time (a dynamic code, or simply a more stable destination, solves this).
- No context or call to action nearby — a bare QR code with no label ("Scan for Wi-Fi," "Scan to view menu") leaves people guessing what it even does.
Practical Examples
Restaurant menu
A URL QR code on a table tent or sticker, linking directly to a digital menu page — sized for close-range scanning (a few cm), high contrast, with a small "Scan for Menu" label so it's unambiguous.
Business card
A contact/vCard QR code on the back of the card — scanning saves your full details directly, without the other person typing anything from the printed card.
Shop counter
A payment QR code (UPI or your local equivalent) displayed at checkout — sized for a customer standing at the counter, with strong contrast so it scans quickly even under indoor lighting.
Event invitation
An event QR code that lets a scan add the date, time, and location directly to a calendar app — removing the friction of manually entering event details from a printed or digital invite.
Wi-Fi sharing
A Wi-Fi QR code printed on a small card or framed on the wall near a router — guests scan and join instantly, without you reciting or writing out a password.
Product packaging
A URL QR code (often made dynamic, since packaging can be expensive and slow to reprint) linking to product information, a warranty registration page, or usage instructions — sized appropriately for the packaging surface, tested at actual print resolution before a full production run.
How to Create a QR Code Using Kravoy
Kravoy offers a dedicated QR code generator for each type covered above — URL, Wi-Fi, UPI payment, contact card, text, and more — all sharing the same design tools, and all generated entirely in your browser:
- Pick the QR type that matches what you want the scan to do. Using the right specialized tool (Wi-Fi, contact, payment) rather than just a generic text code is what makes the scan actually trigger the right phone action (join network, save contact, open payment app).
- Fill in the specific content. A URL, Wi-Fi network name and password, contact details, or payment ID, depending on the type chosen.
- On the URL QR tool, optionally make it dynamic. This creates an account-linked, redirect-based QR code you can edit later and track scans on — available specifically for URL QR codes, since that's the one type where "change the destination later" is meaningful. Every other type here generates a standard static code.
- Customize the design. Adjust dot color, corner style, background color, and error correction level — keeping contrast strong if you're moving away from plain black-on-white.
- Optionally add a logo. Upload an image to place in the center; the tool automatically adjusts the error correction level to help keep the code scannable with the logo in place.
- Download as PNG, SVG, or JPEG. SVG is the best choice if the code will be printed at a large size (like a poster), since it scales without any loss of sharpness.
- Test-scan the exported file — and again, the actual printed version — with your own phone before using it anywhere permanent.