Notify Africa
API GuidesSMS API

Guides

Complete common SMS integration tasks in the correct order.

Send Your First SMS

Fund account in Portal.
Obtain approved sender ID in Portal.
Create SMS API key in Portal.
Call POST /messages/send.
Store message UUID.
Call GET /messages/status/{messageId}.
  1. Complete the Portal setup.
  2. Send one short ASCII message to a test recipient you control.
  3. Confirm HTTP 202 and store data.messageId.
  4. Poll status until DELIVERED or FAILED.
  5. Compare the returned credit effect with the Portal account activity.

Choose A Send Method

SituationUseTradeoff
One recipient/sendSimplest request and returns one UUID
Many recipients, same content/batchCompact request, but no per-message UUIDs in response
Personalized content/send-bulkReturns one result and UUID per accepted message
Scheduled delivery/send-bulkOne ISO schedule applies to the complete request
Per-recipient result handling/send-bulkExposes accepted/rejected counts and results

Schedule And Track Messages

  1. Generate personalized content before calling the API.
  2. Calculate likely segments for each rendered message.
  3. Send scheduledAt with an explicit UTC offset or Z.
  4. Store every returned message UUID.
  5. Poll after the scheduled time.
  6. Stop on DELIVERED or FAILED.

The API validates ISO date-time syntax but does not reject a timestamp in the past. Validate schedule time in your application.

Setup Versus API Usage

ActionOwner
Add creditsPortal
Request or manage sender IDPortal
Create, rotate, or revoke API keyPortal
Send messagesDeveloper API
Retrieve one message statusDeveloper API
Review account-wide activity and balancePortal

Do not use Portal session credentials in application API calls.

Common Integration Mistakes

Wrong Authentication

Use:

Authorization: Bearer ntfy_your_api_key

Do not use a Portal JWT or a custom API-key header.

Wrong Message Identifier

Store the UUID returned by /send or /send-bulk. Numeric IDs and sender IDs are not message IDs.

Unapproved Sender

Confirm sender approval in the Portal. A sender name existing in your records does not make it sendable.

Invalid Recipient Format

Compatibility requests can omit +; canonical requests require E.164 with +. Confirm destination-country availability before sending.

Underestimating Credits

Credits follow segments for every eligible recipient. Non-ASCII and long content consume more segments.

Losing Batch Correlation

/batch does not return per-message UUIDs. Use /send-bulk when delivery tracking must correlate each recipient.

Unsafe Retries

SMS send requests have no public idempotency key. An automatic retry can create another message and another debit. Reconcile an uncertain response before retrying.

Expecting SMS Webhooks

The current SMS Developer API exposes status polling, not callback registration. WABA webhook documentation does not apply to SMS.

On this page