For software companies
The official WhatsApp Business API, from your own WhatsApp Business number, with one HTTPS call per message. No monthly fee and no per-number rental — you pay per message in credits, from ₹0.25 a credit.
One-time passwords for sign-in, checkout and account changes, sent as an authentication template.
1 credit · authentication
Invoices, lab reports, statements and tickets, attached as a PDF on a utility template.
1 credit · utility
Appointments, renewals, payment due dates and follow-ups your product already schedules.
1 credit · utility
Confirmed, packed, shipped, out for delivery — each status change as it happens.
1 credit · utility
Marketing templates cost 5 credits a message.
One endpoint sends an approved template to one number; another tells you what happened to it. States move SENT → DELIVERED → READ, or FAILED. Templates are created and approved in the app; the API only sends ones Meta has approved.
POSThttps://wabapi.com/api/v1/messages/template
curl -X POST https://wabapi.com/api/v1/messages/template \
-H "Authorization: Bearer wab_live_0123456789abcdef0123456789abcdef" \
-H "Content-Type: application/json" \
-d '{"to":"917021948630","template_name":"ticket_confirmation","template_language":"en","components":[{"type":"body","parameters":[{"type":"text","text":"Prajesh"},{"type":"text","text":"Thane"},{"type":"text","text":"04:00 PM"}]}]}'{
"id": "msg_3f9c2b1e7a4d4c0e9b2a1f6d",
"status": "SENT",
"to": "917021948630",
"template_name": "ticket_confirmation",
"credits": 1,
"sandbox": false,
"free_sends_remaining": null
}GEThttps://wabapi.com/api/v1/messages/{id}
{
"id": "msg_3f9c2b1e7a4d4c0e9b2a1f6d",
"status": "DELIVERED",
"to": "917021948630",
"template_name": "ticket_confirmation",
"credits": 1,
"sent_at": "2026-09-01T10:00:00.000Z",
"delivered_at": "2026-09-01T10:00:04.000Z",
"read_at": null,
"error_code": null
}Send an Idempotency-Key header (any string up to 128 characters, unique per message on your side, such as your ticket id) and a retried request with the same key returns the original result instead of sending twice or charging twice. Strongly recommended for anything that retries on timeout.
Idempotency-Key: ticket-48213-confirmationEach API key may send up to 60 messages a minute. Above that the API answers 429 rate_limited with a Retry-After header in seconds. The limit is per key, so a second system on its own key has its own allowance. Need more? Contact us.
Credits in your account — top up under Credits. Until your first payment you can send free test messages to your own verified number (the one you signed in with); any other number answers 402 insufficient_credits and nothing is sent.
You get 20 free sends before your first payment, shared between the API and the dashboard. No card is needed to start.
| Pack | Price | Credits | Per credit | Valid for |
|---|---|---|---|---|
| Starter | ₹1,050 | 3,000 | ₹0.35 | 24 months |
| Standard | ₹3,000 | 10,000 | ₹0.30 | 24 months |
| Growth | ₹10,000 | 40,000 | ₹0.25 | 24 months |
A worked example
10,000 OTPs a month = 10,000 credits = one Standard pack at ₹3,000.
Change the base URL and the token; keep your code.
Read the migrating guide →Messages go from your own WhatsApp Business number, connected through Meta's official signup — not a shared sender. With coexistence the same number keeps working in the WhatsApp Business app on your phone while your product sends through the API. Recipients are Indian (+91) numbers only.
Yes. Create an account, connect your WhatsApp Business number and get a template approved — all free. Before your first payment the API sends to your own verified number (the one you signed in with) at no cost, up to 20 free sends shared with sends from the dashboard. Any other number answers 402 until you add credits.
Each API key may send up to 60 messages a minute. Above that the API answers 429 rate_limited with a Retry-After header in seconds. The limit is per key, so a second system on its own key has its own allowance. Need more? Contact us.
Send an Idempotency-Key header (any string up to 128 characters, unique per message on your side, such as your ticket id) and a retried request with the same key returns the original result instead of sending twice or charging twice. Strongly recommended for anything that retries on timeout.
Credits are debited before the send and refunded automatically if our messaging platform refuses it or WhatsApp reports it undeliverable; the message then shows FAILED on the status endpoint, with the reason in error_code. States move SENT → DELIVERED → READ, or FAILED.
Yes. With coexistence the same number keeps working in the WhatsApp Business app on your phone while your product sends through the API — you do not need a second number.
Yes. The whole API is published as a Postman collection and an OpenAPI 3.1 document, generated from the same definition that validates requests, so neither is ever out of date. Links are at the bottom of this page and in the docs.
Create an account, generate a key and send 20 free test messages to your own phone — pay only when you go live.