Bank account transfers

Hey👋. We recommend checking out the overview 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.

CurrencySupported Countries
EURSEPA countries
GBPUK
GHSGhana
KESKenya
NGNNigeria
SLLSierra Leone
TZSTanzania
UGXUganda
USDNigeria (domicilliary account), US
XAFCameroon, Chad, DR Congo, Gabon
XOFBenin, Côte d'Ivoire, Senegal
ZARSouth Africa

In this explainer, we cover the essentials of making a bank account transfer. Kindly refer to our overview for more information on the entire transfer process.

Initiating Bank transfers

When making a bank transfer, you need to follow these steps:

  1. 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.
  2. Get the required bank codes: query our banks endpoints to get the appropriate bank and branch codes for the transfer.
  3. Send the details to the initiate transfer endpoint. See example requests in the next section.

Examples

Here are some examples to help your implementation.

Transfers to NGN Accounts

{
    "account_bank": "044",
    "account_number": "0690000040",
    "amount": 200,
    "narration": "Payment for things",
    "currency": "NGN",
    "reference": "jh678b3kol1Z",
    "callback_url": "https://webhook.site/b3e505b0-fe02-430e-a538-22bbbce8ce0d",
    "debit_currency": "NGN"
}

Transfers to USD Accounts

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

{
  "amount": 500,
  "narration": "Sample USD Transfer",
  "currency": "USD",
+ "beneficiary_name": "Mark Cuban",
  "meta":
    {
+     "account_number": "09182972BH",
+     "routing_number": "0000000002993",
+     "swift_code": "ABJG190",
+     "bank_name": "BANK OF AMERICA, N.A., SAN FRANCISCO, CA",
+     "beneficiary_name": "Mark Cuban",
+     "beneficiary_address": "San Francisco, 4 Newton",
+     "beneficiary_country": "US"
    }
}
{
  "account_number": "5090280719",
  "account_bank": "214",
  "amount": 2000,
  "currency": "USD",
  "narration": "Example FCMB DOM Payout",
  "reference": "SAMPLE-REF",
+ "beneficiary_name": "Tobi Jones",
  "meta": [
    {
+      "sender": "Flutterwave Developers",
+      "sender_address": "35a, Ladi Alakija Avenue, Lekki",
+      "sender_country": "NG",
+      "sender_id_number": "00000000000",
+      "sender_id_type": "drivers license",
+      "sender_id_expiry": "05-2023",
+      "sender_mobile_number": "2348000000000",
+      "sender_occupation": "Consultant",
+      "sender_beneficiary_relationship": "Customer",
+      "recipient_address": "19, Olubunmi Rotimi street, Lekki",
+      "beneficiary_country": "NG",
+      "mobile_number": "2348000000000",
+      "email": "tobi@jones.com",
+      "beneficiary_occupation": "Student",
+      "transfer_purpose": "Wallet withdrawal", 
    }
  ]
}
{
  "account_bank": "044",
  "account_number": "0690000040",
  "amount": 3000,
  "currency": "USD",
  "narration": "Example Fidelity Bank DOM Payout",
  "reference": "SAMPLE-REF",
  "meta": [
    {
+      "sender": "Another User",
+      "sender_city": "Abuja",
+      "first_name": "Example",
+      "last_name": "User",
+      "email": "user@example.com",
+      "beneficiary_country": "NG",
+      "mobile_number": "+2348010901234",
+      "merchant_name": "Spotify"
    }
  ]
}
{
  "account_number": "5090280719",
  "account_bank": "101",
  "amount": 1000,
  "currency": "USD",
  "narration": "Example Providus DOM Payout",
+ "beneficiary_name": "Example User",
  "meta": [
    {
+      "sender": "Test User",
+      "sender_address": "35a Ladi Alakija Avenue lekki1",
+      "sender_city": "Lekki",
+      "sender_country": "NG",
+      "sender_id_number": "22244857954",
+      "sender_mobile_number": "+2348022913114",
+      "sender_email_address": "tester@example.com",
+      "first_name": "Example",
+      "last_name": "User",
+      "recipient_address": "TinCan VI",
+      "beneficiary_state": "Lagos",
+      "beneficiary_country": "NG",
+      "beneficiary_mobile_number": "2348022913114",
+      "routing_number": "101",
+      "account_number": "5090280719",
    }
  ]
}
{
  "account_bank": "044",
  "account_number": "0690000040",
  "amount": 2400,
  "currency": "USD",
  "narration": "Example Union Bank DOM Payout",
  "reference": "SAMPLE-REF",
  "meta": [
    {
+      "sender": "Another User",
+      "sender_city": "Abuja",
+      "first_name": "Example",
+      "last_name": "User",
+      "email": "user@example.com",
+      "beneficiary_country": "NG",
+      "mobile_number": "+2348010901234",
+      "merchant_name": "Spotify"
    }
  ]
}
{
  "account_bank": "044",
  "account_number": "0690000040",
  "amount": 2000,
  "currency": "USD",
  "narration": "Example DOM Payout",
  "reference": "SAMPLE-REF",
  "meta": [
    {
+      "sender": "Another User",
+      "first_name": "Example",
+      "last_name": "User",
+      "email": "user@example.com",
+      "beneficiary_country": "NG",
+      "mobile_number": "+2348131133933",
+      "merchant_name": "Spotify"
    }
  ]
}

Transfers to EUR and GBP accounts

{
  "amount": 500,
  "narration": "Sample EUR Transfer",
  "currency": "EUR",
+ "beneficiary_name": "John Twain",
  "meta": [
    {
+     "account_number": "DA091983888373BGH",
+     "routing_number": "BECFDE7HKKX",
+     "swift_code": "BECFDE7HKKX",
+     "bank_name": "LLOYDS BANK",
+     "beneficiary_name": "John Twain",
+     "beneficiary_country": "DE",
+     "postal_code": "80489",
+     "street_number": "31",
+     "street_name": "Handelsbank Elsenheimer Str.",
+     "city": "München"
    }
  ]
}
{
  "amount": 500,
  "narration": "Sample GBP Transfers",
  "currency": "GBP",
+ "beneficiary_name": "John Twain",
  "meta": [
    {
+     "account_number": "DA091983888373BGH",
+     "routing_number": "BECFDE7HKKX",
+     "swift_code": "BECFDE7HKKX",
+     "bank_name": "LLOYDS BANK",
+     "beneficiary_name": "John Twain",
+     "beneficiary_country": "UK",
+     "postal_code": "80489",
+     "street_number": "31",
+     "street_name": "Handelsbank Elsenheimer Str.",
+     "city": "London"
    }
  ]
}

Transfer to African Bank Accounts

{
    "account_bank": "GH280100",
    "account_number": "0031625807099",
    "amount": 500,
    "narration": "Test GHS bank transfers",
    "currency": "GHS",
+   "destination_branch_code": "GH280103",
+   "beneficiary_name": "Kwame Adew"
}
{
    "account_bank": "68",
    "account_number": "0031625807099",
    "amount": 500,
    "narration": "SAMPLE KES TRANSFER",
    "currency": "KES",
    "meta": 
        {
+           "sender": "James Arthur",
+           "sender_country": "NG",
+           "mobile_number": "+23457558595"
        }
}
{
    "account_bank": "97964560",
    "account_number": "0690000040",
    "amount": 100000,
    "narration": "SAMPLE MWK TRANSFER",
    "currency": "MWK",
    "debit_currency": "NGN",
    "beneficiary_name": "NWABALI S.",
    "destination_branch_code": "18120510PC"
}
{
    "account_bank": "SL009000",
    "account_number": "386745674657",
    "beneficiary_name": "NWABALI S.",
+   "currency": "SLL",
    "debit_currency": "USD",
    "amount": 1000,
+   "destination_branch_code": "SL009003"
}
{
    "account_number": "0112728000",
    "account_bank": "11288192",
    "amount": 1000,
    "narration": "Payment for goods",
    "currency": "TZS",
    "debit_currency": "NGN",
    "beneficiary_name": "Isaac Mutombo",
    "reference": "TRF_01025",
    "meta": [
        {
+           "Sender": "Hydra Bella",
+           "SenderCountry": "NG",
+           "SenderAddress": "Block-8 Kivukoni Road"
        }
    ]
}
{
    "account_bank": "GH280100",
    "account_number": "0031625807099",
    "amount": 500,
    "narration": "SAMPLE UGX TRANSFER",
    "currency": "UGX",
+   "destination_branch_code": "GH280103",
+   "beneficiary_name": "NWABALI S."
}
{
    "account_bank": "TD60005",
    "account_number": "2217857532",
    "beneficiary_name": "Taju Afobaje",
    "amount": 100,
    "narration": "Sample XAF Transfer",
    "currency": "XAF",
    "debit_currency": "XAF",
    "destination_branch_code": "TD60005001"
}
{
    "account_bank": "TD60005",
    "account_number": "2217857532",
    "beneficiary_name": "Taju Afobaje",
    "amount": 100,
    "narration": "Sample XOF Transfer",
    "currency": "XOF",
    "debit_currency": "XAF",
    "destination_branch_code": "TD60005001"
}
{
    "account_bank": "FNB",
    "account_number": "0031625807099",
    "amount": 500,
    "narration": "Withdraw Fiat",
    "currency": "ZAR",
    "meta": 
        {
+           "first_name": "James",
+           "last_name": "Arthur",
+           "email": "test@test.com",
+           "mobile_number": "+23457558595",
+           "recipient_address": "Lavington Nairobi"
        }
}

Transfer Response

Depending on the type of transfer you initiate, you will receive a response similar to any of these:

{
  "status": "success",
  "message": "Transfer Queued Successfully",
  "data": {
    "id": 26251,
    "account_number": "0690000040",
    "bank_code": "044",
    "full_name": "Flutterwave Developers",
    "created_at": "2020-01-20T16:09:34.000Z",
    "currency": "NGN",
    "debit_currency": "NGN",
    "amount": 5500,
    "fee": 45,
    "status": "NEW",
    "reference": "akhlm-pstmnpyt-rfxx007_PMCKDU_1",
    "meta": null,
    "narration": "Akhlm Pstmn Trnsfr xx007",
    "complete_message": "",
    "requires_approval": 0,
    "is_approved": 1,
    "bank_name": "ACCESS BANK NIGERIA"
  }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 221082,
        "account_number": "FOREIGN-ACCOUNT",
        "bank_code": "FOREIGN-BANK",
        "full_name": "Mark Cuban",
        "created_at": "2023-11-08T15:43:47.000Z",
        "currency": "USD",
        "amount": 500,
        "fee": 45,
        "status": "NEW",
        "reference": "d1a5b51a94ed0607",
        "meta": [
            {
                "RoutingNumber": "0000000002993",
                "SwiftCode": "ABJG190",
                "BankName": "BANK OF AMERICA, N.A., SAN FRANCISCO, CA",
                "BeneficiaryName": "Mark Cuban",
                "BeneficiaryAddress": "San Francisco, 4 Newton",
                "BeneficiaryCountry": "US",
                "MerchantName": "Glory Amuah",
                "SenderCountry": "NG",
                "SenderAddress": "Lagos",
                "SenderMobileNumber": "+2348140244958",
                "AccountNumber": "FOREIGN-ACCOUNT",
                "Sender": "Glory Amuah",
                "Address": "San Francisco, 4 Newton",
                "MobileNumber": "23480000000000"
            }
        ],
        "narration": "Test Int'l bank transfers",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 161265,
        "account_number": "0690000036",
        "bank_code": "044",
        "full_name": "Flutterwave Developers",
        "created_at": "2021-01-13T09:23:04.000Z",
        "currency": "USD",
        "debit_currency": "USD",
        "amount": 65,
        "fee": 40.325,
        "status": "NEW",
        "reference": "khlm-dom-5245",
        "meta": [
            {
                "FirstName": "Flutterwave",
                "LastName": "Developers",
                "EmailAddress": "developers@flutterwavego.com",
                "beneficiary_country": "NG",
                "MobileNumber": "+2348000000000",
                "Sender": "Iphie",
                "account_number": "0690000036",
                "routing_number": "044",
                "MerchantName": "Flutterwave"
            }
        ],
        "narration": "Test Payout",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "ACCESS BANK NIGERIA"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 221083,
        "account_number": "FOREIGN-ACCOUNT",
        "bank_code": "FOREIGN-BANK",
        "full_name": "John Twain",
        "created_at": "2023-11-08T15:48:08.000Z",
        "currency": "EUR",
        "amount": 500,
        "fee": 45,
        "status": "NEW",
        "reference": "a68e06b331590d75",
        "meta": [
            {
                "RoutingNumber": "BECFDE7HKKX",
                "SwiftCode": "BECFDE7HKKX",
                "BankName": "LLOYDS BANK",
                "BeneficiaryName": "John Twain",
                "BeneficiaryCountry": "DE",
                "PostalCode": "80489",
                "StreetNumber": "31",
                "StreetName": "Handelsbank Elsenheimer Str.",
                "City": "München",
                "MerchantName": "Glory Amuah",
                "SenderCountry": "NG",
                "SenderAddress": "Lagos",
                "SenderMobileNumber": "+2348140244958",
                "AccountNumber": "FOREIGN-ACCOUNT",
                "Sender": "Glory Amuah",
                "Address": null,
                "MobileNumber": "23480000000000"
            }
        ],
        "narration": "Test EU Int'l bank transfers",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 221084,
        "account_number": "FOREIGN-ACCOUNT",
        "bank_code": "FOREIGN-BANK",
        "full_name": "John Twain",
        "created_at": "2023-11-08T15:50:44.000Z",
        "currency": "GBP",
        "amount": 500,
        "fee": 45,
        "status": "NEW",
        "reference": "31b2925a80c5bf2e",
        "meta": [
            {
                "RoutingNumber": "BECFDE7HKKX",
                "SwiftCode": "BECFDE7HKKX",
                "BankName": "LLOYDS BANK",
                "BeneficiaryName": "John Twain",
                "BeneficiaryCountry": "DE",
                "PostalCode": "80489",
                "StreetNumber": "31",
                "StreetName": "Handelsbank Elsenheimer Str.",
                "City": "München",
                "MerchantName": "Glory Amuah",
                "SenderCountry": "NG",
                "SenderAddress": "Lagos",
                "SenderMobileNumber": "+2348140244958",
                "AccountNumber": "FOREIGN-ACCOUNT",
                "Sender": "Glory Amuah",
                "Address": null,
                "MobileNumber": "23480000000000"
            }
        ],
        "narration": "Test GBP Int'l bank transfers",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 221064,
        "account_number": "0031625807099",
        "bank_code": "FNB",
        "full_name": "James Arthur",
        "created_at": "2023-11-08T14:01:31.000Z",
        "currency": "ZAR",
        "debit_currency": "ZAR",
        "amount": 500,
        "fee": 10,
        "status": "NEW",
        "reference": "e743ed584c954a91",
        "meta": [
            {
                "FirstName": "James",
                "LastName": "Arthur",
                "EmailAddress": "test@test.com",
                "MobileNumber": "+23457558595",
                "Address": "Lavington Nairobi",
                "MerchantName": "Glory Amuah",
                "SenderCountry": "NG",
                "SenderAddress": "Lagos",
                "SenderMobileNumber": "+2348140244958",
                "AccountNumber": "0031625807099",
                "RoutingNumber": "FNB",
                "Sender": "Glory Amuah"
            }
        ],
        "narration": "Withdraw Fiat",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "First National Bank"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 127831,
        "account_number": "0031625807099",
        "bank_code": "GH280100",
        "full_name": "Flutterwave Developers",
        "created_at": "2020-06-25T11:24:01.000Z",
        "currency": "GHS",
        "amount": 50,
        "fee": 20,
        "status": "NEW",
        "reference": "new-GHS-test-transfer2",
        "meta": null,
        "narration": "Test GHS bank transfers",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "ACCESS BANK GH LTD"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 222402,
        "account_number": "386745674657",
        "bank_code": "SL009000",
        "full_name": "test account",
        "created_at": "2024-02-06T16:28:47.000Z",
        "currency": "SLL",
        "debit_currency": "USD",
        "amount": 1000,
        "fee": 45,
        "status": "NEW",
        "reference": "8be86bbdd1e06bf1",
        "meta": null,
        "narration": "From Glory Amuah",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 222400,
        "account_number": "0690000040",
        "bank_code": "97964560",
        "full_name": "Dora Explorer",
        "created_at": "2024-02-06T16:25:27.000Z",
        "currency": "MWK",
        "debit_currency": "NGN",
        "amount": 100000,
        "fee": 2000,
        "status": "NEW",
        "reference": "3d79854fdc856c7c",
        "meta": null,
        "narration": "ecobank mw test",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "First Discount House Limited"
    }
}
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 222395,
        "account_number": "2217857532",
        "bank_code": "TD60005",
        "full_name": "Taju Afobaje",
        "created_at": "2024-02-06T15:08:07.000Z",
        "currency": "XAF",
        "debit_currency": "XAF",
        "amount": 100,
        "fee": 45,
        "status": "NEW",
        "reference": "3b1a1859b8cee27f",
        "meta": null,
        "narration": "Bank Transfer to Chad",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}
{}

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.

Loading...