For software companies

Send OTPs, reports and order updates from your product on WhatsApp

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.

What you send

OTP and login codes

One-time passwords for sign-in, checkout and account changes, sent as an authentication template.

1 credit · authentication

Reports and documents

Invoices, lab reports, statements and tickets, attached as a PDF on a utility template.

1 credit · utility

Reminders

Appointments, renewals, payment due dates and follow-ups your product already schedules.

1 credit · utility

Order and delivery updates

Confirmed, packed, shipped, out for delivery — each status change as it happens.

1 credit · utility

Marketing templates cost 5 credits a message.

The call

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

Request
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"}]}]}'
Response 200
{
  "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}

Response 200
{
  "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
}

Retries and limits

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-confirmation

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.

Test it free, on your own phone

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.

Pricing in one table

PackPriceCreditsPer creditValid for
Starter₹1,0503,000₹0.3524 months
Standard₹3,00010,000₹0.3024 months
Growth₹10,00040,000₹0.2524 months

A worked example

10,000 OTPs a month = 10,000 credits = one Standard pack at ₹3,000.

Already on WhatsbizAPI?

Change the base URL and the token; keep your code.

Read the migrating guide →

Your number

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.

What it does not do (yet)

  • Outbound only. There is no shared inbox for API users, no chatbot, and no incoming-message webhooks to your server.
  • Some templates cannot be sent. This template cannot be sent through the API: carousels are not supported yet, and a template using a WhatsApp feature outside utility, authentication and marketing messages is never sendable here.
  • India only. Messages go to Indian (+91) mobile numbers; a number from another country is refused and nothing is charged.

Developer questions, answered directly

Can I test before paying?

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.

What is the rate limit?

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.

Is it safe to retry a request that timed out?

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.

What happens if a message fails?

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.

Can I keep using my number in the WhatsApp Business app?

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.

Is there a Postman collection?

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.

Send your first message from your product today.

Create an account, generate a key and send 20 free test messages to your own phone — pay only when you go live.