Free tool WhatsApp link generator with QR code
Type the business number the way you would write it on a card, add the message you want customers to start with, and get a wa.me link that opens a chat with that text already filled in. The tool strips the spaces, brackets and leading zeros WhatsApp does not accept, encodes the message properly and draws a QR code you can print.
- wa.me format from WhatsApp’s help center
- QR code as PNG or SVG
- Runs locally
Build a click-to-chat link
Pick the country, type the number in any common format and write the opening message. The link, the HTML button and the QR code update as you type.
Sets the country code. For a country not in the list, choose the first option and type the number starting with + and its code.
Spaces, dashes, brackets, a leading 0 and + / 00 are all fine; they are removed. Leave empty to make a link that only carries a message.
Appears in the customer’s text box. They can edit it before sending. Emoji and any language work.
Added to the end of the message as [tag], so you can tell which link a chat came from. See “Tracking” below for why this is needed.
wa.me is the format WhatsApp documents today.
Higher levels survive more damage or a logo on top, but need more modules.
https://wa.me/12125550147?text=Hi%21%20I%20have%20a%20question%20about%20my%20order.Use it on buttons, in email signatures, social bios and ads.
<a href="https://wa.me/12125550147?text=Hi%21%20I%20have%20a%20question%20about%20my%20order." target="_blank" rel="noopener">Chat with us on WhatsApp</a>Paste into your site. & in the link is already escaped for HTML.
Number check
- OKNumber read as +1 2125550147. The link uses 12125550147.
QR code
Encodes the link above. Download SVG for print, PNG for chat and slides.
Version 5 · 37 × {size} modules · error correction M · 4-module quiet zone included
Share these inputs: the values go after the # in the link, so they never reach a server.
https://tapcub.com/tools/whatsapp-link-generator
Version v1.0Updated Update history
What each output is for
Everything below encodes the same chat: one number, one opening message.
Click-to-chat link
Opens WhatsApp on a phone, or WhatsApp Web / Desktop on a computer, with a chat to the number and the message typed in. Nothing is sent until the customer taps send. If the number has no WhatsApp account, WhatsApp shows an error instead of a chat.
Number check
Shows how the number was read: the country code, the national part, and any digits that were removed. A leading 0 (UK 07…, Germany 01…) is a domestic trunk prefix and must go; Italian landlines are the exception and keep it.
HTML button code
A plain <a> tag that opens in a new tab. Style it like the rest of your buttons. The & between parameters is escaped, so the HTML stays valid.
QR code
For printed material: packaging, receipts, store counters, event badges. The version number says how big the grid is; a long message makes a bigger, denser code that needs more print size to scan.
The prefilled text is only a suggestion. Customers can change or delete it, including any campaign tag.
Three steps to a working link
Test the link on your own phone before you print it or put it in an ad.
-
1
Enter the number
Pick the country and type the number as you normally would. For other countries, choose “already includes the country code” and type
+and the code. -
2
Write the opening line
Short and specific works better than “Hi”: “Hi, I’d like a quote for…” tells your team what the chat is about. Add a campaign tag if you use the same number in several places.
-
3
Copy, embed or print
Copy the link for bios and signatures, the HTML for your site, or download the QR code. Tap the link once yourself to check the chat opens.
wa.me + number in international format + ?text=
WhatsApp’s help center describes the format: https://wa.me/<number>, where the number is the full international number without zeros, brackets or dashes, and ?text= followed by the URL-encoded message. A link with only ?text= and no number lets the user choose a contact.
- Number: country code + national number, digits only, 7–15 digits in total (ITU-T E.164); no
+, no00, no domestic leading 0 - Message: UTF-8 percent-encoding; a space becomes
%20, a line break%0A, 😊 becomes%F0%9F%98%8A, 你 becomes%E4%BD%A0 - This tool also encodes
! ' ( ) *, so the link survives being pasted into HTML attributes, Markdown and chat apps - QR code: ISO/IEC 18004 byte mode, smallest version that fits, mask chosen by the standard penalty rules, 4-module quiet zone
| You type | Link uses | Why |
|---|---|---|
(212) 555-0147 (US +1) | 12125550147 | Brackets, spaces and dash removed; +1 added |
07911 123456 (UK +44) | 447911123456 | Domestic 0 dropped |
+44 (0)7911 123456 | 447911123456 | The “(0)” convention removed |
0049 30 1234567 | 49301234567 | 00 is an international prefix, not part of the number |
06 1234 5678 (Italy +39) | 390612345678 | Italian landlines keep the 0 |
One number, three links for three channels
A shop uses the same WhatsApp number on Instagram, on its packaging and in its newsletter. A different tag on each link shows where chats start.
| Placement | Tag | Link (shortened) |
|---|---|---|
| Instagram bio | ig-bio | wa.me/447911123456?text=Hi%21%20I%20have…%0A%0A%5Big-bio%5D |
| QR code on the box | pack-qr | wa.me/447911123456?text=Hi%21%20I%20have…%0A%0A%5Bpack-qr%5D |
| Newsletter footer | news-nov | wa.me/447911123456?text=Hi%21%20I%20have…%0A%0A%5Bnews-nov%5D |
The tag arrives at the end of the first message, for example “[pack-qr]”. Count chats per tag for a month and you know which placement is worth keeping. Some customers will delete the tag, so the counts are a floor, not an exact figure.
Why click-to-chat links fail
Almost every broken WhatsApp link comes down to the number or the encoding.
Number with + or 00
wa.me/+44… and wa.me/0044… are not the documented format. Use digits only, starting with the country code.
Keeping the domestic 0
wa.me/4407911… dials a number that does not exist. Drop the trunk prefix after the country code (Italy is the exception).
Unencoded message
A raw space, & or # cuts the message short or breaks the link. Always percent-encode the text, including emoji and non-Latin scripts.
Printing an untested QR code
Scan the printed proof at its real size, in the light it will be seen in. Long messages make dense codes that fail when printed small.
Chats from your site, with the context WhatsApp does not give you
A wa.me link hands the conversation to WhatsApp. TapCub keeps conversations on your site and in one inbox, next to where each visitor came from.
Taps on wa.me links as outbound clicks
The TapCub snippet records clicks on links to other sites, including wa.me, as outbound click events with no extra code.
Learn moreA hosted chat link for bios and QR codes
Every site key has a chat page at chat.askcub.com/{siteKey}. Put it in a bio or on packaging; messages land in the same inbox as the widget.
Learn moreOffline messages in the same inbox
Outside working hours the chat widget collects a message and an email, so after-hours visitors are not lost.
Learn moreWhatsApp link questions
Still have a question?
Chat with the team behind TapCub — we usually reply within a few hours on business days.
How do I create a WhatsApp link with a message?
Use https://wa.me/ followed by the full international number (digits only), then ?text= and the URL-encoded message, for example https://wa.me/447911123456?text=Hi%20there. The generator above does the cleaning and encoding for you.
What is the difference between wa.me and api.whatsapp.com?
Both open a chat. wa.me/<number>?text= is the short format WhatsApp’s help center documents today; api.whatsapp.com/send?phone=<number>&text= is an older form many sites still use. Use wa.me for new links.
Why does my WhatsApp link say the number is invalid?
Usually the number still has a + or 00, a domestic leading 0, or a missing country code, or the number is not registered on WhatsApp. Check the number line in the tool, then test the link from a phone that has WhatsApp.
Can I track clicks on a WhatsApp link with UTM?
Not inside WhatsApp: the chat does not carry UTM parameters or a referrer, and adding utm_ to a wa.me link does nothing. Track the click on your own page (an outbound-click event in your analytics), use a different tag in the prefilled message per placement, or use separate numbers. Links you send inside WhatsApp chats often arrive at your site without a referrer, so tag those with the UTM builder.
Does the prefilled message support emoji and other languages?
Yes. The text is encoded as UTF-8 and percent-encoded, so emoji, accents, Arabic, Chinese and other scripts arrive as typed. Line breaks are kept.
Can I make a link without a phone number?
Yes. https://wa.me/?text=… opens WhatsApp with the message and lets the person choose a contact or group. It is useful for “share this with a friend” buttons.
Which QR error-correction level should I use?
M is a sensible default. Use Q or H if the code will be printed on curved or textured surfaces or you plan to put a logo in the middle; use L for very long links that would otherwise get too dense.
Is my number sent anywhere?
No. The link and QR code are built in your browser. The share link stores your inputs only in the part of the URL after #, which browsers do not send to servers.
Update history
New features, fixes and data refreshes for this tool, newest first.
-
· v1.0
LaunchedFirst release.
Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates
Know which page made someone reach out
Install the TapCub snippet once: outbound clicks to WhatsApp are counted, and the built-in live chat answers visitors on the page they are reading.