Meta's rate per message. Zero on top.

WhaBuzz is a WhatsApp Cloud API gateway. Meta bills your messages directly; we charge for the number, not the traffic.

₹500
a month for your first number
₹250
a month for each number after
₹0
per message on top of Meta's rate
24 h
of webhook retries, then replay

01 · Send

The request body is Meta's, plus one field

WhaBuzz is a WhatsApp Cloud API gateway for businesses and platforms in India. You send Meta's own request bodies and receive signed webhooks with 24 hours of retries and replay. Meta bills your messages directly at Meta's rate; WhaBuzz charges ₹500 a month for the first number, ₹250 for each after, excluding GST, and nothing per message.

If you have read Meta's Cloud API docs, you already know our send format. Take Meta's message object, add from with the phone number ID you connected, and POST it to /v1/messages. What comes back is Meta's response, wamid and all.

Around that we added what Meta leaves to you. Test and live keys. Tenants, so one account can hold many businesses. An Idempotency-Key header, so a retried POST does not send twice. A batch call that takes 10,000 messages.

Messages API reference
curl https://api.whabuzz.com/v1/messages \
  -H "Authorization: Bearer $WHABUZZ_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: renewal-4821" \
  -d '{
    "from": "1013622581841046",
    "messaging_product": "whatsapp",
    "to": "16505551234",
    "type": "template",
    "template": {
      "name": "renewal_reminder",
      "language": { "code": "en" },
      "components": [{
        "type": "body",
        "parameters": [
          { "type": "text", "text": "Kerry" },
          { "type": "text", "text": "31 Oct" }
        ]
      }]
    }
  }'

Response, HTTP 200, exactly as Meta sent it

{
  "messaging_product": "whatsapp",
  "contacts": [{ "input": "16505551234", "wa_id": "16505551234" }],
  "messages": [{
    "id": "wamid.HBgLMTY1MDU1NTEy…",
    "message_status": "accepted"
  }]
}

Each response also carries Server-Timing: wb;dur=…, meta;dur=…, so a slow send tells you whose milliseconds they were.

02 · Webhooks

What you get, down to the header format

These are the numbers in our code today. The docs carry the same figures, with code.

Updated for 2026 · last revised

Retry ladder
The first attempt waits 3 seconds for a 2xx. After that we retry at 30 s, 1 m, 2 m, 5 m, 10 m, 20 m, 40 m and 1 h, then hourly until 24 hours have passed. Retries wait 10 seconds each. Redirects are not followed.
Dead deliveries
After 24 hours a delivery is marked dead. Replay one with POST /v1/webhook-deliveries/{id}/replay, or up to 10,000 at once by filter on the endpoint.
Signature
HMAC-SHA256 of {t}.{raw body}, keyed with your whsec_ secret. Reject anything more than 300 seconds from your clock.
X-WhaBuzz-Signature: t=<unix seconds>,v1=<hex>[,v1=<hex>]
Secret rotation
Both secrets sign during the overlap, so the header carries two v1 values. The overlap is 24 hours unless you set 0 to 168.
Meta's errors
Passed through with Meta's HTTP status and "source": "meta". 131047 means more than 24 hours have passed since the recipient last replied, so you need a template, and 131009 means a parameter value is not valid, according to Meta's error codes reference. Our own errors say "source": "whabuzz", for example number_not_connected.
Retention
Message bodies are kept 90 days by default. Set 30, 180 or 365 with PATCH /v1/tenant. Replay works inside that window. Media is streamed through and never stored.
Where it runs
Cloudflare's Asia-Pacific region, for Workers and for data (D1, Durable Objects, R2).
Limits
10 webhook endpoints per tenant. 10,000 messages per batch call. Idempotency keys are held for 24 hours.
Deliveries: every attempt, with Replay.
Endpoints: pending until the verify challenge echoes.

03 · MCP

How to use WhaBuzz from Claude Code, Cursor or any MCP client

One endpoint, https://api.whabuzz.com/mcp, and the same API key you use on /v1. Every tool is a thin call into /v1, so scopes, number binding and send gates apply unchanged.

A tenant key lists 12 tools, among them send_message, list_events, list_templates and get_wallet. An owner key lists 18.

claude mcp add --transport http whabuzz https://api.whabuzz.com/mcp \
  --header "Authorization: Bearer $WHABUZZ_API_KEY"

04 · Scope

What it is not

  • A reseller of Meta's conversations. Meta bills your business on its own Meta account.
  • An inbox, campaign tool or CRM. Your product owns the screens. We deliver the messages.
  • An opt-out manager. A STOP reply reaches you as an ordinary message.inbound event. Keeping the list is your job.
  • A gatekeeper on the 24-hour window. We do not check it. Meta does, and its 131047 comes back to you unchanged.

WhaBuzz is a Meta Tech Provider. Your business pays Meta directly, at Meta's rate.

₹500 a month, first number

₹250 for each number after that, plus 18% GST. Ten numbers come to ₹2,750 a month. Messages cost whatever Meta charges, on your own Meta bill.

Prices exclude GST. Sign-up is open to Indian businesses: confirm your email and a WhatsApp code to your mobile.

Meta already sets the price of each message it delivers. WhaBuzz charges a flat fee per connected number, so your message bill stays what Meta charges and nothing more.

Smaran Challapalli, founder

05 · FAQ

Four things developers ask first

When should I send a template instead of free text?

When the 24-hour customer service window has closed. The window starts when a user messages you and resets each time they message again, according to Meta's pricing page. Outside it, Meta rejects a free-form message with error 131047 and WhaBuzz returns it to you as is, with "source": "meta". We never pre-check the window, so the rule you hit is always Meta's current one.

What does WhaBuzz charge on top of Meta's rate?

Nothing per message. Meta charges per delivered message, at a rate set by the message category and the recipient's country calling code, according to Meta's pricing page. Meta bills the business's own Meta account. WhaBuzz charges for connected numbers only: ₹500 a month for the first, ₹250 for each after, plus GST, drawn a day at a time from a prepaid wallet.

What happens to a webhook my server misses?

WhaBuzz retries on the ladder above for 24 hours. After that the delivery is marked dead and you can replay it for as long as the event is retained, 90 days by default. Replays carry the same dedupe_key as the original.

Can I move a number from WATI, Plivo or another BSP?

Yes, if the WhatsApp Business Account is in your business's name. Connect it to WhaBuzz, pull your approved templates across with POST /v1/templates/sync, then switch the webhook subscription. Expect a short gap where inbound messages reach neither provider. The migration guide has the steps, including what to do if the provider owns the account.