WhatsApp Click-to-Chat Link Generator
A wa.me link with the number normalised to international form, because a leading zero or a plus is what makes WhatsApp say the number is not registered.
https://wa.me/447700900123?text=Hi%2C%20I%20have%20a%20question%20about%20the%20Pro%20plan.
Number as typed +44 7700 900123
Number in the link 447700900123
Digits 12
Message 41 characters
HTML
<a href="https://wa.me/447700900123?text=Hi%2C%20I%20have%20a%20question%20about%20the%20Pro%20plan." target="_blank" rel="noopener">Chat on WhatsApp</a>
The plus was removed. It is correct in a tel: link and wrong in a wa.me
one.
The number is the whole trick: full international form, no plus, no
spaces, no brackets and no national trunk zero. A wrong number produces
a link that opens WhatsApp and reports that the number is not
registered, which looks like the recipient's problem rather than the
link's.
The message is percent-encoded. Without that, an ampersand ends the
message at that point, a hash truncates it, and a newline breaks the URL
outright. Line breaks survive encoding, so a two-line prefilled message
works.
wa.me is the documented short form and it redirects to the right place
on desktop and on mobile. api.whatsapp.com/send is the older form and it
behaves the same; the difference is length. Neither needs an API key,
and neither is the WhatsApp Business API, which is a different product
with a different setup.
A prefilled message is a suggestion, not a commitment: the recipient
sees whatever the sender actually sends, and the sender can edit it
before sending. Do not put anything in it that has to be accurate, such
as an order number you have not verified.
Output is valid and updates as you type.
Fix the highlighted fields to update the output.
A click-to-chat link is https://wa.me/447700900123?text=Hi. The whole difficulty is
the number.
It has to be full international form: country code on, no plus, no spaces, no brackets, and no national trunk zero. A London number written 020 7946 0958 becomes 442079460958. The code goes on and the zero comes off, and if you leave the zero in you get 4402079460958, which opens WhatsApp and reports that the number is not registered. That message sends people looking for the fault at the other end.
So this normalises the number, checks it against the country code you name, and refuses the shapes that cannot work with the fix in the message.
How to use
- Type the number however you have it. Spaces, dashes, brackets and the plus are all stripped.
- Put the country code in the second field so the tool can check the number starts with it.
- Add a prefilled message if you want one. It is encoded for you.
Example
https://wa.me/447700900123?text=Hi%2C%20I%20have%20a%20question%20about%20the%20Pro%20plan.
Number as typed +44 7700 900123
Number in the link 447700900123
Digits 12
Message 41 characters
HTML
<a href="https://wa.me/447700900123?text=Hi%2C%20I%20have%20a%20question%20about%20the%20Pro%20plan." target="_blank" rel="noopener">Chat on WhatsApp</a>
The plus is gone, the spaces are gone, and the message’s comma and spaces are percent-encoded.
Pitfalls
The trunk zero is the number one problem. In most of Europe, Australia and much of Asia, a domestic number starts with a 0 that is not part of the international number. UK 07700 900123 is 447700900123, not 4407700900123. The United States and Canada have no trunk prefix, so a US number is just 1 plus the ten digits.
No plus, even though every other link format wants one. tel:+447700900123 is
correct. wa.me/+447700900123 is not.
Encode the message. An unencoded ampersand ends the message at that point, a hash truncates it, and a newline breaks the URL. The tool encodes it; if you assemble these links in code, encode there too.
The message is a suggestion. The sender sees it in their input box and can change it before sending. Do not put an order number, a price or a discount code in it and then treat what arrives as verified.
The number has to be on WhatsApp. The link cannot know. A landline, a number on a different messenger, or a number that has been recycled all produce the same “not on WhatsApp” screen.
Business hours are not in the link. A click-to-chat button visible at midnight starts a conversation at midnight. Either say your hours next to the button or use WhatsApp Business, which can send an away message.
wa.me links in an app’s in-app browser sometimes fail. Some social apps open links in a webview that cannot hand off to WhatsApp. There is nothing the link can do about it; it is worth knowing when a campaign’s clicks do not turn into chats.
Compatibility
Everything runs in the browser: nothing is uploaded and nothing is stored.
wa.me is WhatsApp’s own documented short form and works on iOS, Android, WhatsApp
Web and the desktop apps: it redirects to the right target for the device. The older
api.whatsapp.com/send?phone= form does the same thing in more characters, and it is
offered here because plenty of existing code uses it and consistency is worth something.
Neither form needs an API key, an account or approval. Both are different from the WhatsApp Business Platform, which is a paid API with templates and approval, and which is what you want for automated messaging rather than for a link on a page.
For a printed QR code pointing at a chat, generate the link here and paste it into the QR code generator on this site. The QR is just an encoding of this URL.
Frequently asked questions
What number format does WhatsApp want?
Can I use a link for a WhatsApp group?
chat.whatsapp.com/<code>, and it
comes from the group’s own settings inside the app. It cannot be constructed from
anything here.Does the recipient see who clicked?
Will this work as a WhatsApp button on my site?
target="_blank" and rel="noopener" are there so it opens without taking the
page with it.