WhatsApp API

Live

Send WhatsApp messages through the Bolrach platform's business number on the Meta Cloud API. Free-form text works inside an open 24-hour customer-service window; approved templates deliver anytime. You never handle Meta tokens or number registration.

Base URL https://api.bolrach.ioScope whatsapp:sendSpec openapi/whatsapp.json

A high-trust scope

Messages go out from the platform's own WhatsApp business number, so whatsapp:send is issued deliberately rather than by default. Abuse (spam, unsolicited marketing) gets a key revoked; WhatsApp's own Business Messaging Policy applies to everything sent.

Endpoints

POST /v1/whatsapp/send

Free-form text. Meta only delivers these inside an open 24-hour session (the recipient messaged the business number within the last 24 hours); outside it you get a 400 whatsapp_rejected telling you to use a template.

FieldTypeDescription
tostring, requiredInternational number, e.g. +2348012345678.
textstring, requiredUp to 4,096 characters.
preview_urlboolean, optionalRender link previews.
curl -X POST "https://api.bolrach.io/v1/whatsapp/send" \
  -H "Authorization: Bearer bt_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"to": "+2348012345678", "text": "Your order 1042 has shipped."}'

Response

{
  "sent": true,
  "messageId": "wamid.HBgLMTM2ODk5…",
  "to": "+2348012345678"
}
POST /v1/whatsapp/send-template

Approved templates deliver anytime, no open session needed. components carries Meta's template parameters (body variables, button payloads) exactly as the Cloud API expects them.

curl -X POST "https://api.bolrach.io/v1/whatsapp/send-template" \
  -H "Authorization: Bearer bt_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"to": "+2348012345678", "template": "bolrach_otp", "language": "en_US"}'
GET /v1/whatsapp/templates

The approved template catalogue: name, status, category and language for each.

curl "https://api.bolrach.io/v1/whatsapp/templates" \
  -H "Authorization: Bearer bt_your_key_here"

{
  "templates": [
    { "name": "bolrach_otp", "status": "APPROVED", "category": "AUTHENTICATION", "language": "en_US" }
  ]
}

Errors

Everything uses the standard envelope. The one WhatsApp-specific code is whatsapp_rejected (HTTP 400): Meta refused the send — wrong number, closed 24h session for free-form text, or an unknown/unapproved template. The message field carries Meta's own explanation verbatim.

Changelog

DateChange
2026-07-14v1 launch: send, send-template, templates. Inbound webhooks and campaign sends are planned.