Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Verify WhatsApp Overview


(error)

Danger

Verify WhatsApp is in the process of transitioning from the current model where WhatsApp messages are sent via WhatsApp Senders owned by Verify to a future model where you need to bring your own WhatsApp Sender by March 1, 2024. This doc has been updated to reflect the behavior of Verify WhatsApp in the future model.


What is Verify WhatsApp?

what-is-verify-whatsapp page anchor

Verify WhatsApp helps your business verify users by delivering One-Time Passcodes (OTPs) via WhatsApp messages with your brand, 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 Wi-Fi connection. It doesn't charge for non-delivery, and isn't exposed to fraud that exploits the telecom network, such as toll fraud.

No-code with fallback to SMS

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.

Contact Sales(link takes you to an external page)

  1. Create or use an existing Verify Service
  2. Start a verification with WhatsApp, by specifying Channel=whatsapp (instead of Channel=sms ). See code sample.
  3. Check a verification just like any other channel

Start a Verification with WhatsApp

start-a-verification-with-whatsapp page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_11
// Download the helper library from https://www.twilio.com/docs/node/install
_11
// Find your Account SID and Auth Token at twilio.com/console
_11
// and set the environment variables. See http://twil.io/secure
_11
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11
const authToken = process.env.TWILIO_AUTH_TOKEN;
_11
const client = require('twilio')(accountSid, authToken);
_11
_11
client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11
.verifications
_11
.create({to: '+15017122661', channel: 'whatsapp'})
_11
.then(verification => console.log(verification.accountSid));

Output

_23
{
_23
"sid": "VEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_23
"service_sid": "VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_23
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_23
"to": "+15017122661",
_23
"channel": "whatsapp",
_23
"status": "pending",
_23
"valid": false,
_23
"date_created": "2015-07-30T20:00:00Z",
_23
"date_updated": "2015-07-30T20:00:00Z",
_23
"lookup": {},
_23
"amount": null,
_23
"payee": null,
_23
"send_code_attempts": [
_23
{
_23
"time": "2015-07-30T20:00:00Z",
_23
"channel": "whatsapp",
_23
"attempt_sid": "VLXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
_23
}
_23
],
_23
"sna": null,
_23
"url": "https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Verifications/VEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
_23
}


This video(link takes you to an external page) shows how we added WhatsApp as another verification option in our Twilio Authy Android mobile app.(link takes you to an external page)


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 Authentication Conversations.

Pricing Example

pricing-example page anchor
  • Start Verification is called twice within a 10-minute window. The To parameter 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 status=approved .
  • Expected Bill: $0.05 (successful verification) + $0.0135 (1 Verify - WhatsApp Conversation Authentication - United States) = $0.0635.
  • A single WhatsApp Authentication 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(link takes you to an external page) . 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(link takes you to an external page) do not apply.
  • In very rare cases, you may not be charged for a WhatsApp Authentication 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(link takes you to an external page) to understand price discount options that may apply to you.

Differences compared to Verify SMS

differences-compared-to-verify-sms page anchor

Verify WhatsApp works just like Verify SMS, except for the following differences due to differences in the underlying SMS and WhatsApp channels:



Why is WhatsApp a good channel for OTP delivery?

why-is-whatsapp-a-good-channel-for-otp-delivery page anchor

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?

what-did-you-learn-from-adding-whatsapp-to-your-authy-app page anchor

When we added WhatsApp as another channel to send OTPs in our Authy app's sign-up/login flow(link takes you to an external page), 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?

how-does-verify-whatsapp-work page anchor

In order to use Verify WhatsApp, you need to first provide us with your WhatsApp Sender. Once this configuration step is done, 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. 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"?

can-i-use-my-own-brand-and-phone-number-to-send-the-whatsapp-otp-message-instead-of-verify-whatsapps-generic-sender page anchor

Absolutely. Effective March 1, 2024, you are required to bring your own brand and phone number (Sender) to send the WhatsApp OTP message. Customers previously using Verify WhatsApp's "generic sender" need to bring their own WhatsApp Sender to comply with Meta's WhatsApp business messaging policy(link takes you to an external page).


Which Twilio product should I use: Verify WhatsApp API or the Programmable Messaging API for WhatsApp?

which-twilio-product-should-i-use-verify-whatsapp-api-or-the-programmable-messaging-api-for-whatsapp page anchor

If your use case is OTP delivery, then we strongly recommend Verify because it can intelligently orchestrate OTP delivery between WhatsApp, SMS, RCS and other channels to maximize conversion and reduce cost. In a single phone number verification session, the same OTP code that's generated by Verify is sent across all channels, simplifying code validation.

Additionally, we auto-create authentication message templates(link takes you to an external page) in multiple languages that you can use with your own brand and provide end users with a copy code button to enhance their experience. Contact sales(link takes you to an external page) to discuss how these benefits apply to you.


What are some best practices for implementing WhatsApp OTP?

what-are-some-best-practices-for-implementing-whatsapp-otp page anchor

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(link takes you to an external page) . Checking if WhatsApp is installed avoids scenarios where the user might have set up 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.

Why am I unable to send Verify WhatsApp messages to India?

why-am-i-unable-to-send-verify-whatsapp-messages-to-india page anchor

After March 1, 2024, Meta is not allowing any business to send WhatsApp Authentication templates, which contain OTP codes, to India (+91 country code). To minimize customer disruption from this Meta policy change, Twilio Verify's omnichannel orchestration logic will fallback to sending an SMS OTP message instead of a WhatsApp OTP message.


What are the benefits of using Verify WhatsApp with this new model change?

what-are-the-benefits-of-using-verify-whatsapp-with-this-new-model-change page anchor

Verify continues to be the best solution for the OTP use case because it can intelligently orchestrate OTP delivery between WhatsApp, SMS, RCS, and other channels to maximize conversion and reduce cost. Verify also saves you setup time by auto-creating templates for you in multiple languages using the new Copy Code authentication templates.


How many Verify WhatsApp requests can I send using my own WhatsApp Sender?

how-many-verify-whatsapp-requests-can-i-send-using-my-own-whatsapp-sender page anchor

Customers using Verify WhatsApp with their own Sender are subject to Meta’s Messaging limits(link takes you to an external page).


Should I use the same WhatsApp Sender for OTP messages as well as other marketing messages?

should-i-use-the-same-whatsapp-sender-for-otp-messages-as-well-as-other-marketing-messages page anchor

As a best practice, we recommend a single sender for OTP messages as it provides a consistent end user experience and streamlines operations by maximizing your Sender messaging limits. That said, if your business uses a single sender for marketing purposes, you need to take into account that users may block a marketing message resulting in them not receiving OTP messages sent by you.


Rate this page: