SendAfrica logoSendAfricaDocs

Sender IDs

The name recipients see as the message sender — how the SendAfrika default works, when to use your own, and why sender IDs must be registered.


A sender ID (also called a sender name or alpha sender) is the name that appears on a recipient's phone as the message source — instead of a phone number. It's what you set with from (REST), sender (Python/TypeScript SDKs), or sender_id (campaigns and Agent tools). All of these refer to the same value.

#Default: SendAfrika

If you omit the sender field entirely, your messages are sent from SendAfrika — the platform default. This is the quickest way to get started: no configuration, no approval step.

default-sender.sh
bash
# No "from" field — sends from SendAfrika
curl -s -X POST https://api.sendafrica.online/v1/sms/ \
  -H "X-API-Key: $SENDAFRICA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "0712345678",
    "message": "Your order is ready!"
  }'

For OTPs, alerts, and transactional messages, the SendAfrika default is usually all you need.

#Using your own sender ID

To brand your messages, pass your own sender ID. It must follow two rules:

  • Registered and authorized — carrier regulations require sender IDs to be approved before use. Registration is handled by SendAfrica (not a self-serve API call): request it through your account manager and it will be enabled for your account.
  • Max 11 characters — letters and digits (e.g. MYBRANDTZ). Spaces and most symbols aren't accepted by carriers.
custom-sender.sh
bash
curl -s -X POST https://api.sendafrica.online/v1/sms/ \
  -H "X-API-Key: $SENDAFRICA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "0712345678",
    "message": "Your order is ready!",
    "from": "MYBRANDTZ"
  }'

#What happens with unregistered sender IDs

Unregistered IDs fail silently

Passing a sender ID that isn't registered doesn't return an error. The carrier rejects the sender, and SendAfrica automatically re-sends your message under its fallback sender — so the message still delivers, but without your branding. Always verify a sender ID is registered before relying on it.

This applies everywhere a sender can be set — single sends, bulk sends, campaigns (sender_id), and Agent tools. A misconfigured campaign sender ID can silently drop branding across thousands of messages, so register first and test one send before launching.

#Field names across surfaces

SurfaceFieldNotes
REST / JSON bodyfromOptional string, max 11 chars
Python SDKsender=Keyword argument on client.sms.send(...)
TypeScript SDKfrom:Property on the send options object
Campaigns APIsender_idPer-campaign; defaults to platform default
Agent toolssender_id=""Empty string = platform default

#Best practices

  • Start with the SendAfrika default while integrating; register your brand's sender ID in parallel so it's ready before launch.
  • Use one consistent sender ID per brand — recipients learn to recognize it, which improves engagement and reduces spam reports.
  • After registration, send a test message to your own phone to confirm the sender ID displays correctly on each network (Vodacom, Tigo, Airtel, Halotel).
  • Don't rotate sender IDs between messages — some phones thread conversations by sender, and inconsistent IDs fragment the history.