This feature is in Public Beta.
Verify WhatsApp helps your business verify users by delivering One-Time Passcodes (OTPs) via WhatsApp messages, adding to Verify's existing channels for OTP delivery. Adding WhatsApp for OTP delivery can boost your overall conversion rate, because it has over 2 billion users and it works with just a WiFi connection. It doesn't charge for non-delivery, and isn’t exposed to fraud that exploits the telecom network, such as toll fraud. Instead of building from scratch yourself, Verify WhatsApp lets you start sending OTPs right away, without throttling and other restrictions that make successful implementation difficult or even impossible.
- Create or use an existing Verify Service
- Start a verification with WhatsApp, by specifying
Channel=sms). See code sample.
- Check a verification just like any other channel
Billing is at the following list price that is consistent with Verify SMS:
Verify WhatsApp pricing = $0.05 per successful verification, plus the passthrough costs associated with WhatsApp business-initiated conversations.
- Start Verification is called twice within a 10-minute window. The
Toparameter is provided with the same US (+1) country-code phone number in both calls. Set
Channel=whatsapp. Two WhatsApp messages containing the same OTP code are sent.
- Check Verification is then called and it returns
- Expected Bill: $0.05 (successful verification) + $ 0.0147 (1 North America business-initiated conversation) = $0.0647
- A single business-initiated conversation includes all messages delivered to a single user (phone number) within a 24-hour window. Pricing of business-initiated conversations per country/region is listed on Meta’s USD rate card here. Verify WhatsApp is considered a single “business” in this pricing model
- The $0.005 “Twilio message rate” and “First 1000 free per month” shown in the Programmable Messaging cost calculator do not apply.
- In very rare cases, you may not be charged for a WhatsApp business-initiated conversation, because some other Verify WhatsApp customer already sent an OTP message and started a “conversation” with the same phone number within the last 24 hours.
- Contact sales to understand price discount options that may apply to you.
Verify WhatsApp works just like Verify SMS, except for the following important differences:
- No custom templates support.
- WhatsApp is not available in China.
- No blocking (e.g. block from sending a message to X country code).
- No routing (e.g. WhatsApp is the only "carrier").
Why is WhatsApp a good channel for OTP delivery?
Over the last few years, we’ve witnessed the rise of a new messaging channel: WhatsApp. With over 2 billion users across 180 countries, it is fast achieving ubiquity. Every WhatsApp user is identified by a unique phone number that they provided when creating their WhatsApp account, so this means that WhatsApp can directly replace SMS for all verification use cases, including sign-up, login, and transaction.
What did you learn from adding WhatsApp to your Authy app?
When we added WhatsApp as another channel to send OTPs in our Authy app's sign-up/login flow, we saw strong user adoption: sending about 2000 WA messages per day globally. Adoption was particularly strong in heavy WA countries like Brazil, India, Indonesia, and Germany where we saw 20-40% of users pick the WA option. Adding WhatsApp also resulted in a higher overall conversion rate, because it works on WiFi when there is no cell connection to receive SMS. WhatsApp also doesn’t charge for messages that aren’t delivered. Lastly, WhatsApp is a modern, IP-based network that isn’t exposed to fraud that exploits the telecom network, such as toll fraud, also known as traffic pumping. We actually saw this first hand with Authy where the SMS conversion rate experienced a big drop in a country due to toll fraud for a week, but the WhatsApp conversion rate didn’t change.
How does Verify WhatsApp work?
If you’re familiar with the Verify API for sending SMS OTPs, it’s literally just a one-word change to the API request to switch the desired Channel parameter from SMS to WhatsApp. Just like SMS, the pre-approved OTP template messages are sent through shared WhatsApp-enabled phone numbers maintained by Verify. The generated OTP code is the same, so that a user can use the code they receive from either WhatsApp or SMS if they requested both.
Can I use my own brand and phone number to send the WhatsApp OTP message, instead of Verify WhatsApp’s “generic sender”?
It’s not currently possible to set your brand and phone number as the sender due to how Verify’s WhatsApp Business Account works. However, your brand name will be included in the message body itself.
Note that one of the advantages of Verify’s generic sender is access to Verify’s WhatsApp Business Account and shared number(s). Some unique benefits of this include:
- Being at the highest message volume limit from the start.
- No waiting weeks to get approval for your own WhatsApp for Business Account and message templates.
- No throttling.
- Avoiding WhatsApp’s commerce policy that might block your business industry, like dating, cryptocurrency, digital subscription, or gambling. You still have to meet Twilio’s Acceptable Use Policy, however.
Which Twilio product should I use: Verify WhatsApp API or the Programmable Messaging API for WhatsApp?
If your use case is OTP delivery, then we strongly recommend the Verify WhatsApp API because it's our purpose-built solution for it, and it offers unique benefits that can be hard to replicate if you were to use the Programmable Messaging API for WhatsApp. This is especially true for dating, cryptocurrency, gambling, or digital subscription apps that are not allowed to use WhatsApp directly. Contact sales to discuss how these benefits apply to you.
What are some best practices for implementing WhatsApp OTP?
Based on our experience with our Authy app, we found that the following best practices improved the likelihood that a user completes the verification after choosing to receive an OTP message via WhatsApp (aka Conversion Rate):
- If the user is using your mobile app, you can check that the user also has WhatsApp installed on the same device, before displaying the "send message via WhatsApp" option. This avoids scenarios where the user might have setup a WhatsApp phone number at some point, but can't immediately receive messages on the device. Granted, the user may have WhatsApp installed on a different device, so you might exclude some users unnecessarily, but in our experience, this is a small percentage of users.
- Have the user confirm that they entered their phone number correctly, to avoid sending the OTP message to the wrong person.
- We've observed that "stock Android" phones are able to retrieve OTP codes directly from English-language WhatsApp messages and push it to your user while they are still in your app. Take advantage of this by making it easy to copy/paste the code into your UI.