The Complete Guide to WhatsApp Business API
Everything you need to know to start sending WhatsApp messages programmatically — from setup to your first broadcast.
What is the WhatsApp Business API?
The WhatsApp Business API (Meta’s WhatsApp Business Platform, run on the Cloud API) is the official channel for businesses to talk to customers at scale on WhatsApp. Unlike the WhatsApp Business App (which is designed for small businesses using a phone), the API lets you:
- Send messages programmatically from your own systems
- Integrate with your CRM, e-commerce platform, or support tooling
- Handle message volumes a phone can’t
- Automate conversations with chatbots and workflows
StartMessaging is a WhatsApp CRM and API built on the official WhatsApp Business Platform, and a Meta Tech Provider. You connect your own WhatsApp Business Account (WABA) through Meta’s Embedded Signup, so your number, templates and message billing stay in your own account.
How the API works
At its core, the StartMessaging WhatsApp API is an HTTP REST API under https://waba-api.startmessaging.com/api/v1. You authenticate with a workspace API key as a Bearer token and send a POST to send a message. WhatsApp delivers it to the recipient’s app.
curl -X POST https://waba-api.startmessaging.com/api/v1/messages \
-H "Authorization: Bearer sm_live_your_api_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042-confirmation" \
-d '{
"to": "+919876543210",
"type": "template",
"template": {
"name": "order_confirmation",
"language": "en_US",
"parameters": [{ "text": "Aarti" }, { "text": "#1042" }]
},
"clientReference": "order-1042"
}'
A 201 response means WhatsApp accepted the message. Delivery, read receipts and replies come back via signed webhooks: StartMessaging sends a POST to your server for message.delivered, message.read, message.failed, message.received and other events.
Message templates
Messages you initiate, and any message after a customer’s 24-hour window has closed, must use pre-approved message templates. You create templates in the dashboard and Meta reviews every one; review time is set by Meta.
There are three categories. Meta sets the price by category and bills it directly to your WhatsApp Business Account; StartMessaging never charges per message.
| Category | Use case | Billed by Meta |
|---|---|---|
| Utility | Order updates, bookings, payments, account alerts | Every delivered message, including inside the 24-hour window |
| Authentication | One-time passwords and login codes | Every delivered message |
| Marketing | Promotions, re-engagement, announcements | Every delivered message |
Since 1 October 2026 Meta charges per delivered template, utility templates included even inside the 24-hour customer service window. When a customer messages you, a 24-hour window opens in which you can send free-form messages; these service replies are free up to a monthly allowance per phone number. A customer who messages you from a Click-to-WhatsApp ad or a Facebook Page button opens a 72-hour free entry point window. See Meta’s WhatsApp pricing for the rates.
Setting up with StartMessaging
- Create an account on the sign-up page and create a workspace. Your first workspace starts a 14-day free trial of Business.
- Connect your WhatsApp Business Account on the Connect page through Meta’s Embedded Signup, and register the number with a 6-digit PIN.
- Add a payment method in WhatsApp Manager. Meta needs it before you can send templates.
- Create a template and submit it to Meta.
- Create an API key in Developers → API keys (it starts with
sm_live_and is shown once), then send your first message withPOST /api/v1/messages.
The getting started guide walks through each step.
Sending a broadcast
Broadcasts to a list of opted-in contacts are campaigns, which you build and send from the dashboard on the Team plan and above: scheduling, quiet hours and a pre-launch check that estimates Meta’s cost. The API reads campaigns and their results (GET /api/v1/campaigns), and the campaign.completed webhook tells you when one finishes.
From your own code, you send one message to one number per POST /api/v1/messages call. Send an Idempotency-Key with each one so a retry never sends twice, and a clientReference (your order id, for example) that comes back on every status webhook for that message. The API is on every plan, from Developer Free with 100 API messages a month; see pricing for each plan’s allowance and rate limits.
What’s next?
StartMessaging Team
StartMessaging Team