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 and lower your costs, 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.
No-code with fallback to SMSContact Sales
If you're already using Verify SMS for OTP delivery, we can configure your account to first attempt delivery via WhatsApp for specific countries. If WhatsApp delivery fails, Verify will auto-send an SMS. You don’t need to change your UI either, as long as it refers to SMS/WhatsApp as generic “messages”. This "Verify WhatsApp with SMS Fallback" feature is in Pilot with limited availability. Contact sales to request it.
- 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
Effective June 1, 2023, your passthrough cost for WhatsApp message delivery will be reduced and the associated billable item will change on your invoice. This is due to a price change by WhatsApp.
- 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 differences due to differences in the underlying SMS and WhatsApp channels:
- 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").
- No Pre-Approved or Custom templates support.
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. However, your brand name will be included in the message body itself.
A key benefit of Verify’s generic sender is access to Verify’s WhatsApp Official Business Account ("green checkmark badge") and shared number(s). Unique benefits include:
- Being at the highest message volume limit from the start.
- Increased trust by recipients that the OTP message is legitimate, increasing conversion.
- No waiting and uncertainty in getting selective approval for your own WhatsApp Official Business Account ("green checkmark") 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. For details on how to do this, see the Detecting if the user has WhatsApp installed section of the What we learned from adding WhatsApp verification to the Authy App blog post. Checking if WhatsApp is installed 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.