Datagroup

Messaging API

Send WhatsApp messages from your own systems — order confirmations, reminders, alerts — without going through the portal UI.

What you can do today

This is Phase 1 of the messaging API: send an approved WhatsApp template, check delivery status, and pull a history of what you’ve sent. Free-text replies and interactive WhatsApp Flows are planned for a later phase. Every request carries an explicit channel field — whatsapp is the only value accepted right now, so your integration won’t need to change shape when SMS (via Clickatell) is added later.

Get an API key

API keys are self-service — a business Admin creates and revokes them from the API keys tab in the Datagroup portal. The key is shown once at creation — store it somewhere safe (a secrets manager, not source control). Every request authenticates with Authorization: Bearer <your key>.

Quickstart

Send a template message. Use GET /templates first to see which approved templates you can send and how many bodyParameters each expects.

curl -X POST https://datagroupwebfxapp-cyexbwg3csgkdcbq.southafricanorth-01.azurewebsites.net/api/public/v1/messages \
  -H "Authorization: Bearer dgwa_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1029-ready" \
  -d '{
    "channel": "whatsapp",
    "to": "+27821234567",
    "templateName": "order_ready",
    "bodyParameters": ["Thabo", "ORD-1029"]
  }'

Pass an Idempotency-Key header on every send — retrying a request with the same key replays the original result instead of sending a second message.

Rate limits & errors

Each key is limited to a generous per-minute request rate; going over it returns 429 with a Retry-After header. Errors share one JSON shape:

{ "error": { "code": "template_not_approved", "message": "...", "requestId": "..." } }

Quote the requestId if you need to contact us about a specific call.

Full reference

Every endpoint, request and response shape: API reference. The raw spec is also published at /openapi/public-api-v1.yaml (OpenAPI 3.0) for import into Postman, Insomnia, or a client-code generator.

Questions?

Reach us at info@datagroup.co.za, or see pricing if you’re not yet a Datagroup client.