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

typeMeaning
DEPOSITSavings deposit
WITHDRAWALSavings withdrawal
PURCHASE_SHARESBuy shares
WITHDRAW_SHARESWithdraw shares
GIVE_LOANDisburse loan
LOAN_REPAYMENTRepay loan
MEMBER_TO_MEMBERMember transfer
LIQUIDATIONLiquidation

Required fields depend on type — e.g. productId for GIVE_LOAN, ledgerId for shares, disbursementId for repayment.

https://api.rukapay.net/partner-institutions/{institutionId}/wallet

Path parameters

institutionIdRequired
string

SACCO id.

Response example

JSON
{
  "success": true,
  "data": {
    "walletId": "wal_abc",
    "currency": "UGX",
    "balance": 2500000,
    "availableBalance": 2500000,
    "publicAccountNumber": "RP-SACCO-001"
  }
}

Status codes

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid x-api-key.

403

Forbidden

Partner or role cannot perform this action.

https://api.rukapay.net/partner-institutions/{institutionId}/wallet/fund-mno

Path parameters

institutionIdRequired
string

SACCO id.

Request body

amountRequired
number

Amount in UGX.

phoneNumberRequired
string

256XXXXXXXXX or 0XXXXXXXXX.

mnoProviderRequired
string

MTN or AIRTEL.

callbackUrl
string

Webhook for async status.

partnerReference
string

Idempotency key.

Request example

JSON
{
  "amount": 500000,
  "phoneNumber": "256701234567",
  "mnoProvider": "MTN",
  "callbackUrl": "https://your-app.com/webhooks/rukapay",
  "partnerReference": "FUND-001"
}

Status codes

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid x-api-key.

403

Forbidden

Partner or role cannot perform this action.

https://api.rukapay.net/partner-institutions/{institutionId}/wallet/transfer-mno

Path parameters

institutionIdRequired
string

SACCO id.

Request body

amountRequired
number

Amount in UGX.

phoneNumberRequired
string

Recipient MSISDN.

mnoProviderRequired
string

MTN or AIRTEL.

Request example

JSON
{
  "amount": 100000,
  "phoneNumber": "256701234567",
  "mnoProvider": "AIRTEL",
  "partnerReference": "PAYOUT-001"
}

Status codes

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid x-api-key.

403

Forbidden

Partner or role cannot perform this action.

https://api.rukapay.net/partner-institutions/{institutionId}/wallet/transfer-bank

Path parameters

institutionIdRequired
string

SACCO id.

Request body

amountRequired
number

Amount in UGX.

accountNumberRequired
string

Bank account number.

bankCodeRequired
string

Bank code e.g. STANBIC.

accountName
string

Account holder name.

Request example

JSON
{
  "amount": 250000,
  "accountNumber": "1234567890",
  "bankCode": "STANBIC",
  "accountName": "Namasuba SACCO"
}

Status codes

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid x-api-key.

403

Forbidden

Partner or role cannot perform this action.

https://api.rukapay.net/partner-institutions/{institutionId}/transactions

Path parameters

institutionIdRequired
string

SACCO id.

Query parameters

page
number

Page number.

limit
number

Page size.

type
string

Transaction type filter.

status
string

Status filter.

format
string

json (default) or csv.

Status codes

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid x-api-key.

403

Forbidden

Partner or role cannot perform this action.

https://api.rukapay.net/partner-institutions/{institutionId}/transactions

Path parameters

institutionIdRequired
string

SACCO id.

Request body

typeRequired
string

See transaction types table.

accountNo
string

Member account number.

clientId
string

Core-banking client id.

amount
number

Amount in UGX.

productId
number

Loan product (GIVE_LOAN).

ledgerId
number

Shares ledger id.

savingsProductId
number

Savings product id.

disbursementId
number

Loan disbursement (repayment).

fundingSource
string

MNO or WALLET.

payoutMethod
string

RUKAPAY_WALLET | MTN | AIRTEL | BANK.

partnerReference
string

Idempotency key.

Request example

JSON
{
  "type": "DEPOSIT",
  "accountNo": "AC001",
  "clientId": "1001",
  "amount": 50000,
  "savingsProductId": 3,
  "fundingSource": "MNO",
  "mnoProvider": "MTN",
  "phoneNumber": "256701234567",
  "partnerReference": "DEP-001"
}

Response example

JSON
{
  "success": true,
  "data": {
    "transactionId": "txn_abc123",
    "type": "DEPOSIT",
    "amount": 50000,
    "status": "PENDING",
    "partnerReference": "DEP-001"
  }
}

Status codes

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid x-api-key.

403

Forbidden

Partner or role cannot perform this action.

https://api.rukapay.net/partner-institutions/{institutionId}/transactions/bulk

Path parameters

institutionIdRequired
string

SACCO id.

Request body

itemsRequired
array

Array of transaction objects (same shape as single).

Request example

JSON
{
  "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

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid x-api-key.

403

Forbidden

Partner or role cannot perform this action.