Skip to content

Sender IDs

The from field on every SMS is a sender ID — the name that shows up on the recipient’s phone instead of a number.

{ "from": "9bits", "to": ["2348020000000"], "content": "Your code is 481920." }

This is a network operator requirement, not a 9bits one. Nigerian operators require alphanumeric sender IDs to be registered and approved to prevent impersonation and fraud.

Sending with an unapproved ID fails:

{
"error": {
"type": "validation_error",
"code": "sender_id_invalid",
"message": "sender ID '9bits' is not approved for this account"
}
}

In the dashboard: Messaging → Sender IDs → Add Sender ID. Submit the ID and what you’ll use it for, and we take it to the operators.

You can list your approved IDs from the dashboard at any time.

RuleDetail
LengthUp to 11 characters. Longer IDs are truncated by the operator.
CharactersLetters and digits. Avoid spaces and punctuation.
CasePreserved — 9bits and 9BITS display as typed.

Approved: your registered business or product name — something a recipient would recognise and connect to a message they expected.

Rejected:

  • Names you don’t own — a bank, a telco, a government agency. This is the main thing approval exists to stop.
  • Generic words like INFO, ALERT, VERIFY, OTP. They’re unattributable, so they’re a phishing vector.
  • Anything misleading about who’s sending.

You can use any approved ID in from, per request — useful when one account sends for several brands:

await sendSMS({ from: 'ShopNG', to, content: 'Your order shipped.' });
await sendSMS({ from: 'ShopNGHR', to, content: 'Your payslip is ready.' });

Both must be approved on the account first.

A shortcode or long number can also be a sender, but that’s a different product with different semantics — the recipient can reply to it, and you receive their message.

That’s VAS & Two-Way SMS.