Notify Africa

API Reference

Complete WABA Developer API endpoint inventory and shared HTTP contracts.

Base URL

Use the environment URL supplied by Notify Africa. Production examples use:

https://api.notify.africa

Authentication

Authorization: Bearer ntfy_your_api_key

Every operation is scoped to the Notify Africa account that owns the key. The key must have WABA access.

Endpoint Inventory

These 11 operations are the complete API-key-authenticated surface.

MethodPathSuccessReference
POST/v1/waba-api/templates201 wrappedCreate template
GET/v1/waba-api/templates200 wrapped/paginatedList templates
GET/v1/waba-api/templates/:templateId200 wrappedGet template
PATCH/v1/waba-api/templates/:templateId200 wrappedUpdate template
DELETE/v1/waba-api/templates/:templateId200 wrappedDelete template
POST/v1/waba-api/templates/:templateId/validate201 wrappedValidate bindings
POST/v1/waba-api/templates/:templateId/preview201 wrappedPreview template
POST/v1/waba-api/templates/:templateId/sync201 wrappedSynchronize template
GET/v1/waba-api/templates/:templateId/status200 wrappedGet template status
POST/v1/waba-api/messages/text200 wrappedSend text
POST/v1/waba-api/messages/template200 wrappedSend template message

Portal account setup, webhook management, secret rotation, webhook testing, and delivery inspection are not Developer API operations — see Test Webhook.

Standard Success Envelope

Template and message successes use:

{
  "status": 200,
  "message": "Success",
  "timestamp": "2026-09-09T11:00:00.000Z",
  "path": "/v1/waba-api/example",
  "data": {}
}

status is the HTTP status code. path includes the request query string when present.

The webhook-test operation currently returns its delivery DTO directly.

Pagination

Template list queries support:

ParameterTypeBehavior
qstringSearch input
currentPagenumberPositive integer; invalid/missing values normalize to 1
pageSizenumberPositive integer; invalid/missing values normalize to 10; maximum 25
sortBystringRequested sort field
sortOrderstringasc or desc

Paginated responses add:

{
  "pagination": {
    "total": 42,
    "currentPage": 2,
    "totalPages": 5,
    "pageSize": 10
  }
}

Standard Error Envelope

{
  "status": 400,
  "message": "Request validation failed",
  "code": "VALIDATION_ERROR",
  "timestamp": "2026-09-09T11:01:00.000Z",
  "path": "/v1/waba-api/templates",
  "error": ["externalTemplateName must use lowercase letters, numbers, and underscores only"],
  "details": {
    "field": "externalTemplateName"
  }
}

details is optional. error can be a string, array, or object.

Common Status Codes

StatusMeaning
200Successful read/update/delete or message result response
201Template create/action or webhook test queued
400DTO, UUID, schema, binding, or state validation failure
401Missing, malformed, invalid, revoked, expired, or unauthorized API key
404Resource absent or not owned by the authenticated tenant
409Duplicate/conflicting resource, such as template name and language
422WABA readiness or provider precondition failure
500Unexpected server failure
503Required dependency unavailable

Header Rules

  • Send Content-Type: application/json only when sending JSON.
  • Do not send tenant or user identifiers in headers.
  • Do not send WABA or phone-number identifiers to override tenant selection.
  • Store the API key and webhook signing secret as separate secrets.

On this page