WhatsApp Link Generator

Build a click-to-chat link with a pre-filled message and a downloadable QR code. Numbers are normalised, notes flag likely mistakes, nothing is uploaded.

🌐 Español

🔒 Private by design: everything runs locally in your browser and never uploaded to any server.

A click to chat link is a plain URL that opens a WhatsApp conversation with a specific number, optionally with a message already typed in. On a phone it opens the app, and on a desktop it opens the web client if the person is signed in.

That makes it the most direct call to action available for a small business. A contact form is a form, an email address invites a wait, and a phone number on a page requires copying it into a dialler. A link that opens a chat with the first sentence already written removes every step between interest and contact.

The pre-filled message is doing more work than it appears to. Most people who want to make contact hesitate over how to begin, and filling in the opening line for them is what converts a click into an actual message.

  1. Enter the phone number, including its country code. Formatting does not matter.
  2. Read any notes that appear under the field.
  3. Type the message you want pre-filled. Leave it blank for a bare chat link.
  4. Copy the generated link, or download the QR code as a PNG.

What the number cleanup does and does not do

Every non digit is stripped, so it makes no difference at all how you format the number. Plus signs, spaces, dashes, brackets and dots are all removed. A leading double zero goes too, since that is the international access prefix and means the same thing as a plus.

One thing is deliberately left alone: a single leading zero. In many countries that is the national trunk prefix, dialled inside the country and dropped when calling from abroad, so removing it would be correct. In others the digits following a country code legitimately start with a zero, so removing it would break the number.

There is no way to tell which case you are in without a database of numbering plans, which this page does not have and will not pretend to. So the zero stays and a note appears telling you to replace it with the country code, which is the honest handling of an ambiguous input.

The notes are a shape check, nothing more

The hints under the number field are based purely on how many digits you typed and whether it starts with a zero. Nothing is verified.

There is no way for a web page to check that a number exists, that anyone answers it, or that it is registered with WhatsApp. Any tool claiming otherwise is either guessing or sending your number somewhere. What a length check can catch is the genuinely common mistakes, namely a number typed without its country code, which comes out too short, and one typed with a country code twice, which comes out too long.

Nothing is ever rejected. The link is built regardless of what the notes say, since the notes might be wrong about an unusual but valid number.

Encoding, and the space problem

Putting a message into a URL means percent encoding it, and there are two encodings that look similar and are not.

Form encoding, used when a browser submits a form, writes a space as a plus sign. That only turns back into a space in software applying form rules. A link opened by a phone app is not a form submission, so a plus sign arrives as a literal plus sign in the message.

Standard percent encoding writes a space properly and also handles newlines, ampersands, hash symbols and non ASCII text including accents and emoji. That is what is used here, which is why a multi line message with an emoji in it arrives intact. If you want to inspect or hand build an encoded value yourself, URL Encode exposes the same operation.

The QR code

The code encodes exactly the string shown in the link box, with no separately assembled second copy, so the two can never disagree. Size and error correction are both adjustable, and higher error correction is worth choosing for anything printed since a code on a poster or a window will get dirty and scuffed.

A long pre-filled message can exceed what a QR code can hold, especially at a high error correction level, in which case the encoder refuses and the page shows why rather than displaying a broken image. Shortening the message fixes it, and the link is unaffected either way.

For a code around something other than a chat link, QR Code Generator handles arbitrary text, WiFi QR Code Generator covers network credentials, and QR Code Reader goes the other way. To add campaign tracking to a link before turning it into a code, UTM Link Builder is the step before this one. The rest are on the generators hub.

See it in action

Screenshot of the WhatsApp Link Generator tool with a phone number field that accepts any formatting - spaces, dashes, brackets, a leading plus or 00 are all stripped automatically, though the country code is required - plus an optional pre-filled message, built into a click-to-chat link
WhatsApp Link Generator mid-process: a phone number field that accepts any formatting - spaces, dashes, brackets, a leading plus or 00 are all stripped automatically, though the country code is required - plus an optional pre-filled message, built into a click-to-chat link.
Diagram: where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen
Where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen.

Frequently asked questions

Does the message send automatically when someone opens the link?

No, and it is important not to imply otherwise. Opening the link opens a chat with that number and drops your text into the message box. The recipient still has to press send, and can edit or delete the text before doing so. It is a shortcut past the typing, not an automated message, and the page says so under the result.

How is the phone number cleaned up?

Everything that is not a digit is removed, so spaces, dashes, brackets, dots and a leading plus all disappear. A leading double zero is then removed too, because that is the international access prefix and is exactly equivalent to the plus. So a number written with a plus, one written with a double zero, and one written with brackets and dots all end up as the same digits.

Why does it not strip a single leading zero?

Because whether that zero should go depends on the country, and the tool has no phone number database to decide with. In many countries a leading zero is the national trunk prefix that you drop when dialling from abroad, and in others the digits after a country code legitimately begin with one. Removing it blindly would silently corrupt the second case, so instead a note appears telling you to replace it with the country code yourself.

What are the notes under the number field?

Non blocking hints based on length and shape only. Fewer than 7 digits or more than 15 gets a note, since 15 is the maximum length of an international number including the country code and anything under 7 was almost certainly typed without one. A number still starting with zero after cleanup gets its own note. None of these reject anything, and none of them claim the number exists or has WhatsApp, because that cannot be checked from a web page.

How is the message encoded into the link?

With standard percent encoding rather than form encoding, which matters because the two differ on spaces. Form encoding writes a space as a plus sign, which only turns back into a space in software that applies form rules, and a link handed to a phone app is not a form. Percent encoding writes it properly, and also handles newlines, ampersands, accented characters and emoji correctly.

Does the QR code encode the same link shown on screen?

Yes, exactly the same string. There is no second copy of the URL built anywhere in the tool, so the code and the text box cannot drift apart. You can choose the image size and the error correction level, and download it as a PNG named after the number.

What happens if the message is too long for a QR code?

The encoder refuses and the page shows the reason it gave, rather than displaying a broken image. A QR code has a finite capacity and a long pre-filled message can exceed it, particularly at a high error correction level. Shortening the message or lowering the error correction both help, and the link itself still works regardless since only the code is affected.

Is anything about my number or message sent anywhere?

No. The link, the notes and the QR image are all produced in your browser tab, and there is no account or history. That matters because a click to chat link usually contains a real phone number, often a business one, and there is no reason for that to pass through anybody else's server just to be formatted.

Related tools