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
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.
| Field | Type | Description |
|---|---|---|
to | string, required | International number, e.g. +2348012345678. |
text | string, required | Up to 4,096 characters. |
preview_url | boolean, optional | Render 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"
}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"}'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
| Date | Change |
|---|---|
| 2026-07-14 | v1 launch: send, send-template, templates. Inbound webhooks and campaign sends are planned. |