WhatsApp's help page on linking from other apps lists two actions for the whatsapp:// scheme, app and send, and one parameter, text. The send action opens the new chat composer. No parameter for choosing a phone number is listed. For opening a chat with a specific number, the documented route is the wa.me link.
wa.me, the scheme and the intent
- The https link (
https://wa.me/15551234567). The file wa.me publishes for Apple claims almost every path for WhatsApp, and wa.me's assetlinks.json names com.whatsapp. So the link opens a chat with that number in WhatsApp, or a wa.me page offering the app. A message added as?text=stays in the link. - The custom scheme (
whatsapp://send?phone=15551234567). The generator adds a phone parameter that WhatsApp's help page doesn't list. Treat number targeting through the scheme as undocumented, and only use it where you've tested it yourself. - The Android intent. Tapped in Chrome on Android, it opens WhatsApp, or falls back to the wa.me link inside it.
The number is where these links break
WhatsApp asks for the full number in international format, without brackets, dashes, plus signs or leading zeros. Its own example: use https://wa.me/15551234567, don't use https://wa.me/+001-(555)1234567. The generator keeps only the digits from the path, so it removes brackets, dashes and a plus. It can't tell a leading zero from the rest of the number, though, so that example comes back as wa.me/0015551234567, still wrong.
To build a link from a phone number, use the click to chat link generator, which handles the country code and the prefilled message and shows what the number becomes. The deep link generator is for checking a wa.me link you already have. A link that carries the number in a ?phone= parameter instead of the path isn't one it reads.
How to test it
- Tap the wa.me link on a phone with WhatsApp. It should open a chat with the number, with your message typed in if you added one.
- If the chat opens to the wrong person or no one, check the digits against WhatsApp's format rule above before anything else.
Telegram's scheme, unlike this one, matches its documentation exactly; see the Telegram deep link page. For every other platform, start from the deep link generator.