Nyota SMS
Billing, Tiers & Pay-As-You-Go
Understanding SMS unit balances, volume discounts, and automatic PAYG wallet charging.
Nyota SMS uses a Dual-Balance Model to combine the cost savings of bulk unit purchases with the reliability of automated on-demand billing.
The Dual-Balance Model
- Nyota Wallet (
billingAccounts.balanceCents): The master financial ledger for your workspace, held in KES cents (100 cents = KSh 1.00). - SMS Units (
smsWallets.unitBalance): Operational units consumed by outbound messages.1 Unit=1 GSM-7 segment(up to 160 characters) per recipient.1 Unit=1 UCS-2 Unicode segment(up to 70 characters) per recipient.
Volume Tiered Pricing
SMS Units purchased in bulk receive automated volume discounts:
| Tier | Unit Volume | Rate per Unit | 160-char SMS Cost |
|---|---|---|---|
| Tier 1 | 1 – 4,999 units | KSh 0.60 (60 cents) | KSh 0.60 |
| Tier 2 | 5,000 – 49,999 units | KSh 0.50 (50 cents) | KSh 0.50 |
| Tier 3 | 50,000+ units | KSh 0.40 (40 cents) | KSh 0.40 |
Pay-As-You-Go (PAYG) Auto-Topup
You can enable PAYG on your SMS Wallet to prevent dispatches from failing when units hit zero.
Mode 1: Batch Auto-Purchase
When your balance drops below lowThreshold, the system automatically purchases a batch of units (e.g. 5,000 units) from your Nyota Wallet at the discounted tier rate.
Mode 2: On-Demand Default Fallback
If you enable PAYG without setting a batch amount, outbound messages that exceed your unit balance are billed directly to your Nyota Wallet at the baseline rate of KSh 0.60 per unit.
// Configure PAYG on your SMS Wallet
await sms.wallet.update({
isPaygEnabled: true,
lowThreshold: 100,
autoPurchaseUnits: 5000, // Automatically buy 5,000 units (Tier 2 @ KSh 0.50)
});