How to make a WhatsApp QR code
By OpenQR · updated 17 October 2026
7 min read · Updated 17 October 2026
Make your WhatsApp QR code now: enter your number, optionally a message, download free, no watermark.
What is a WhatsApp QR code?
A WhatsApp QR code is a standard QR code whose payload is a wa.me link: a web address WhatsApp owns that means “open a chat with this number”. When a phone scans the code, WhatsApp opens with a blank chat to you already on screen. The scanner never has to type your number, save a contact, or find you in search. It works on iPhone and Android, with a WhatsApp account on regular or WhatsApp Business at either end.
The link itself is nothing secret or clever: https://wa.me/447700900123 is the whole mechanism. A QR code is the tidiest way to hand that link to a camera. Because the payload is a short string, the code stays low-density and scans from small print sizes, which matters on business cards and tape labels.
How to create a WhatsApp QR code
Using the generator above:
- 1
Enter your number with the country code
Full international format, digits only:
44for the UK then the number without its leading zero (447700900123, not07700…). OpenQR strips anything that is not a digit, so spaces and dashes are safe to leave in. - 2
Add a pre-filled message (optional)
The scanner’s WhatsApp opens with this text already typed in the input box, ready to send or edit. Something in their voice, like “Hi, I’d like to book a table”, works better than something in yours.
- 3
Download or print it
Export a PNG for screens or a vector SVG/PDF for print, watermark-free at any size. Stick it on the counter card, the van, the flyer or the delivery box.
Test with a phone that has not saved your number
The whole point of the code is that it works for a stranger. Scan your finished code with a phone whose contacts do not include you, and check the chat opens before you print anything.
The number format is where these break
Almost every broken WhatsApp QR code has the same root cause: the number was entered in its local format. A wa.me link needs the full international number, digits only: country code, then the national number without its leading zero. A UK mobile 07700 900123 becomes 447700900123; a Spanish 612 345 678 becomes 34612345678.
If the number is wrong, scanning still opens WhatsApp, which then shows The phone number shared via url is invalid. The code is not broken and the QR is not broken; the number inside it is. Re-enter it in international format and regenerate.
Pre-filled messages: what they can and cannot do
A pre-filled message is text the scanner’s WhatsApp drops into the message box on opening the chat. It is a draft, not a sent message: they see it, can edit it, and press send themselves. That is the honest limit, and it is also the etiquette: the customer stays in control of what they send you.
Two practical notes. First, write it in the scanner’s voice (“Hi, I’m interested in the workshop places”), because that is whose message it becomes. Second, keep it short: the text is URL-encoded into the link, so long messages make the link, and therefore the QR code, longer and denser. A sentence is plenty.
A wa.me QR code is not WhatsApp’s own QR code
WhatsApp itself can show you a QR code (Settings, then the QR icon next to your name). The two are different things, and conflating them causes avoidable reprints:
| WhatsApp’s in-app QR code | A wa.me QR code (what OpenQR makes) | |
|---|---|---|
| Points at | Your WhatsApp account profile | A chat with your number |
| Who controls it | WhatsApp; you can reset it from the app | You; it is printed and it is yours |
| Can expire or be revoked | Yes, resetting it kills every printed copy | No, it works for as long as you keep the number |
| Carries a pre-filled message | No | Yes, optionally |
| Needs WhatsApp to render it | Scanned inside WhatsApp itself | Scanned by any phone camera |
For anything you print, use a wa.me code. It is a plain link in a QR code: no expiry, no third party able to revoke it, and it keeps working when you move phones, because it encodes the number, not a session.
Does the person scanning need WhatsApp?
Yes. A WhatsApp QR code opens a WhatsApp chat; the scanning phone needs a WhatsApp account to send anything. Without the app installed, the wa.me page offers to open WhatsApp or sends them to the app store instead of a conversation. If a meaningful slice of your customers do not use WhatsApp, print a second code or a plain link, or use a dynamic code so you can repoint the same print later.
On desktop, the same link opens WhatsApp Web in a browser if they are logged in there. Convenient, but design for the phone: nearly every scan of a printed code happens on one.
Static or dynamic?
A static WhatsApp QR code encodes the wa.me link directly into the pattern. It works forever, needs no account, and costs nothing: that is the right choice for most prints. Its one rigidity is that the number and pre-filled message are frozen into the code, so changing either means reprinting.
A dynamic QR code encodes a short URL that redirects to the wa.me link. That buys you a scan count, and the ability to change the pre-filled message or even the destination (say, to SMS in a market where WhatsApp is not dominant) without touching the print. Dynamic codes are the paid tier; for a single printed number that will not change, static is honest and free.
Where WhatsApp QR codes earn their keep
- Tradespeople and vans: a code on the van door books the next job from the pavement.
- Shop counters and receipts: support questions arrive with a photo attached, which phone calls do not allow.
- Estate agents’ window cards: passers-by ask about a listing without calling. (See the estate and letting agents page for the full pattern.)
- Market stalls and food trucks: order ahead without staff handing out a number.
- Consulting rooms and clinics: appointment questions in writing, without publishing a phone number that rings.
Is a WhatsApp QR code safe to publish?
The code contains your number and nothing else, and a WhatsApp number is a number you have already chosen to be contactable on. It carries no password, grants no access, and tracks nobody: the QR pattern is inert. Anyone who photographs the print can message you, exactly as anyone who overhears your voicemail greeting could ring you. If that is unwanted, route the code to a business number you staff in writing rather than your personal one.
One scam worth knowing, because it targets QR users at both ends: never print or scan a code someone else generated that claims to “verify” a WhatsApp account. Those codes log your session into their phone (WhatsApp Web linking). A code you made yourself, from your own number, cannot do that.
Troubleshooting: WhatsApp QR code not working
- “Phone number shared via url is invalid”: the number was entered in local format, or with a leading zero or plus sign baked into the digits. Re-enter it as country code + number, no leading zero.
- Chat opens to the wrong person: a digit is wrong in the number. The code did what it was told; regenerate with the right one.
- Code scans but nothing happens: an out-of-date camera app on older Androids; opening the camera inside WhatsApp itself, or Google Lens, reads it.
- Pre-filled message arrives garbled: the text was not URL-encoded when the code was made. OpenQR encodes it automatically; tools that let you paste a raw link sometimes do not.
- Code stops working after you changed numbers: a static code is frozen to the old number. Regenerate and reprint, or use a dynamic code you can repoint.
- Printed code will not scan: usually print size or contrast, not WhatsApp. Keep it at least 2 × 2 cm for close-range scanning with a quiet zone, and check the print size guide before a run.
The wa.me link format (for the curious)
A WhatsApp QR code encodes a string like this:
https://wa.me/447700900123?text=Hi%2C%20I%27d%20like%20to%20book
- The number is international format, digits only: no
+, no spaces, no leading zero. textis the pre-filled message, percent-encoded: spaces become%20, apostrophes%27and so on.- The
textparameter is optional; without it the chat opens empty. api.whatsapp.com/send?phone=…is the older spelling of the same thing;wa.meis the current short form and makes a cleaner, sparser code.
Want to brand it?
Add your logo and colours in the customise panel, free and watermark-free. On a wa.me code the payload is short, so there is headroom for a logo without hurting scannability.