Skip to main content
We recommend checking out the introductory section to understand the basics of making transfers first.
Send money quickly to different bank accounts across multiple countries with Flutterwave. You can see supported currencies and countries below.

Initiating Bank Transfers

When making a bank transfer, you need to follow these steps:
  • Collect the required details: In most cases, only the recipient’s details are necessary. However, you’ll also need the customer’s details for certain transfers.
  • Get the required bank codes: Make a request to our banks endpoints to get the appropriate bank codes for the transfer.
Transfers to Benin, Cameroon, Chad, Côte d’Ivoire, DR Congo, Gabon, Ghana, Malawi, Rwanda, Senegal, Sierra Leone, Tanzania, and Uganda all require destination_branch_code. You can get the bank_branch_code using the bank branches endpoint.
  • Send the details to the initiate transfer endpoint. See example requests in the next section.

Tanzania Bank Transfer

Feature RequestTransfers to Tanzanian bank accounts are not available by default. You need to make a request to have this feature enabled.

Prerequisites

  1. Complete your KYC and ensure that your account is approved for transactions.
  2. Request this feature on your account via email or our support form.
  3. Whitelist your server IP address to prevent security errors.
  4. Fund your TZS balance. You can do this by:
    • Directly funding via collections, this funding method is limited to a max value equivalent to $1,000.
    • Indirect funding via FX conversion from a different currency balance, i.e. wallet-to-wallet transfers.

Basic terminology

  • Sending: This is initiating the transfer. Some of their details are required to complete the payouts.
  • Beneficiary: This is the individual receiving the transfer.

Payout Flow

Like most transfers on Flutterwave, TZS bank transfers are easy to execute. Simply follow these steps to make these transfers:
  1. Collect the sender and beneficiary’s information. Some important information to collect includes the account information, sender’s name, and address.
Sample Request
  1. Fetch the beneficiary’s bank code using the bank and banks branches endpoints.
  2. Send your payment request with all the needed transfer information to the transfers endpoint to create the payout.
You’ll get a response like this:
200 OK
  1. Verify your transfer status; there are many ways to do this:
    • You can get the transfer status using the transfer status endpoint.
    • If you have webhooks enabled on your dashboard, check the transfer webhooks to confirm it’s status.
    • For transfers with callback_id, we’ll send the transfer details with their status using the specified URL.
Be sure to visit our helper’s documentation on testing for information on how to test your transfers.

Ethiopian Bank Transfer

Send funds to Ethiopian 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. Ensure your balance has sufficient funds. If needed, fund it using an alternate balance; see the list of supported currencies for ETB transfers.

Payout Flow

Here are the steps to send money to Ethiopian bank accounts.
  1. Collect the beneficiary’s details name, bank, and account number. You also need to specify additional information. See the expected data requirements below:
cURL
  1. Fetch the beneficiary’s bank code. Send this as the account_bank in your request.
  2. Include the debit_currency parameter in your request to debit from a different currency balance.
  3. Initiate your transfer using the required data and the transfer endpoint.
You’ll get a response like this:
200 OK
  1. Verify your transfer status, there are many ways to do this:
    • You can get the transfer status using the transfer status endpoint.
    • If you have webhooks enabled on your dashboard, check the transfer webhooks to confirm its status.
    • For transfers with callback_id, we’ll send the transfer details with its status using the specified URL.
You’ll get a response like this:
Sample Response (Polling)
Be sure to visit our testing helpers documentation for information on how to test your transfers.

Examples

Here are some examples to help you with implementation.

Transfer to NGN Accounts

NGN_SAMPLE

Transfers to USD Accounts

These examples demonstrate transfers to USD and USD-domiciliary accounts (First Bank, FCMB, Polaris Bank, UBA, Wema Bank, and Zenith Bank).

Transfers to EUR and GBP Accounts

Transfer to African Bank Accounts

Transfer Response

Depending on the type of transfer you initiate, you will receive a response similar to any of these:
As always, you’ll notice that the data.status of the transfer is "NEW". Remember to set up a webhook or call the get transfer endpoint to find out when the transfer is completed. See Transfers: Overview for details.