SkanPay API
Accept MTN Mobile Money and Airtel Money in your own website or app, and move money back out, with no one logging in to confirm anything.
SkanPay is API-first. Your server asks SkanPay to charge a customer's wallet, the customer approves the prompt on their phone, and SkanPay tells your server the outcome with a signed webhook. Your order is marked paid automatically. The dashboard is where you watch and configure this; it is never how customer money moves.
What you can build
| Money flow | What it does | Endpoint | Status |
|---|---|---|---|
| Cash-in (collections) | Charge a customer's MTN or Airtel wallet for an order. | POST /v1/charges | Live |
| Top-up (deposits) | Move money from your own wallet into your SkanPay balance. | POST /v1/deposits | Live |
| Cash-out (payouts) | Send money from your balance to any MTN or Airtel wallet. | POST /v1/payouts | Coming soon |
| Cash-out (withdrawals) | Send your balance to your own verified business wallet. | POST /v1/withdrawals | Coming soon |
| Reconcile | List every transaction with its status trail and ledger entries. | GET /v1/transactions | Live |
| Get notified | Signed webhooks with retries, replayable from the dashboard. | Webhooks | Live |
Where it works
| Country | Currency | Networks | Status |
|---|---|---|---|
| Uganda (+256) | UGX | MTN Mobile Money, Airtel Money | Live |
| Kenya (+254) | KES | Airtel Money | Coming soon |
| Ghana (+233) | GHS | MTN MoMo, AirtelTigo Money | Coming soon |
How a payment works
- Your customer checks out on your site. Your server calls
POST /v1/chargeswith the amount, the customer's phone number and your order id. - SkanPay answers straight away with the charge in status
AWAITING_CUSTOMER. The customer now has a prompt on their phone asking for their mobile money PIN. - You show “Check your phone to approve the payment” on your page.
- The customer approves (or declines, or ignores it).
- SkanPay sends a
charge.successfulorcharge.failedwebhook to your server, signed with your webhook secret. You verify it and mark the order paid. - The money lands in your pending balance, less SkanPay's fee, and becomes available one day later.
Base URL
https://api.skanpay.websiteAll requests use HTTPS and JSON. Authenticate with your secret key as a bearer token. There is no separate test environment: your account is reviewed and approved first, and then you integrate against the live API with small real amounts.
Start here
QuickstartFrom an approved account to your first paid order.Cash-in guideEverything about collecting from a wallet.Cash-out guidePayouts, withdrawals and payout wallets.WebhooksReceive and verify outcomes, in four languages.ErrorsEvery error code, what it means and what to do.Go-live checklistWhat to check before real customers pay.