WhaBuzz docs
API reference

Billing

Flat monthly price per number. Never per message. Until billing is switched on, every /v1/billing route answers 503 billing_disabled (details.billing_enabled=false).

Flat monthly price per number. Never per message. Until billing is switched on, every /v1/billing route answers 503 billing_disabled (details.billing_enabled=false).

Base URL https://api.whabuzz.com. Every request needs Authorization: Bearer <key> unless the operation says otherwise; see Authentication. Errors follow the two-source contract.

Operations on this page:

#Plan, active numbers and next charge

GET/v1/billing

Auth: API key (tenant key, or app key with X-WhaBuzz-Tenant). Operation id: getBilling.

cURL:

curl -X GET "https://api.whabuzz.com/v1/billing" \
  -H "Authorization: Bearer $WHABUZZ_KEY"
bash

Responses

200 Billing summary

{
  "plan": "₹500/month first number + ₹250/month each additional, ex-GST",
  "billing_status": "trialing",
  "trial_ends_at": "2026-10-30T09:00:00Z",
  "active_numbers": 2,
  "next_charge": {
    "period": "2026-11-01",
    "amount_paise": 75000,
    "gst_paise": 13500,
    "total_paise": 88500,
    "charge_on": "2026-11-03"
  },
  "mandate": {
    "status": "not_set_up"
  }
}
json

#Set up autopay

POST/v1/billing/mandate

Returns Cashfree's authorisation link. Open it, approve the mandate (UPI Autopay, eNACH or card), and WhaBuzz charges the monthly total on the 3rd.

Auth: API key (tenant key, or app key with X-WhaBuzz-Tenant). Operation id: createMandate.

cURL:

curl -X POST "https://api.whabuzz.com/v1/billing/mandate" \
  -H "Authorization: Bearer $WHABUZZ_KEY"
bash

Responses

201 Authorisation link

{
  "subscription_id": "wb_sub_a578246e",
  "authorization_url": "https://sandbox.cashfree.com/pg/view/subscription/…",
  "max_amount_paise": 200000
}
json

503 Billing not enabled yet

{
  "source": "whabuzz",
  "error": {
    "code": "billing_disabled",
    "message": "Billing is not enabled yet",
    "details": {
      "billing_enabled": false
    }
  },
  "request_id": "req_01JAB41B6E9G2J5M8P1S4V7Y0B"
}
json

#Invoices

GET/v1/billing/invoices

Auth: API key (tenant key, or app key with X-WhaBuzz-Tenant). Operation id: listInvoices.

cURL:

curl -X GET "https://api.whabuzz.com/v1/billing/invoices" \
  -H "Authorization: Bearer $WHABUZZ_KEY"
bash

Responses

200 Invoices

{
  "data": [
    {
      "id": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
      "number": "WB/2026-27/000001",
      "period": "2026-11-01",
      "amount_paise": 75000,
      "gst_paise": 13500,
      "total_paise": 88500,
      "status": "paid",
      "paid_at": "2026-11-03T04:00:00Z",
      "html_url": "https://api.whabuzz.com/v1/billing/invoices/9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d"
    }
  ]
}
json

#Printable invoice (HTML) or JSON with Accept application/json

GET/v1/billing/invoices/{invoice_id}

Auth: API key (tenant key, or app key with X-WhaBuzz-Tenant). Operation id: getInvoice.

Parameters

NameInTypeRequiredDescription
invoice_idpathstring (uuid)yes

cURL:

curl -X GET "https://api.whabuzz.com/v1/billing/invoices/$INVOICE_ID" \
  -H "Authorization: Bearer $WHABUZZ_KEY"
bash

Responses

200 Invoice

Body: text/html.

#Pay a failed invoice now

POST/v1/billing/invoices/{invoice_id}/pay

Auth: API key (tenant key, or app key with X-WhaBuzz-Tenant). Operation id: payInvoice.

Parameters

NameInTypeRequiredDescription
invoice_idpathstring (uuid)yes

cURL:

curl -X POST "https://api.whabuzz.com/v1/billing/invoices/$INVOICE_ID/pay" \
  -H "Authorization: Bearer $WHABUZZ_KEY"
bash

Responses

201 Cashfree checkout link

{
  "payment_url": "https://sandbox.cashfree.com/pg/view/order/…"
}
json

This page as Markdown: /api/billing.md. All docs in one file: /llms-full.txt.