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.
# 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.
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
| Surface | Field | Notes |
|---|---|---|
| REST / JSON body | from | Optional string, max 11 chars |
| Python SDK | sender= | Keyword argument on client.sms.send(...) |
| TypeScript SDK | from: | Property on the send options object |
| Campaigns API | sender_id | Per-campaign; defaults to platform default |
| Agent tools | sender_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.