Guide · Pricing
How pricing and message length work.
In short
- SMS is billed per segment. A segment is 160 characters of standard text or 70 characters of unicode.
- Longer messages are split into multiple segments and billed per segment.
- The route — generic vs DND corridor — changes the per-segment price. Transactional traffic on the DND corridor costs more than marketing on generic.
- Your wallet reserves the estimated cost before a campaign dispatches and settles against actual spend after.
What counts as one SMS
Technically, one SMS is defined by the telecom standard GSM 03.38: a single message of up to 160 characters from the standard GSM-7 character set. In practice, that's about the length of a tweet from the pre-2023 era — enough for a meaningful update, not enough for a paragraph.
When your message fits within 160 standard characters, you pay for one segment. When it doesn't, the message is automatically split into parts — each part is its own segment, and each segment is billed separately.
160 characters vs unicode
The 160-character limit applies only to the standard GSM-7 alphabet — English letters, digits, punctuation, and a few European accents. As soon as you include a character outside that set — a local-language diacritic, an emoji, or script from Yoruba, Igbo, Hausa — the entire message is encoded in unicode (UCS-2), and the per-segment limit drops to 70 characters.
You don't choose the encoding. The presence of a single non-GSM character flips the whole message to unicode. A 150-character message with one accented character becomes a 3-segment unicode send where a pure-ASCII version would have been one segment.
Segmentation examples
Three short examples to make the math concrete:
- "Your order is ready" (19 chars, standard) → 1 segment.
- "Reminder: PTA meeting is tomorrow at 10am in the main hall." (62 chars, standard) → 1 segment.
- "Hi Ada, your appointment with Dr Ogundipe is confirmed for Tuesday 14 May at 10:30am. Please arrive 15 minutes early with your ID." (142 chars, standard) → 1 segment.
- A 340-character appointment confirmation (standard) → 3 segments.
- A 75-character message with one emoji (unicode) → 2 segments.
Why longer messages cost more
The cost is per segment for a technical reason: each segment is delivered as a separate over-the-air message by the carrier, even if the recipient's phone reassembles them into one display. When a 340-character message arrives on your phone as one bubble, behind the scenes the carrier sent three SMS and stitched them together. We pay the carrier per segment, so we charge per segment.
The practical implication: keep messages short. An 85-character reminder costs ₦8.00 on the DND corridor. A 210-character version of the same reminder costs ₦16.00 — you paid double for padding. When you're sending 5,000 of them, that's the difference between a ₦40,000 campaign and an ₦80,000 one.
Generic vs DND routes
Each message dispatches on one of two Nigerian routes:
- Generic route — for marketing traffic. Starts at ₦6.50 per segment. Does not reach DND-registered numbers.
- DND corridor — for transactional traffic (OTPs, receipts, service updates). Starts at ₦8.00 per segment. Reaches every Nigerian mobile number, DND-registered or not.
Unicode adds a small premium to both: generic unicode is ₦7.00 per segment, DND unicode is ₦8.50. International traffic (non-Nigerian numbers) has a separate corridor that starts at ₦25.00 per segment.
A worked example
A school sends a 62-character PTA reminder to 1,000 parents. The message is a service update — transactional class — so it routes on the DND corridor.
- 1 segment per recipient (62 chars fits within 160)
- 1,000 recipients
- 1,000 segments total
- Cost: 1,000 × ₦8.00 = ₦8,000.00
Now consider the same 1,000-parent list receiving a 170-character fundraising note (marketing class, generic route):
- 2 segments per recipient (170 chars → 2 segments at 153 chars per concat segment)
- 1,000 recipients
- 2,000 segments total
- Carrier-blocked for DND-registered parents — say 200 of them
- Delivered segments: 800 × 2 = 1,600
- Cost: 1,600 × ₦6.50 = ₦10,400.00
Two different costs, two different shapes. The transactional send reaches everyone at one segment each. The marketing send reaches 80% of the list at two segments each. Both valid — just different workflows.
A third, worked in the other direction
A clinic sends a 130-character appointment reminder to 2,500 patients. One Yoruba accented character appears in one doctor's name, so the message renders in unicode (70 chars per segment). Class is Transactional, so it routes on the DND corridor at the unicode-on-DND rate of ₦8.50 per segment.
- Unicode, 130 chars → 2 segments per recipient (67 per concat segment)
- 2,500 recipients
- 5,000 segments total
- Cost: 5,000 × ₦8.50 = ₦42,500.00
If the clinic transliterated the name so every character is in the standard GSM-7 set, the same message is 130 chars in standard encoding — one segment per recipient. Cost: 2,500 × ₦8.00 = ₦20,000. The single unicode character cost an extra ₦22,500 across the campaign.
How this appears on your wallet
When you submit a campaign, we estimate the cost based on segment count × recipients × per-segment rate. That amount is reserved from your available balance — not charged — while the campaign awaits dispatch. After dispatch, the actual spend is settled against the reserve, and any difference is released back to available.
What this looks like on your ledger
Ledger
NGN · append-onlyTop-up payment
Card · SMSPSTM_0421
+₦10,000.00
Balance
₦10,000.00
Reserve — April promo
Estimated at preflight
−₦2,480.00
Balance
₦7,520.00
Actual spend — April promo
Settled after dispatch
−₦2,360.00
Balance
₦7,520.00
Released back
Over-reservation released
+₦120.00
Balance
₦7,640.00
Every movement is recorded as its own ledger row. The top-up, the reserve, the actual spend, and the released-back amount all show up separately. If accounting asks where ₦2,360 went, you have an append-only trail to show them.
Pricing FAQ
Questions about cost.
Phones display multi-segment messages as one bubble, but the carrier delivered them as separate SMS. Segments are billed per carrier-side message, not per visual bubble.
No. We count exact characters and compute segments using the GSM standard: 160 for single-segment GSM-7 or 153 per segment when concatenated; 70 or 67 for unicode. The estimator on the pricing page shows the exact math.
No. What you see in the rate card is what we pay the carrier plus our margin — there's no hidden discount. Bulk pricing kicks in past 100,000 segments per month; reach out if you're close to that.
Product
Wallet & Credits
The full lifecycle of a campaign's cost — reserved, settled, released back.
Read moreSolutions
SMEs & retail
Why retailers blend transactional and marketing traffic — and the effective rate that results.
Read morePricing
Full rate card
Every route, every encoding, the estimator for your specific send.
Read more