Choosing & Registering Sender IDs
A sender ID is what recipients see in the "From" field. Choosing the right type β and registering it where required β is the single biggest lever on deliverability.
π·οΈ Sender ID Typesβ
| Type | Example | Two-way? | Best for |
|---|---|---|---|
| Alphanumeric | MyBank | No | Branded one-way alerts, OTP |
| Numeric long code | +2547xxxxxxx | Yes | Conversational SMS |
| Shortcode | 21234 | Yes | High-volume two-way, opt-in keywords |
Alphanumeric IDs are 3β11 characters, letters and digits, no spaces. They cannot receive replies β use a shortcode or long code for two-way.
π‘ Registering an Alphanumeric IDβ
Registration is per-country and reviewed by local carriers. Submit early β approval can take days to weeks in some markets.
curl -X POST https://api.afriroute.ai/api/v1/sms/sender-ids \
-H "Authorization: Bearer $AFRIROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sender_id": "MyBank",
"country": "KE",
"use_case": "Transactional OTP and account alerts",
"sample_message": "Your OTP is 123456"
}'
const res = await fetch('https://api.afriroute.ai/api/v1/sms/sender-ids', {
method: 'POST',
headers: {
'Authorization': 'Bearer $AFRIROUTE_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
sender_id: 'MyBank',
country: 'NG',
use_case: 'Transactional alerts'
})
});
console.log((await res.json()).status); // pending_review
π Per-Country Approval Rulesβ
Requirements vary widely. Plan around the strictest markets you target.
| Market | Alphanumeric | Pre-registration |
|---|---|---|
| π°πͺ Kenya | Supported | Required |
| π³π¬ Nigeria | Supported | Required |
| πΏπ¦ South Africa | Supported | Recommended |
| πͺπΉ Ethiopia | Supported | Required |
| π¬π Ghana | Supported | Required |
Unregistered alphanumeric IDs are often overwritten with a generic shared ID or silently dropped.
β Choosing the Right IDβ
- One-way branded alerts / OTP β alphanumeric (
MyBrand). - Customer conversations β shortcode or long code.
- Marketing with opt-in keywords β shortcode (e.g. "Text JOIN to 21234").
π‘ Best Practicesβ
- Register before launch in every target country β don't assume coverage.
- Keep the use case honest β mismatched content triggers blocking.
- Use a consistent ID so recipients recognize and trust your brand.
- Have a fallback ID for countries where yours isn't yet approved.
- Avoid generic words like
INFOorSMSβ they get rejected.
β οΈ Common Rejectionsβ
{
"status": "rejected",
"reason": "use_case_mismatch",
"detail": "Registered as transactional but sample is promotional"
}
Match your registered use case to the actual traffic, and resubmit with a corrected sample.
π Related Resourcesβ
Last Updated: May 2026