SendyStack
Messages

Send & track WhatsApp messages

Send approved templates or free-form text, then track delivery, read, and reply events through webhooks.

Endpoints

POST/v1/messagesPublic APImessages:send

Send a text or template message. Returns once queued; delivery is asynchronous.

GET/internal/messagesDashboard Onlydashboard session

List your message history (dashboard session only).

Requires an authenticated dashboard session — your wac_live_ API key cannot call this endpoint. Use it from inside the dashboard, or wrap it behind your own server.

GET/internal/messages/:idDashboard Onlydashboard session

Fetch a single message record with full status history.

Requires an authenticated dashboard session — your wac_live_ API key cannot call this endpoint. Use it from inside the dashboard, or wrap it behind your own server.

WEBHOOKmessage.sent / delivered / read / failed / replyIncoming Webhookwebhook secret

Status-change events Meta forwards through SendyStack to your webhook URL.

Send a text message

Text messages can only be sent inside Meta's 24-hour service window — i.e. after the contact has replied to one of your templates. Use a template to open the conversation.

POST /v1/messages
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "to": "+254712345678",
  "type": "text",
  "text": { "body": "Hello from SendyStack!" }
}

Send a template

Templates can start a conversation any time. bodyParams fills the {{1}}, {{2}}, … placeholders in order.

POST /v1/messages
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "to": "+254712345678",
  "type": "template",
  "template": {
    "name": "welcome_onboarding",
    "language": "en_US",
    "bodyParams": ["Dominic"]
  }
}

Response

A successful POST returns 202 with a synchronous ack. The final delivery / read state arrives over the webhook.

HTTP/1.1 202 Accepted
{
  "status": "sent",
  "message_id": "msg_01H…",
  "meta_message_id": "wamid.HBg…",
  "tenant_id": "ten_…",
  "api_key_id": "key_…"
}

Status lifecycle

  • queued — accepted by SendyStack, waiting to be sent.
  • sent — forwarded to Meta.
  • delivered — Meta confirmed delivery to the recipient's device.
  • read — recipient opened the conversation.
  • failed — delivery failed; check the failure object for Meta's reason.