Partner - Institutions
Transactions
Settle via the SACCO wallet. Run deposits, loans, shares, and bulk operations with one type field.
Overview
Fund the settlement wallet (MNO collect), then call POST …/transactions with a type. Use partnerReference for idempotency.
Transaction types
| type | Meaning |
|---|---|
| DEPOSIT | Savings deposit |
| WITHDRAWAL | Savings withdrawal |
| PURCHASE_SHARES | Buy shares |
| WITHDRAW_SHARES | Withdraw shares |
| GIVE_LOAN | Disburse loan |
| LOAN_REPAYMENT | Repay loan |
| MEMBER_TO_MEMBER | Member transfer |
| LIQUIDATION | Liquidation |
Required fields depend on type — e.g. productId for GIVE_LOAN, ledgerId for shares, disbursementId for repayment.
https://api.rukapay.net/partner-institutions/{institutionId}/walletPath parameters
institutionIdRequiredSACCO id.
Response example
{
"success": true,
"data": {
"walletId": "wal_abc",
"currency": "UGX",
"balance": 2500000,
"availableBalance": 2500000,
"publicAccountNumber": "RP-SACCO-001"
}
}Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid x-api-key.
Forbidden
Partner or role cannot perform this action.
https://api.rukapay.net/partner-institutions/{institutionId}/wallet/fund-mnoPath parameters
institutionIdRequiredSACCO id.
Request body
amountRequiredAmount in UGX.
phoneNumberRequired256XXXXXXXXX or 0XXXXXXXXX.
mnoProviderRequiredMTN or AIRTEL.
callbackUrlWebhook for async status.
partnerReferenceIdempotency key.
Request example
{
"amount": 500000,
"phoneNumber": "256701234567",
"mnoProvider": "MTN",
"callbackUrl": "https://your-app.com/webhooks/rukapay",
"partnerReference": "FUND-001"
}Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid x-api-key.
Forbidden
Partner or role cannot perform this action.
https://api.rukapay.net/partner-institutions/{institutionId}/wallet/transfer-mnoPath parameters
institutionIdRequiredSACCO id.
Request body
amountRequiredAmount in UGX.
phoneNumberRequiredRecipient MSISDN.
mnoProviderRequiredMTN or AIRTEL.
Request example
{
"amount": 100000,
"phoneNumber": "256701234567",
"mnoProvider": "AIRTEL",
"partnerReference": "PAYOUT-001"
}Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid x-api-key.
Forbidden
Partner or role cannot perform this action.
https://api.rukapay.net/partner-institutions/{institutionId}/wallet/transfer-bankPath parameters
institutionIdRequiredSACCO id.
Request body
amountRequiredAmount in UGX.
accountNumberRequiredBank account number.
bankCodeRequiredBank code e.g. STANBIC.
accountNameAccount holder name.
Request example
{
"amount": 250000,
"accountNumber": "1234567890",
"bankCode": "STANBIC",
"accountName": "Namasuba SACCO"
}Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid x-api-key.
Forbidden
Partner or role cannot perform this action.
https://api.rukapay.net/partner-institutions/{institutionId}/transactionsPath parameters
institutionIdRequiredSACCO id.
Query parameters
pagePage number.
limitPage size.
typeTransaction type filter.
statusStatus filter.
formatjson (default) or csv.
Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid x-api-key.
Forbidden
Partner or role cannot perform this action.
https://api.rukapay.net/partner-institutions/{institutionId}/transactionsPath parameters
institutionIdRequiredSACCO id.
Request body
typeRequiredSee transaction types table.
accountNoMember account number.
clientIdCore-banking client id.
amountAmount in UGX.
productIdLoan product (GIVE_LOAN).
ledgerIdShares ledger id.
savingsProductIdSavings product id.
disbursementIdLoan disbursement (repayment).
fundingSourceMNO or WALLET.
payoutMethodRUKAPAY_WALLET | MTN | AIRTEL | BANK.
partnerReferenceIdempotency key.
Request example
{
"type": "DEPOSIT",
"accountNo": "AC001",
"clientId": "1001",
"amount": 50000,
"savingsProductId": 3,
"fundingSource": "MNO",
"mnoProvider": "MTN",
"phoneNumber": "256701234567",
"partnerReference": "DEP-001"
}Response example
{
"success": true,
"data": {
"transactionId": "txn_abc123",
"type": "DEPOSIT",
"amount": 50000,
"status": "PENDING",
"partnerReference": "DEP-001"
}
}Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid x-api-key.
Forbidden
Partner or role cannot perform this action.
https://api.rukapay.net/partner-institutions/{institutionId}/transactions/bulkPath parameters
institutionIdRequiredSACCO id.
Request body
itemsRequiredArray of transaction objects (same shape as single).
Request example
{
"items": [
{
"type": "DEPOSIT",
"accountNo": "AC001",
"amount": 20000,
"savingsProductId": 3,
"fundingSource": "WALLET",
"partnerReference": "BULK-1"
},
{
"type": "DEPOSIT",
"accountNo": "AC002",
"amount": 15000,
"savingsProductId": 3,
"fundingSource": "WALLET",
"partnerReference": "BULK-2"
}
]
}Status codes
OK
Request succeeded.
Unauthorized
Missing or invalid x-api-key.
Forbidden
Partner or role cannot perform this action.