Wallet & Credits
AfriRoute runs on a pre-funded wallet. You top up a balance, and each delivered message, call, or transaction draws down against it in real time. This keeps spend predictable, prevents bill shock, and works well in markets where post-paid credit is impractical.
How the Wallet Works
- Top up your wallet via mobile money, card, or bank transfer.
- Send SMS, voice, WhatsApp, or payments.
- Each delivered unit is deducted from your balance at the applicable rate.
- Auto-recharge (optional) tops you back up before you run dry.
Check Your Balance
curl https://api.afriroute.ai/api/v1/wallet/balance \
-H "Authorization: Bearer $AFRIROUTE_API_KEY"
{
"balance": 1542.75,
"currency": "USD",
"reserved": 12.40,
"available": 1530.35,
"last_topup": "2026-05-20T10:00:00Z",
"low_balance_threshold": 100.00
}
reserved covers in-flight messages awaiting delivery confirmation; available is what you can spend right now.
Top Up
curl -X POST https://api.afriroute.ai/api/v1/wallet/topup \
-H "Authorization: Bearer $AFRIROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 500,
"currency": "USD",
"payment_method": "mpesa",
"phone_number": "+254712345678"
}'
{
"topup_id": "top_abc123",
"status": "pending",
"amount": 500,
"currency": "USD",
"new_balance_on_completion": 2042.75
}
Card and mobile money top-ups credit instantly on confirmation; bank transfers credit on receipt (usually same or next business day).
Auto-Recharge
Avoid service interruption by configuring an auto-recharge rule. When available falls below trigger_amount, AfriRoute charges your saved payment method for recharge_amount.
curl -X POST https://api.afriroute.ai/api/v1/wallet/auto-recharge \
-H "Authorization: Bearer $AFRIROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"trigger_amount": 100,
"recharge_amount": 500,
"payment_method_id": "pm_card_visa_4242",
"max_recharges_per_day": 3
}'
The max_recharges_per_day cap protects you against runaway spend if a campaign misbehaves.
Low-Balance Alerts
Set a threshold and AfriRoute will email and webhook you before you run out:
curl -X PATCH https://api.afriroute.ai/api/v1/wallet/settings \
-H "Authorization: Bearer $AFRIROUTE_API_KEY" \
-d '{ "low_balance_threshold": 200, "alert_email": "[email protected]" }'
Webhook payload:
{ "event": "wallet.low_balance", "balance": 185.40, "threshold": 200, "currency": "USD" }
Reserved vs Available Balance
When you submit a message, its estimated cost is reserved immediately so you cannot oversend. On a successful delivery the reservation converts to a charge; on failure it is released back to available. This is why a freshly submitted bulk campaign briefly shows a higher reserved figure.
Multi-Currency
You may hold a wallet balance in USD or a supported local currency (KES, NGN, ETB, GHS, ZAR). All usage is rated in USD and converted at the daily mid-market rate plus a 1% FX margin, itemized on your statements.
Transaction Ledger
Every credit and debit is recorded:
curl "https://api.afriroute.ai/api/v1/wallet/ledger?start=2026-05-01&end=2026-05-28" \
-H "Authorization: Bearer $AFRIROUTE_API_KEY"
Related
Billing questions? [email protected]
Last Updated: May 2026