Overview

Withdrawals move funds from your RohoPay live wallet balance to a mobile money wallet. This is how you extract earnings from the platform.
POST /dashboard/wallet/withdraw
Cookie: session={your_session}
Content-Type: application/json

Request Body

phone
string
required
Destination mobile money number in international format. Example: 256700123456.
amount
integer
required
Amount to withdraw in UGX. Must not exceed your live wallet balance minus commission.
currency
string
default:"UGX"
Currency code.
description
string
Optional description for the withdrawal record.
idempotency_key
string
required
Unique key to prevent duplicate withdrawals.

Example

const res = await fetch("/dashboard/wallet/withdraw", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  credentials: "include",
  body: JSON.stringify({
    phone: "256700123456",
    amount: 500000,
    currency: "UGX",
    description: "Monthly payout",
    idempotency_key: crypto.randomUUID(),
  }),
});

const { data } = await res.json();
console.log(data.status); // "pending" → becomes "successful" after USSD

Response

{
  "success": true,
  "data": {
    "transaction_id": "txn_01j2k3",
    "reference": "RHP-2024-WITH001",
    "status": "pending",
    "commission": 10000,
    "provider": "primary",
    "failover_reason": null
  }
}

Commission on Withdrawals

Withdrawals are treated as disbursements. The platform commission is deducted from the withdrawal amount. The commission rate is set by the platform administrator and visible in Dashboard → Settings.
Amount (UGX)Commission (example 2%)You receive
100,0002,00098,000
500,00010,000490,000
1,000,00020,000980,000

Minimum Withdrawal

The minimum withdrawal amount is UGX 5,000.

Processing Time

Withdrawals are typically processed within:
  • MTN MoMo: 5–30 seconds
  • Airtel Money: 10–60 seconds
  • Other operators: up to 3 minutes
The funds arrive in the recipient’s mobile wallet after the provider confirms the disbursement.

Withdrawal History

View all your withdrawals from the dashboard under Wallet → Withdrawal History, or query the transactions list filtered by type:
GET /api/v1/transactions?type=disbursement
Authorization: Bearer {api_key}