QR codes for WhatsApp — connect customers in one tap

QR codes for WhatsApp open a chat in one tap. The wa.me click-to-chat URL, pre-filled messages, personal vs Business account, and where they convert.

Jun 1, 2026 20 min read Linked.Codes
QR codes for WhatsApp — connect customers in one tap

A WhatsApp QR code is the shortest path from "I saw your sign" to "we're already talking." Someone points their phone at the square, the WhatsApp app opens with a chat window already addressed to your number, and the first message is pre-typed so they don't have to think about what to say. They tap send. You're in conversation before they've put their phone away.

That's the whole appeal. Most customer-acquisition QR codes hand the visitor off to a webpage, where the visitor decides whether to fill a form, browse around, or close the tab. A WhatsApp QR skips the page entirely and drops the visitor into the medium where decisions get made fastest. In countries where WhatsApp is the default messenger — Brazil, India, Indonesia, Nigeria, most of Latin America and South Asia — that medium isn't a marketing channel, it's the way buying happens.

This post covers the wa.me click-to-chat URL structure (which is older and simpler than most people realise), how pre-filled messages turn cold scans into sorted leads, when a personal number wins over a Business account and when it loses, the regions where this format converts hardest, and the things WhatsApp's spec quietly forbids that you'll only discover after printing a thousand business cards. By the end you'll have the syntax, the segmentation, the trade-offs, and the test you should run before any of it touches paper.

What a WhatsApp QR code actually encodes

A WhatsApp QR code doesn't encode anything WhatsApp-specific. It encodes a normal https:// URL — usually one that points at wa.me, WhatsApp's official click-to-chat domain — and the phone's operating system does the rest. The OS sees wa.me/... in the decoded text, recognises the host as one WhatsApp claims, and opens the WhatsApp app at the right screen. No app on the scanning phone needs to know about QR codes specifically. It's a URL like any other.

The canonical format:

https://wa.me/<phone>?text=<urlencoded-message>

Where <phone> is the recipient's number in full international format with no plus sign, no dashes, no spaces. +1 415 555 0199 becomes 14155550199. The optional ?text= parameter is the first message, URL-encoded — every space becomes %20, every line break becomes %0A, every ampersand inside the message body becomes %26. Same encoding rules as a mailto URL.

Three working examples that scan cleanly into a phone:

https://wa.me/14155550199
https://wa.me/14155550199?text=Hi%2C%20saw%20your%20sign%20at%20the%20cafe
https://wa.me/14155550199?text=I%27d%20like%20to%20book%20a%20table%20for%20Friday%20at%207pm

The first one opens the chat empty. The second pre-fills a single short line. The third pre-fills a specific request — by the time the customer has the keyboard in front of them, their job is to tap send, not figure out what to write.

Anatomy of a wa.me WhatsApp QR code URL Anatomy of the WhatsApp click-to-chat URL https://wa.me/ 14155550199 ? text= Hi%2C%20saw%20your%20sign canonical host number (no +, no spaces) divider parameter pre-filled message (URL-encoded) Required: scheme + host + number Optional: text= parameter to pre-fill the first message Limit: message body keeps below 1,000 chars in practice; longer values get truncated
The whole format. No app-specific scheme — the URL works on any phone that has WhatsApp installed and falls back to a web landing page if not.

There's a second, older format using a custom URL scheme — whatsapp://send?phone=14155550199&text=.... It works inside WhatsApp's own scanners and on Android, but iOS Safari and most camera apps refuse to open whatsapp:// URLs from a QR scan for security reasons. The https://wa.me/ form is the only one to use on anything you print. It works on iPhone, Android, every desktop browser (where it shows a "open WhatsApp" prompt), and any in-app browser that handles HTTPS URLs.

What happens when someone scans it

The flow is faster than most people expect and slightly different on iOS versus Android, but the end state is the same.

iPhone. The Camera app detects the QR, decodes it, recognises the wa.me host, and shows a yellow notification banner across the top of the screen reading "Open in WhatsApp." Tap the banner — WhatsApp launches, the chat screen with your number opens, and the pre-filled message is sitting in the input field with the cursor at the end. If WhatsApp isn't installed, the banner offers to open wa.me in Safari, which shows a "Continue to chat" landing page with a download link to the App Store.

Android. The behaviour depends on which scanner the user has set as default — Google Lens, the OEM camera (Samsung, Pixel, Xiaomi), or a third-party scanner. The decode itself is identical; the routing varies by a hundred milliseconds and one extra tap. Google Lens shows a chip with the WhatsApp logo and a "Open WhatsApp" button. Samsung's Bixby Vision shows a similar prompt. Once the user taps through, WhatsApp opens with the same pre-filled chat. On older budget Androids where the camera doesn't auto-recognise QR codes, the user opens a scanner app, gets the URL, and taps it in the scanner's results screen.

Desktop. If someone scans the printed code by pointing their phone at it, the flow above runs on the phone. If someone clicks the wa.me/... URL on a laptop — which happens when the URL is in a tweet, a newsletter, or an email — they land on web.whatsapp.com if they have WhatsApp Web logged in, or on a landing page that prompts them to scan a WhatsApp Web pairing code with their phone.

The cross-platform shape is the same. The friction is one tap on iPhone, sometimes two on Android, and acceptable on desktop. The pre-filled message survives all of it.

Pre-filled messages turn scans into sorted leads

The ?text= parameter is the lever that separates a casual WhatsApp QR from one that does real work. A pre-fill removes the blank-page problem — the customer doesn't have to invent the first message, which is the friction point where most cold opens die.

A pattern that works for a restaurant:

https://wa.me/14155550199?text=Hi%2C%20I%27d%20like%20to%20book%20a%20table%20for%20%5Bnumber%20of%20people%5D%20on%20%5Bdate%5D

The customer scans the table card, the chat opens with "Hi, I'd like to book a table for [number of people] on [date]." They fill the brackets, tap send. The host sees a real reservation request with two specific fields instead of an empty "hi." The conversation has somewhere to go in the first message instead of warming up over three exchanges.

Same pattern for a service business — a plumber, an electrician, a moving company:

https://wa.me/14155550199?text=Hi%2C%20I%20need%20a%20quote%20for%20%5Bservice%5D%20at%20%5Baddress%5D

For a product business taking customer support questions:

https://wa.me/14155550199?text=Hi%2C%20I%20have%20a%20question%20about%20order%20%5Border%20number%5D

For a sales lead from a print ad or billboard:

https://wa.me/14155550199?text=Hi%2C%20I%20saw%20your%20ad%20at%20%5Blocation%5D

The last pattern doubles as attribution. Different print runs use different [location] defaults — Hi, I saw your ad on the Number 12 bus stop versus Hi, I saw your ad in the airport terminal — and the first message tells you which channel produced the lead. Crude, but it costs nothing and works without a tracking pixel.

3B+
WhatsApp monthly active users worldwide per Meta's Q4 2024 reporting. In Brazil, India, and Indonesia, WhatsApp penetration sits above 90% of smartphone owners — the messenger isn't a channel, it's the default phone.

The same pattern works for QR codes that pre-fill an email draft — same idea, different medium. Both formats earn their keep by removing the "what do I write" problem before the customer can think about it.

Build a WhatsApp QR URL

Type the recipient number and a message; the widget produces the URL-encoded wa.me string to drop into a QR generator. The encoding handles spaces, ampersands, line breaks, and emoji-style characters automatically. Nothing leaves the browser.

Skip the encoding altogether with the WhatsApp QR code generator, which writes the wa.me URL for you from the country code, number, and pre-fill — or drop the string above into the free QR code generator by hand. Either route produces a working scan-to-chat code in under a minute. The encoded payload sits at around 60-120 characters for typical pre-fills — well inside the comfortable density range, prints small, scans from a metre away on a phone camera with no fuss.

Personal number versus WhatsApp Business

A WhatsApp QR opens a chat with one number. Whose number depends on a decision most small businesses make once and then regret six months later: personal account or Business account.

Personal account. Your everyday WhatsApp number — the one your family and friends already use to reach you. Setup time is zero; the number works in QR codes the day you create them. The downside surfaces when the business takes off. Customer messages mix into the same thread list as personal chats. You can't separate working hours from off hours. There's no automated "we'll be back at 9am" reply. No catalogue. No labels for "new lead" versus "open quote" versus "paid." When you hire someone to help respond, they have to physically use your phone. For a sole operator with low volume, this is fine for the first few months and then it isn't.

WhatsApp Business (the free app). A second app from Meta — WhatsApp Business in the App Store and Play Store — that runs on a separate phone number. Setup takes ten minutes: install the app, register a new number (or move an existing business line), fill out the profile (logo, hours, address, website). What you get: a public business profile customers see before they open the chat, automated greeting and away messages, quick replies for common questions, message labels for pipeline-style tracking, and a Catalogue feature for showing products inside the chat. All free. The app behaves like normal WhatsApp on the response side — same chat interface, same media support, same backups — but the business surface is clearly demarcated.

WhatsApp Business Platform (the API). A separate beast for high-volume businesses. Pricing is conversation-based per Meta's official rate card. Required if you want to send templated notifications, integrate WhatsApp with a CRM, or have multiple agents respond from the same number through a third-party inbox tool. Overkill until you're processing hundreds of conversations a day; cheaper than building your own custom messaging stack once you cross that threshold.

WhatsApp account tiers compared Three WhatsApp tiers — which one fits the volume Personal Free · everyday number Setup: zero Chats mixed with personal No auto-replies, no labels No business profile Best for: First few weeks, low volume Business app Free · separate number Setup: 10 minutes Public profile + hours Auto-greet, away, replies Labels + catalogue Best for: Most SMBs, sole operators Business Platform (API) Paid per conversation Setup: days, BSP required Templated notifications Multi-agent shared inbox CRM and webhook integration Best for: 100+ conversations/day
For the QR-from-a-business-card use case, the middle tier is almost always the right one. The free Business app gives you the surface and segmentation without the API overhead.

For a printed QR code that customers will scan from a sign, a card, a packaging insert, or a leaflet, the practical default is the free WhatsApp Business app on a dedicated number. The cost is one extra SIM (or eSIM, or a number from a virtual provider) and ten minutes of setup. The payback is having business chats separate from personal chats from the day the first scan lands. If you wait until the volume forces the switch, you'll be untangling a thousand messages from a thread list at the worst possible time.

Build WhatsApp QR codes you can edit after print — change the number, the pre-fill, or swap to a Business account without reprinting.

Start with Linked.Codes

Static or dynamic — why dynamic wins for this format

A static WhatsApp QR encodes the full wa.me/... URL directly into the modules. The QR works without any server in the loop — scan, open WhatsApp, done. The cost is permanence. Change the recipient number, change the pre-filled message, swap from a personal number to a Business account, and every printed code is wrong. The fix is a reprint.

A dynamic WhatsApp QR encodes a short URL — something like lnks.work/k/whatsapp-bookings — that redirects to the wa.me URL on every scan. The QR pattern is fixed at print time; the destination is editable forever from a dashboard. Three things this buys you:

  1. You can switch numbers. If you start with a personal number and graduate to a Business account, change the destination once and every printed code points at the new number on the next scan. No reprint.

  2. You can A/B the pre-filled message. Run two pre-fills for a month — one says "Hi, I saw your sign," the other says "Hi, I'd like to book." The dashboard records scan counts; whichever produces more sent messages wins. The pattern works the same way for conversion tracking on QR codes and short links.

  3. You can track scans. A static QR opens WhatsApp directly with no server hop, so the scan is invisible to your analytics. A dynamic one logs every scan with timestamp, device type, and rough region. The full data primer lives in how to track QR code scans — for WhatsApp QRs specifically, the scan-to-message conversion rate is the metric that matters, because the scan itself is cheap and the sent message is the lead.

The trade-off is a network hop at scan time, which fails in environments without signal. For consumer-facing QRs (cafe tables, packaging, business cards, posters in well-connected areas), the network is reliably there. For deep-basement or aircraft-cabin scans, a static QR is safer. The full editing-vs-permanence comparison lives in static vs dynamic QR codes; for WhatsApp specifically, dynamic almost always wins because the destination details (number, pre-fill) are the kind of thing that changes the moment the business grows.

The same trade-off applies to other in-app destinations — see also why every QR type should be dynamic by default.

Groups and broadcasts — what works, what's restricted

WhatsApp's URL scheme supports more than 1:1 chats. Two formats worth knowing about, with caveats.

Group invite links follow the format https://chat.whatsapp.com/<invite-code> — generated by the group admin from inside the group info screen. Encode that URL in a QR and any scanner that taps through joins the group immediately (or gets the "Join Group" preview, depending on the group's settings). Useful for community signup, event coordination, course cohorts, neighbourhood watch, anything where the relationship is many-to-many rather than one-to-one. The caveat: group invite codes are revocable. If the admin rotates the link (which they will, eventually — usually after a spam incident), every printed QR breaks. Use a dynamic redirect that you can update without reprinting.

Channels are WhatsApp's broadcast format — one-to-many, anonymous-to-the-audience messaging. Channel links follow https://whatsapp.com/channel/<id> and work in QR form. Useful for newsletter-style content, event announcements, or any case where you want subscribers to follow without two-way chat. Same revocation caveat applies; channel admins can change the URL.

Catalogue items. WhatsApp Business accounts can host a product catalogue inside the app. Individual catalogue items don't get their own QR-ready URLs through the standard wa.me scheme, but you can pre-fill a chat message that references a catalogue item ID — Hi, I'd like to order item #ABC123 — and let the customer pick the item from your catalogue once the chat opens. Not as clean as a direct product link, but it works.

The regions where WhatsApp QRs convert hardest

The same QR code performs wildly differently across markets. A WhatsApp QR on a restaurant table in São Paulo gets scanned at a rate three or four times what the same code gets in Boston. The reason isn't the design or the placement — it's whether WhatsApp is the cultural default for talking to a business in that country.

The countries where WhatsApp QRs are the strongest are, roughly in descending order of how universal the use case is:

  • Brazil. Over 90% smartphone penetration of WhatsApp per Meta's own reporting. The expected channel for booking a restaurant, scheduling a delivery, asking a shop a question, or paying a bill. Print a QR code without a WhatsApp option in Brazil and you're leaving conversion on the table.
  • India. Over 500 million users on the standard estimate. The default for small-business communication across both metro and Tier 2/3 cities. WhatsApp Business app adoption is high among service businesses.
  • Indonesia. Similar share to Brazil and India in the small-business segment. Layered with strong Telegram and Line usage, but WhatsApp leads for cross-generational communication.
  • Nigeria, Kenya, South Africa. Default messenger across most of sub-Saharan Africa, with strong Business app adoption among service providers (drivers, traders, salons, repair shops).
  • Mexico, Argentina, Colombia, Peru. Mirrors the Brazilian pattern across Spanish-speaking Latin America.
  • Spain, Italy, Germany, Netherlands. Strong consumer penetration, somewhat lower business-as-channel use than the above. WhatsApp QRs convert well for tourism, hospitality, and consumer services; weaker for B2B.
  • Saudi Arabia, UAE, Egypt. High consumer penetration; growing business-channel adoption.

The countries where WhatsApp QRs work least well — not because they don't scan, but because the audience doesn't reach for WhatsApp first — include the United States, Canada (where SMS, iMessage, and email dominate small-business communication), and China (where WeChat owns the channel entirely, and WhatsApp isn't generally accessible).

The practical rule: if you can't think of three friends who use WhatsApp to message local businesses, your audience probably isn't going to either. Run the local equivalent first — iMessage Business Chat for the US, WeChat for China, LINE for Japan — and add a WhatsApp QR alongside it only if you have meaningful international traffic. In markets where Telegram has taken the same role WhatsApp plays in Brazil (Iran, parts of Russia, slices of Indonesia and the crypto-trading audience anywhere), the equivalent move is a QR code that opens a Telegram channel, bot, or group — same one-scan-to-open-app pattern, different default messenger and a different URL anatomy worth knowing before any of it goes to print.

A QR code that takes someone where they already are is a better-converting QR code than one that takes them somewhere new.
WhatsApp as a business channel by region Where WhatsApp QRs convert hardest — and where they don't Default channel Brazil, India, Indonesia Nigeria, Mexico, Kenya Argentina, Colombia, Peru WhatsApp Business app is the everyday way customers talk to a shop, a restaurant, a tradesperson. QR codes convert hardest here. Common but not default Spain, Italy, Germany Netherlands, UK, Portugal UAE, Saudi Arabia, Egypt Used widely for personal chat; business adoption varies by industry. Strong in hospitality, tourism, consumer services. Wrong channel United States, Canada China (WeChat owns it) Japan (LINE owns it) SMS, iMessage, email, or a different regional messenger dominates. A WhatsApp QR scans — but doesn't get reached for.
The QR will scan in every country. Whether anyone reaches for WhatsApp to do business is the regional question. Print the channel your audience actually uses.

What WhatsApp's spec quietly forbids

The wa.me URL works because WhatsApp's terms of service let it work. Most of the time those terms are invisible — you build a QR, customers scan it, conversations happen. A handful of edge cases are worth knowing about before they bite.

Don't pre-fill messages that look like spam. WhatsApp's anti-spam systems watch for messages with identical pre-filled text arriving from a wide range of numbers in a short window. If a thousand people scan the same code in an hour and send the same pre-filled "Hi, I'd like to buy your course" line, WhatsApp's heuristics may flag the recipient. Vary the pre-fill, leave brackets the customer fills in, or rotate between two or three pre-fills via a dynamic redirect.

Don't use WhatsApp for unsolicited outreach. A QR code that visitors scan is, by definition, opt-in — they initiated the conversation. That's fine. Sending a templated message from the Business Platform to a list of numbers you scraped is not fine, and a fast way to lose the account. The platform's terms restrict initiating contact to users who explicitly opted in within the last 24 hours of a paid conversation window.

Group invite QRs need a Terms page. If your QR encodes a group invite link, the customer joins immediately on scan — there's no in-WhatsApp confirmation step for invite-link joins beyond the system's preview. For commercial groups (especially paid communities), a redirect to a landing page that shows the terms and a "Join the group" button is the cleaner pattern. Encode the landing page URL in the QR; the page hosts the invite link button.

Don't encode whatsapp:// URLs. As mentioned above, the custom URL scheme works inside WhatsApp's own scanners and on some Android cameras, but iOS Safari refuses to open it from a QR. The https://wa.me/ form is the only universally-supported option.

Don't print the number prominently if you change numbers frequently. A printed QR is permanent until reprinted. If the printed number is also visible as text underneath ("WhatsApp: +1 415 555 0199"), changing the number means reprinting both the QR and the text. For agency or affiliate setups where the destination might rotate, use a dynamic QR and print only the QR (or a short branded URL) — let the redirect handle the routing.

Same pre-flight as any printed QR, with one WhatsApp-specific twist.

  1. Print one proof at final size. Not at A4. Not at the screen preview size. At the actual printed dimensions. Most QR scan failures happen because the screen preview at 200×200 pixels looked fine and the printed 18mm version did not. See minimum QR code size for print for the math.

  2. Scan with three phones. A new iPhone, a recent Android, and one budget device under £150 or the local equivalent. Every phone should land in WhatsApp with the pre-filled message intact.

  3. Confirm the pre-fill survives. Pre-filled text gets truncated on some older Android builds at around 500-600 characters. Keep your message body under 200 characters and confirm the full text appears in the WhatsApp input field on every test device.

  4. Worst-light test. Outdoor noon, fluorescent office, dim restaurant. Phone cameras adapt their exposure to ambient light; a code that scans cleanly under one condition can fail under another.

  5. The "no WhatsApp installed" test. Take a device without WhatsApp and scan the code. The user should land on a wa.me landing page with a clear download option, not on an error. Confirm the page reads naturally for someone who's never used the app.

The same fail-state walkthrough in QR code not scanning — six fixes applies here. For WhatsApp specifically, the failure mode you'll hit most often is not "the QR doesn't scan" but "the pre-fill got truncated." Test at the full message length on every target device.

FAQ

Do I need a WhatsApp Business account to use a WhatsApp QR code?

No. A wa.me URL works with any WhatsApp number — personal or Business. The Business app adds a profile, hours, auto-replies, labels, and catalogue, which are worth ten minutes of setup for almost any business that's going to print QR codes. The free app is the practical default for SMBs; the Business Platform (API) is only relevant once volume crosses roughly 100 conversations a day.

Can I use my country code in the QR code, or does it need international format?

Always full international format with no plus sign. A US number like +1 415 555 0199 becomes 14155550199 in the wa.me URL. Local-format numbers (a bare 0415... or just 4155550199) fail because WhatsApp can't infer the country. The plus sign also breaks the URL — wa.me/+14155550199 won't parse on most camera apps.

What's the character limit on the pre-filled message?

WhatsApp itself doesn't publish a hard limit on text= values, but two ceilings hit in practice. URL length on older Android in-app browsers caps around 2,000 characters total — the URL plus encoded message. Pre-fills over 500-600 characters get truncated on some older WhatsApp builds. Keep the message under 250 characters of plain English (which becomes 400-500 after URL encoding) and the QR will print small and scan everywhere.

Can I track scans on a WhatsApp QR?

Only if you use a dynamic QR — one that encodes a short URL that redirects to wa.me, rather than encoding wa.me directly. A static WhatsApp QR opens the app with no server hop, so the scan is invisible to analytics. A dynamic one logs every scan with timestamp and rough region. The conversion metric that matters is scan-to-sent-message ratio; the message itself happens on WhatsApp's side, so you have to either ask customers how they found you or use a pre-fill that includes a campaign label like "saw your sign at [location]."

Does the QR work on iPhone if WhatsApp isn't installed?

Yes. iPhone Camera detects the wa.me URL and offers to open it in Safari, which lands on a WhatsApp click-to-chat page with a clear "Continue to chat" button and an App Store link. The user can download WhatsApp from that page, install, and the chat opens with your pre-filled message. Not as smooth as a one-tap flow, but no broken state.

Can multiple agents share a single WhatsApp QR?

Yes, but only through the WhatsApp Business Platform (API) and a third-party shared-inbox tool. The free Business app is single-device by design — one phone, one operator. If you need a team of three or four to respond to the same WhatsApp number, you'll need the Platform tier and a Business Solution Provider that hosts a shared inbox. For small operations, route to one number and use labels to track who's handling what.

What's the difference between a WhatsApp QR code and a regular QR code that has a wa.me URL?

None at the technical level. A "WhatsApp QR code" is just a QR code whose encoded text happens to be a wa.me URL. There's no special WhatsApp-only QR format. The official WhatsApp app does have its own in-app QR scanner that prioritises wa.me URLs, but any phone camera that handles HTTPS URLs reads the same code identically.

Sourcesshow citations

Try it on your own domain

Branded short links and dynamic QR codes, on your subdomain or your own domain. One-time purchase, no per-click fees.