The WhatsApp Business Platform enables businesses to communicate with customers at scale.
This documentation is intended for developers using our APIs. If you are looking for information on other ways to use WhatsApp for your business see the WhatsApp Business site.
Core APIs and capabilities
WhatsApp Cloud API
WhatsApp Cloud API enables you to programmatically message and call on WhatsApp. You can use Cloud API to send users a variety of messages, from simple text messages to rich media and interactive messages.
WhatsApp Cloud API includes:
Messaging: Send text messages, rich media, and interactive messages
Calling: Make and receive calls to customers
Groups: Create, manage, and message WhatsApp group conversations
WhatsApp messaging provides a powerful and private way to engage with customers. Use Cloud API to:
Send order confirmations and shipping updates
Share appointment availability and other reminders
Drive upsell and cross-sell opportunities
Facilitate end-to-end transactions, from product discovery to payment
Enable multi-factor authentication or one-time passwords to verify accounts and users
MM API for WhatsApp is an API for sending optimized marketing messages on WhatsApp.
When you send marketing messages through the MM API for WhatsApp, you can access new features not available on Cloud API and get automatic optimizations, so high engagement messages can reach more customers.
The MM API for WhatsApp includes:
Quality-based delivery: Up to 9% higher marketing message deliveries over Cloud API for high engagement content.
Automated creative optimizations: Automatic enhancements to marketing creative to increase message performance.
Performance benchmarks and recommendations: Comparison of read and click rates versus similar templates from businesses in your region.
Conversion metrics: Measure marketing messages that lead users to perform app events such as ‘Add to Cart’, ‘Checkout Initiated’, or ‘Purchase’.
Webhooks deliver JSON payloads to your server for message status updates, incoming messages, asynchronous error handling, and many other notification utilities.
The platform relies heavily on webhooks, as the contents of any message sent from a WhatsApp user to your business phone number is communicated via webhook, and all outgoing message delivery status updates are reported via webhook.
A business portfolio allows organizations to bring all their Meta business assets together so they can be managed in one place. On the WhatsApp Business Platform, a business portfolio mainly serves as a container for WhatsApp Business Accounts (WABA). You must have a business portfolio to use the platform.
Business portfolios can be verified, and verification status factors into improved functionality, such as higher throughput and Official Business Account status.
Business phone numbers, real or virtual, are used for sending and receiving WhatsApp messages. They can have display names and earn Official Business Account status.
Templates are customizable messages that you can construct in advance of sending them. Template messages generally require approval before you can send them.
Templates are useful for messaging at scale. They are also the only type of message that can be sent to WhatsApp users outside of a customer service window.
Templates have quality scores and are subject to various messaging limits.
When you get started with Cloud API, a test WABA and test business phone number are automatically created for you. Test WABAs and test phone numbers are useful for testing purposes, as they have relaxed messaging limits and don’t require a payment method on file in order to send template messages.
You can delete your business portfolio and its test resources if:
You are an admin on the business portfolio associated with the app
No other apps are associated with the business portfolio
The business portfolio is not associated with any other WABAs
The WABA is not associated with any other business phone numbers.
To delete your business portfolio and its test resources:
Go to the App Dashboard > WhatsApp > Configuration panel.
Locate the Test Account section.
Click the Delete button.
We recommend using our API Playground when testing endpoints. You can find the playground in the “API Reference” section on the left sidebar of this page. In each reference, there is a “Try it” button which opens the playground.
With the Cloud API, every WhatsApp message continues to be protected by Signal protocol encryption that secures messages before they leave the device. This means messages with a WABA are securely delivered to the destination chosen by each business.
The Cloud API uses industry standard encryption techniques to protect data in transit and at rest. The API uses Graph API for sending messages and Webhooks for receiving events, and both operate over industry standard HTTPS, protected by TLS. See our Encryption Overview whitepaper for additional details.
The Cloud API automatically scales usage within your rate limits.
Rate limits
Requests made by your app on your WhatsApp Business Account (WABA) are counted against your app’s request count. An app’s request count is the number of requests it can make during a rolling one hour.
For the following endpoints, your app can make 200 requests per hour, per app, per WABA, by default. For active WABAs with at least one registered phone number, your app can make 5000 requests per hour, per app, per active WABA.
For more information on how to get your current rate usage, see Headers.
In addition, the platform applies several message rate limits:
Test message rate limit (for unverified WABAs)
Quality rating and messaging limits (for verified WABAs)
Capacity rate limit (for all accounts)
Business phone rate limit (per phone number)
Pair rate limits
Business phone numbers can send 1 message every 6 seconds to the same WhatsApp user (0.17 messages/second), which equals about 10 messages per minute or 600 per hour. Exceeding this limit triggers error code 131056 until you are back within the allowed rate.
You may send up to 45 messages in a 6-second burst, but this “borrows” from your future quota. After a burst, you must wait the equivalent time it would take to send those messages at the normal rate (e.g., a burst of 20 requires a ~2-minute wait before sending more to that user).
To manage post-burst throttling, if a send request fails, retry after 4^X seconds (starting with X=0 and increasing X by 1 after each failure) until successful.
Terms and policies
User opt-in
You must obtain user opt-in before sending message templates. Opt-in must clarify your business name and intent.