RukaPay Gateway API
RukaPay provides secure and scalable payment APIs for businesses to collect payments, process payouts, transfer money, pay bills, and purchase airtime across mobile money networks and banks.
Money transfer API — send to MNO (MTN/Airtel), banks, bill payments, and airtime via POST process-transfer.
Quick access
View Documentation
Gateway API reference from rdbs_core — process-transfer, validation, status.
Learn more →Generate API Keys
Obtain x-api-key credentials from your RukaPay partner dashboard.
Learn more →Start Integration
POST to process-transfer with the correct transactionMode.
Learn more →Test APIs
Full dev URLs for validate-beneficiary-sandbox and process-transfer-sandbox.
Learn more →Gateway API
All payment flows use the Gateway API tag in RukaPay — one endpoint (POST process-transfer) with different transactionMode values for MNO, banks, bills, and airtime.
Collections
PARTNER_COLLECT_MNO — collect from MTN/Airtel (callbackUrl required).
Payouts
PARTNER_SEND_MNO — send money to MTN or Airtel wallets.
Bank Transfer
PARTNER_SEND_BANK — disburse to Ugandan bank accounts.
Bill Payment
PARTNER_PAY_BILL_PAYMENT — NWSC, UMEME, TV, and more.
Airtime
PARTNER_PAY_AIRTIME — top up MTN and Airtel numbers.
Transaction Status
Poll status by transaction ID or partnerReference.
View API →Transaction modes
| transactionMode | Product | Description |
|---|---|---|
| PARTNER_SEND_MNO | Mobile Money Payout | Send money to MTN or Airtel mobile money wallets. |
| PARTNER_COLLECT_MNO | Mobile Money Collection | Collect payment from customer MTN/Airtel. Credits partner wallet. callbackUrl required. |
| PARTNER_SEND_BANK | Bank Transfer | Send money to a Ugandan bank account. |
| PARTNER_PAY_BILL_PAYMENT | Bill Payment | Pay utility and subscription bills (NWSC, UMEME, DSTV, etc.). |
| PARTNER_PAY_AIRTIME | Airtime Purchase | Purchase airtime on MTN or Airtel. |
Introduction
The RukaPay Gateway API lets partners collect payments, send payouts, pay bills, and purchase airtime through a single REST integration. Implementation lives in rdbs_core under src/gateway/, Swagger-tagged Gateway API.
Authenticate with x-api-key. All transfers go to:
https://api.rukapay.net/api/v1/gateway/process-transferBase path: /api/v1/gateway
curl -X POST https://api.rukapay.net/api/v1/gateway/process-transfer \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transactionMode": "PARTNER_COLLECT_MNO",
"amount": 50000,
"currency": "UGX",
"phoneNumber": "256700000000",
"mnoProvider": "MTN",
"narration": "Invoice payment #1001",
"partnerReference": "PARTNER-REF-123456",
"callbackUrl": "https://your-app.com/webhooks/rukapay"
}'Next steps
- Authentication — x-api-key and optional bearer token
- Collections — PARTNER_COLLECT_MNO
- Webhooks — callbackUrl payloads on completion