Overview
Twilio supports sending and receiving messages to and from WhatsApp users. The WhatsApp channel helps expand your reach and availability to your important contacts on any platform that is convenient for them. Best of all, WhatsApp messages are controlled by Twilio's existing Programmable Messaging API. Here's what you need to know to get started.
What You Need To Know
Twilio Sandbox for WhatsApp
The Twilio Sandbox for WhatsApp allows you to get started building and prototyping your applications immediately, without needing to register your WhatsApp Senders and Facebook Business Manager information first. The Sandbox provides a testing environment and shared Twilio test number to send pre-approved template messages and receive messages from WhatsApp numbers that have joined your Sandbox.
To explore the Sandbox, visit the "Try It Out" section for WhatsApp in the Twilio Console.
Using WhatsApp in Production
If you are a new direct customer (you will be sending messages on behalf of your own brand and you are not working with an ISV) then you can get started straight away from the console using our Self Sign-Up process. Find out more about Self Sign-Up here.
ISV customers should read the guide for the Tech Provider Program to understand the requirements and limitations associated with using the WhatsApp Business API with Twilio in production.
Messaging capabilities
WhatsApp messages over Twilio Programmable Messaging have the following capabilities and limitations:
Templates and Session messages: Outbound messages to WhatsApp users must be sent using one of the pre-approved templates. These are generally transactional messages (delivery alerts, appointment reminders, etc.) sent to users who have opted in to receive messages from you. To see the approved templates for the WhatsApp Sandbox, visit Console. You'll be able to submit your own templates for approval for use in production through the console here.
All incoming messages, or outgoing replies to these messages within 24-hours, are considered Session messages, and don't need to follow a template. A messaging session starts when a user sends your application a message, and lasts for 24 hours from the most recently received message. For more info, please see "Templates and Sessions" in Rules and Best Practices for WhatsApp Messaging on Twilio.
Approved use cases: WhatsApp supports the following use cases:
- Customer Care (Known as service conversations): initiated with an inbound message from an end user. When the first message is received from the user, it opens a conversation, in which the business can reply back with Session (non-template) messages. The conversation will remain open for 24hrs from the last message received from the user.
- Utility: Confirm or suspend an existing transaction, change or update a transaction, account, billing, or payment notification
- Authentication: Send codes that allow your customers to securely access their accounts.
-
Marketing/Promotional: Send promotional offers, product announcements, and more to increase awareness and engagement.
Send a template message to a WhatsApp user (Content Templates)
Sending messages with content templates is simple and prevents the mismatch errors that were common when using the WhatsApp Template system.
To send a template message using a Content Template, users only need to supply:
-
Recipient: The
To
parameter consisting ofwhatsapp:
followed by the destination WhatsApp user number (using E.164 formatting). -
Sender: The
From
parameter consisting ofwhatsapp:
followed by the sending WhatsApp number (using E.164 formatting).- Until your Twilio number has been enabled, you may use the WhatsApp Sandbox number for testing and prototyping with WhatsApp.
- ContentSid (this is the template sid that begins with HX)
- ContentVariables (if applicable for the template)
Here’s an example cURL script:
curl -X POST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json \
--data-urlencode "To=whatsapp:+13105555555" \
--data-urlencode "From=whatsapp:+12125551234" \
--data-urlencode "ContentSid=HXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-u "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:your_auth_token"
Send a template message to a WhatsApp user (Legacy WhatsApp Templates)
End of life for Legacy WhatsApp Templates is scheduled for April 1st, 2025.
Please refer to Upgrading WhatsApp Templates to Content Templates for more information.
To send a WhatsApp message, your application needs to make an HTTP POST request to Twilio’s Programmable SMS Message REST API resource with three required pieces of information; A recipient, a sender, and your message.
-
Recipient: The
To
parameter consisting ofwhatsapp:
followed by the destination WhatsApp user number (using E.164 formatting). -
Sender: The
From
parameter consisting ofwhatsapp:
followed by the sending WhatsApp number (using E.164 formatting).- Until your Twilio number has been enabled, you may use the WhatsApp Sandbox number for testing and prototyping with WhatsApp.
-
Message: The
Body
parameter consisting of the desired message you wish to send.- New outbound messages must be sent using pre-approved templates. Responses within 24hours have no template requirement. See Messaging Capabilities above for more information.
Here’s an example cURL script:
curl -X POST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json \
--data-urlencode "To=whatsapp:+13105555555" \
--data-urlencode "From=whatsapp:+12125551234" \
--data-urlencode "Body=Your appointment is coming up on {{Date}} at {{Time}}" \
-u "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:your_auth_token"
This example will contact the destination (310) 555-5555 from the sender (212) 555-1234 via WhatsApp, and send the following message:
Your appointment is coming up on {{Date}} at {{Time}}
To make this script work for you, make the following updates, and then paste it into a terminal window:
- Line 1 update with your Account SID
- Line 2 update with a valid destination
-
Line 3 update with a valid sender number
- Until your Twilio number has been enabled for the beta, use your WhatsApp Sandbox number for sending messages.
-
Line 4 update with your desired message
- New outbound messages must be sent using pre-approved templates. Responses within 24hours have no template requirement. See Messaging Capabilities above for more information.
- Line 5 update with your Account SID and Auth Token.