TapCub is live — analytics, insights and live chat, free on one platform

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
Generator

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.

Click-to-chat link
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.

HTML button code
<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

Runs entirely in your browser. Nothing you type here is uploaded or stored by TapCub.

Share these inputs: the values go after the # in the link, so they never reach a server.

Version v1.0Updated Update history

Read the result

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.

How to use it

Three steps to a working link

Test the link on your own phone before you print it or put it in an ad.

  1. 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. 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. 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.

Link format

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 +, no 00, 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
How common number formats are cleaned up (country picked in brackets)
You typeLink usesWhy
(212) 555-0147 (US +1)12125550147Brackets, spaces and dash removed; +1 added
07911 123456 (UK +44)447911123456Domestic 0 dropped
+44 (0)7911 123456447911123456The “(0)” convention removed
0049 30 12345674930123456700 is an international prefix, not part of the number
06 1234 5678 (Italy +39)390612345678Italian landlines keep the 0
Worked example

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.

Number +44 7911 123456, message “Hi! I have a question about my order.”
PlacementTagLink (shortened)
Instagram bioig-biowa.me/447911123456?text=Hi%21%20I%20have…%0A%0A%5Big-bio%5D
QR code on the boxpack-qrwa.me/447911123456?text=Hi%21%20I%20have…%0A%0A%5Bpack-qr%5D
Newsletter footernews-novwa.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.

Common mistakes

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.

FAQ

WhatsApp 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.

Changelog

Update history

New features, fixes and data refreshes for this tool, newest first.

  1. · 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

Next step

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.

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics