Live activity feed
Spending by category
Volume by provider
Daily money flow
Recent transactions
Search & filter
Build a report
Live tail
Last 10 days by hour (UTC)
Darker means more requests that hour; a red outline marks any hour with at least one error. Hover a cell for the exact counts.
Plans are served to the app by GET /api/plans. A free plan (price 0)
just records the user's choice; anything priced above 0 is charged through
whichever gateway is active in Payments.
Active gateway
Whichever is selected here is what actually charges a user for a paid plan — credentials for the other can still be filled in ahead of time, switching is just changing this.
Pesapal
Redirect-based checkout — the app opens redirectUrl in a browser
and Pesapal calls back once the payer finishes.
AzamPay
Mobile-money push — the payer approves a USSD prompt on their phone, no redirect involved.
Recent checkouts
Add new admin
Recipients
Only users with a phone number on file can be selected.
Message
Send log
Every campaign actually attempted, most recent first — the gateway's own response is what recorded each row's status.
Imported SMS messages
Last 100 SMS messages imported into the system, with their MD5 dedup IDs. The ID is MD5(body + transactionId) for linking messages to transactions.