Guide
MbiyoPay
MbiyoPay is the platform's buyer- and seller-facing mobile money provider, covering the DRC and Rwanda — separate from PawaPay, which is scoped narrowly to subscriptions and expenses internally. Every endpoint on this page requires an ADMIN or ACCOUNTANT role and lives under https://api.swiftgoma.com/api/v1/mbiyopay.
What actually runs through MbiyoPay
Same OTP-approval pattern as PawaPay
Supported countries
| Country | Networks | Currency | Amount range |
|---|---|---|---|
| DRC (CD) | vodacom, airtel, orange, africell | USD | 0.1 – 2,500 |
| CDF | 40 – 5,000,000 | ||
| Rwanda (RW) | mtn, airtel | RWF | 100 – 5,000,000 |
GET /countries returns this same information live from the connected account — worth checking before hardcoding limits, since they can change.
Payin
POST /payin requests a mobile money charge directly — like PawaPay deposits, this one call isn't OTP-gated, since it only ever brings money in. A duplicate submission with the same amount, currency, network, and phone number within a 5-minute window resolves to the same payin instead of charging twice, even without an explicit orderId.
Payout
| Step | Endpoint |
|---|---|
| 1. Request approval | POST /payout/request-approval |
| 2. Confirm | POST /payout/confirm |
| History | GET /payout/history |
Production payouts require MbiyoPay-side KYC
MBIYOPAY_KYC_REQUIRED if the platform's own MbiyoPay account hasn't completed KYC on their side yet — this is separate from, and unrelated to, SwiftGoma's seller KYC.Checking status & balances
| What | Endpoint |
|---|---|
| Transaction status (payin or payout) | GET /transactions/:transactionId |
| Wallet balances | GET /balances |
| Balances by network | GET /balances/networks |
GET /transactions/:transactionId accepts either MbiyoPay's own transaction ID or the orderId you supplied when initiating the payin or payout. Network balances are useful for spotting when one specific carrier's float is running low before it causes payout failures.