Uganda 🇺🇬

Send funds to Ugandan bank accounts.

Prerequisites

  1. Complete your KYC and ensure that your account is approved for transactions.
  2. Whitelist your server IP addresses to prevent security errors.
  3. Make sure your balance has enough funds. If needed, use an alternate balance; see the list of supported currencies for UGX transfers.

Payout Flow

Here are the steps to send money to Ugandan bank accounts.

  1. Collect the beneficiary's details such as the beneficiary's name, bank, and account number. See the expected data requirements below:
{
  "reference": "", // merchant_input
  "currency": "", // merchant_input
  "amount": 0.0, // merchant_input
  "callback_url": "", // merchant_input
  "narration": "", // merchant_input
  "debit_currency": "", // merchant_input
  "debit_subaccount": "", // merchant_input
  "account_bank": "", // beneficiary_information
  "account_number": "", // beneficiary_information
  "beneficiary_name": "" // beneficiary_information
}
  1. Fetch the beneficiary's bank code using the bank and bank branches endpoints to get the account_bank.

  2. Use the transfer endpoint to initiate your transfer with the required data. You can include the debit_currency parameter in your request to debit from a different currency balance.

{
	"account_bank": "11125380",
	"account_number": "0031625807099",
	"amount": 500,
	"narration": "SAMPLE UGX TRANSFER",
	"currency": "UGX",
	"destination_branch_code": "UG280103",
	"beneficiary_name": "NWABALI S."
}

You'll get a response similar to this:

{
	"status": "success",
	"message": "Transfer Queued Successfully",
	"data": {
		"id": 127831,
		"account_number": "0031625807099",
		"bank_code": "11125380",
		"full_name": "Flutterwave Developers",
		"created_at": "2020-06-25T11:24:01.000Z",
		"currency": "UGX",
		"amount": 50,
		"fee": 20,
		"status": "NEW",
		"reference": "new-UGX-test-transfer2",
		"meta": null,
		"narration": "SAMPLE UGX TRANSFER",
		"complete_message": "",
		"requires_approval": 0,
		"is_approved": 1,
		"bank_name": "FINANCE TRUST BANK LTD"
	}
}
  1. Verify your transfer status; there are many ways to do this:

    • You can get the transfer status using the transfer status endpoint.
    • If webhooks are enabled on your dashboard, check them to confirm the transfer status.
    • For transfers with callback_id, we'll send the transfer details with their status using the specified URL.
{
  "event": "transfer.completed",
  "event.type": "Transfer",
  "data": {
    "id": 127831,
		"account_number": "0031625807099",
		"bank_code": "11125380",
		"full_name": "Flutterwave Developers",
		"created_at": "2020-06-25T11:24:01.000Z",
		"currency": "UGX",
		"amount": 50,
		"fee": 20,
		"status": "NEW",
		"reference": "new-UGX-test-transfer2",
		"meta": null,
		"narration": "SAMPLE UGX TRANSFER",
		"complete_message": "",
		"requires_approval": 0,
		"is_approved": 1,
		"bank_name": "FINANCE TRUST BANK LTD"
    "complete_message": "Successful",
  }
}
{
    "status": "success",
    "message": "Transfer fetched",
     "data":  {
      "id": 127831,
      "account_number": "0031625807099",
      "bank_code": "11125380",
      "full_name": "Flutterwave Developers",
      "created_at": "2020-06-25T11:24:01.000Z",
      "currency": "UGX",
      "amount": 50,
      "fee": 20,
      "status": "NEW",
      "reference": "new-UGX-test-transfer2",
      "meta": null,
      "narration": "SAMPLE UGX TRANSFER",
      "complete_message": "",
      "requires_approval": 0,
      "is_approved": 1,
      "bank_name": "FINANCE TRUST BANK LTD"
      "complete_message": "Successful",
    }
}

Testing Transfers

Check our testing guide for details on testing transfers.