WhatsApp QR codes, explained
A WhatsApp QR code holds an ordinary web address. Scanning it opens the address, the phone hands it to WhatsApp, and a chat with your number opens with your first message already typed. That is the whole mechanism, which is why it works from any camera with no app in between. The part worth getting right before printing is which address is inside it, because two very different ones go by the same name.
One is generated inside WhatsApp and points at an address WhatsApp issued. The other is a wa.me link you build yourself, from your own number. They look identical on a poster and they age very differently.
The two codes called the same thing
- The one the app makes · WhatsApp can show a code for your account, and it
resolves through an address WhatsApp issued in the form
wa.me/qr/…. The account it reaches is yours; the address is not, and the app offers to reset it. Before a code of this shape goes onto anything you cannot cheaply reprint, find out in the app what a reset does to copies already in the world, because whatever the answer is, it is a decision you no longer control once the poster is up. - The one you build · a plain wa.me link carrying your number, which anybody can construct and any generator can encode. Nothing issues it and nothing can revoke it. If the number stays on WhatsApp, the code keeps working.
Our free decoder reads a photo of a printed code and shows you the exact address inside without visiting it, which is the quickest way to find out which of the two is on your artwork.
The number format, which is what usually breaks
A wa.me link takes the number in full international form as bare digits: country code included, no plus sign, no spaces, no dashes, no brackets, and no leading zero from the local dialling convention. A number written the way it appears on a business card produces a link that opens WhatsApp on nothing at all, and the code looks perfectly fine while doing it.
https://wa.me/97235550142A first message rides along as a query parameter, encoded. This is the same number with an opening line attached, and it is what the reader will see typed and waiting when the chat opens:
https://wa.me/97235550142?text=Hi%2C%20I%20saw%20the%20poster- The message is part of the address · which means on a static code it is printed as permanently as the number is. A promotion in that first line has the life of the object it is printed on.
- Nothing is verified at build time · no generator can tell whether a number is on WhatsApp, so a typo produces a code that encodes, prints and scans perfectly and reaches nobody. Scan the proof with a real phone before the run, not just the decoder.
- The link is short, so the symbol is small · one of the quiet advantages of this kind. A wa.me address is a fraction of the length of a contact card, so the printed pattern is coarse and reads easily even at the size of a table tent.
What changing your mind costs
The number and the message live in the pattern on a static code, so editing either one means a new pattern and a new print run. There is no generator anywhere that can change them for you after the fact, and an article that implies otherwise is describing a dynamic code without saying so.
A dynamic WhatsApp code encodes a short link instead, and the number sits behind it. Change departments, change from a personal number to a business one, change the opening line for a new season, and the printed square is still correct. Because wa.me is an ordinary https address, the scan is answered with a redirect: the app opens in one tap, with no landing page in the middle. You can also route it, so a scan from one country reaches a different number than a scan from another · country routing covers that.
The trade, stated plainly: the dynamic version resolves through a service, so it is only as alive as the account behind it, while the static version has nothing between the scan and the address and so nothing that could pause it. Static vs dynamic works through that choice in general terms.
Our numbers, in public
A dynamic WhatsApp code costs 1 credit to create, once, and 1 credit per scan, prepaid, with no subscription and no surcharge for the kind being WhatsApp rather than a web address. Credits are valid for 18 months and any top-up rolls the whole balance forward. At a zero balance scans keep resolving for 14 days or 5% of your last top-up, whichever ends first; after that a scanner sees a paused page saying whose code it is, never an ad. The static version costs nothing: the free studio builds wa.me codes in your browser under More, and we do not meter them because there is nothing behind them to meter.
Questions
What is actually inside a WhatsApp QR code?
An ordinary https address. A code you build yourself holds a wa.me link with your number in international form and no punctuation, like https://wa.me/97235550142, and a phone treats it exactly as it treats any other web address: open it, and the operating system hands it to WhatsApp. There is no special WhatsApp encoding and no app needed to read the code.
Why did my printed WhatsApp QR code stop working?
Three usual causes, and the decoder tells them apart in a few seconds. The number in the link is no longer on WhatsApp. The link was built with a plus sign, spaces or a leading zero, so it opens WhatsApp on nothing. Or the code was generated inside WhatsApp itself, and the address it carries is one WhatsApp issued rather than one you own.
Can I change the number behind a printed WhatsApp code?
Only if the code is dynamic. A code holding a wa.me link directly has the number in the ink and cannot be edited by any generator, ours included. A code holding a short link can be repointed at a different number, or at something else entirely, and every printed copy follows on the next scan.
Can I change the prefilled message later?
Same answer, same reason. The prefilled text rides in the link as a query parameter, so on a static code the message is printed just as firmly as the number is. That is worth thinking about before a seasonal offer goes onto something with a long life, like a vehicle or a shopfront.
Does a WhatsApp code send people through a landing page?
Not here. wa.me is an ordinary https address, so a dynamic WhatsApp code answers a scan with a redirect and the app opens in one tap · there is nothing in between to slow it down or to look at. Kinds that genuinely cannot be a redirect, like a contact card or a WiFi password, are the ones realised as a page.
What does a dynamic WhatsApp code cost?
1 credit to create, once, and 1 credit per scan, prepaid, with no subscription and no surcharge for the kind. Credits are valid 18 months. A static wa.me code costs nothing at all and our free studio will make you one.