International (USD, EUR, & GBP)
Transfer funds internationally to USA, Europe, and UK Bank accounts.
Send USD, GBP, and EUR directly to international bank accounts. This guide walks you through the steps required to initiate and verify a transfer.
Prerequisites
- Complete KYC and ensure your account is approved for transactions.
- Whitelist your server IP addresses. See this guide for more information.
- Enable Transfers via API. See this guide for more information.
- Ensure you have sufficient funds in the transfer currency wallet. For cross-currency transfers, the transfer amount is debited from the
debit_currencywallet, while the transfer fee is debited from the transfer currency wallet. See the supported currencies and transfer fees page for more information.
Payout Flow
Follow these steps to send money to an International bank account.
- Collect the beneficiary details
Gather the beneficiary's name, bank, account number, and other required transfer details.
The required parameters vary by transfer currency. See the table below.
| Parameter | Description | Format | USD | GBP | EUR |
|---|---|---|---|---|---|
account_number | The beneficiary's account number. | String | Required | Required | Required |
beneficiary_name | The beneficiary's full name. | String | Required | Required | Required |
amount | The amount to send. | Integer | Required | Required | Required |
currency | The transfer currency. | String | Required | Required | Required |
debit_currency | The wallet currency to debit for the transfer. | String | Optional | Optional | Optional |
narration | A description for the transfer. | String | Optional | Optional | Optional |
reference | Unique reference to identify the transfer. | String | Optional | Optional | Optional |
meta[0].routing_number | The bank's routing number. | String | Required | Required | Required |
meta[0].swift_code | The bank's SWIFT code. | String | Required | Optional | Required |
meta[0].bank_name | The beneficiary’s bank name. | String | Required | Required | Required |
meta[0].account_type | The beneficiary's account type. For USD, pass checking or depository. For GBP, pass personal or corporate. | String | Required | Required | *** |
meta[0].email | The beneficiary’s email address. | String | Optional | Optional | Optional |
meta[0].mobile_number | The beneficiary's mobile number. | Optional | Optional | Optional | |
meta[0].beneficiary_address | The beneficiary's address. | Required | Optional | Optional | |
meta[0].sender_address | The sender's address. | Optional | Optional | Optional | |
meta[0].sender_mobile_number | The sender's mobile number. | Optional | Optional | Optional | |
meta[0].postal_code | The beneficiary's postal code. | Required | Optional | Required | |
meta[0].street_number | The beneficiary's street number. | Required | Optional | Required | |
meta[0].street_name | The beneficiary's street name. | Required | Optional | Required | |
meta[0].city | The beneficiary's city. | Optional | Optional | Required | |
meta[0].first_name | The beneficiary's first name. Required when account_type is personal for GBP transfers. If passed, must match the first name value provided for the beneficiary_name. | Optional | Conditional | Optional | |
meta[0].last_name | The beneficiary's last name. Required when account_type is personal for GBP transfers. If passed, must match the last name value provided for the beneficiary_name. | String | Optional | Conditional | Optional |
meta[0].beneficiary_merchant_name | The beneficiary's business name. Required when account_type is corporate for GBP transfers. | String | *** | Conditional | *** |
- Initiate the transfer
Send aPOSTrequest to the transfer endpoint with the beneficiary and transfer details.
curl --request POST \
--url https://api.flutterwave.com/v3/transfers \
--header 'Authorization: Bearer {{YOUR_SECRET_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"amount": 500,
"account_number": "210868791872",
"reference":"f039_PMCKDU_1",
"narration": "Sample USD Transfer",
"currency": "USD",
"debit_currency": "NGN",
"beneficiary_name": "Mark Cuban",
"meta": [
{
"routing_number": "101019644",
"swift_code": "IRVTUS3N",
"bank_name": "BANK OF AMERICA, N.A., SAN FRANCISCO, CA",
"account_type": "checking",
"postal_code": "EC2A",
"email": "[email protected]",
"mobile_number": "11733871880",
"beneficiary_address": "San Francisco, 4 Newton",
"sender_address": "No 8 Providence Street",
"sender_mobile_number": "2349161568874",
"street_number": "31",
"street_name": "Handelsbank Elsenheimer Str."
}
]
}'
curl --request POST \
--url https://api.flutterwave.com/v3/transfers \
--header 'Authorization: Bearer {{YOUR_SECRET_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"amount": 1,
"account_number": "82094660",
"narration": "Sample GBP",
"currency": "GBP",
"reference":"hfh_PMCKDU_1",
"debit_currency": "USD",
"beneficiary_name": "OLUWAFEMI ADEGBESAN",
"meta": [
{
"routing_number": "308463",
"swift_code": "308463",
"bank_name": "LLOYDS BANK",
"account_type": "personal",
"email": "[email protected]",
"mobile_number": "11733871880",
"beneficiary_address": "San Francisco, 4 Newton",
"sender_address": "No 8 Providence Street",
"sender_mobile_number": "2349161568874",
"postal_code": "80489",
"street_number": "31",
"street_name": "Handelsbank Elsenheimer Str.",
"city": "London"
}
]
}'
curl --request POST \
--url https://api.flutterwave.com/v3/transfers \
--header 'Authorization: Bearer {{YOUR_SECRET_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"amount": 500,
"account_number": "IE091983888373BGH",
"narration": "Sample EUR Transfer",
"currency": "EUR",
"reference":"hlh_PMCKDU_1",
"debit_currency": "USD",
"beneficiary_name": "John Twain",
"meta": [
{
"routing_number": "BECFDE7HKKX",
"swift_code": "BECFDE7HKKX",
"bank_name": "LLOYDS BANK",
"postal_code": "80489",
"street_number": "31",
"street_name": "Handelsbank Elsenheimer Str.",
"city": "München",
"email": "[email protected]"
}
]
}
{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 2243822,
"account_number": "FOREIGN-ACCOUNT",
"bank_code": "FOREIGN-BANK",
"full_name": "Mark Cuban",
"created_at": "2026-09-29T20:13:56.000Z",
"currency": "USD",
"debit_currency": "GBP",
"amount": 500,
"fee": 2.5,
"status": "NEW",
"reference": "f039_PMCKDU_1",
"meta": [
{
"RoutingNumber": "101019644",
"SwiftCode": "IRVTUS3N",
"BankName": "BANK OF AMERICA, N.A., SAN FRANCISCO, CA",
"AccountType": "checking",
"PostalCode": "EC2A",
"EmailAddress": " [email protected]",
"MobileNumber": "11733871880",
"BeneficiaryAddress": "San Francisco, 4 Newton",
"SenderAddress": "No 8 Providence Street",
"SenderMobileNumber": "2349161568874",
"StreetNumber": "31",
"StreetName": "Handelsbank Elsenheimer Str.",
"City": "LA",
"MerchantName": "Dotuns Fashion Limited",
"SenderCountry": "ZA",
"AccountNumber": "FOREIGN-ACCOUNT",
"Sender": "Dotuns Fashion Limited",
"Address": "San Francisco, 4 Newton"
}
],
"narration": "Sample USD Transfer",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "FA-BANK"
}
}
{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 117643993,
"account_number": "FOREIGN-ACCOUNT",
"bank_code": "FOREIGN-BANK",
"full_name": "OLUWAFEMI ADEGBESAN",
"created_at": "2026-09-29T20:12:33.000Z",
"currency": "GBP",
"debit_currency": "USD",
"amount": 1,
"fee": 35,
"status": "NEW",
"reference": "hfh_PMCKDU_1",
"meta": [
{
"RoutingNumber": "308463",
"SwiftCode": "308463",
"BankName": "LLOYDS BANK",
"AccountType": "personal",
"EmailAddress": "[email protected]",
"MobileNumber": "11733871880",
"BeneficiaryAddress": "San Francisco, 4 Newton",
"SenderAddress": "No 8 Providence Street",
"SenderMobileNumber": "2349161568874",
"PostalCode": "80489",
"StreetNumber": "31",
"StreetName": "Handelsbank Elsenheimer Str.",
"City": "london",
"MerchantName": "Adedotun Obatomi",
"SenderCountry": "NG",
"AccountNumber": "FOREIGN-ACCOUNT",
"Sender": "Adedotun Obatomi",
"Address": "San Francisco, 4 Newton"
}
],
"narration": "Sample GBP ",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "LLOYDS BANK"
}
}
{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 2243820,
"account_number": "FOREIGN-ACCOUNT",
"bank_code": "FOREIGN-BANK",
"full_name": "John Twain",
"created_at": "2026-09-29T20:10:54.000Z",
"currency": "EUR",
"debit_currency": "USD",
"amount": 500,
"fee": 2.5,
"status": "NEW",
"reference": "hlh_PMCKDU_1",
"meta": [
{
"SwiftCode": "BECFDE7HKKX",
"BankName": "LLOYDS BANK",
"PostalCode": "80489",
"StreetNumber": "31",
"StreetName": "Handelsbank Elsenheimer Str.",
"City": "München",
"EmailAddress": "[email protected]",
"MerchantName": "Dotuns Fashion Limited",
"SenderCountry": "ZA",
"AccountNumber": "FOREIGN-ACCOUNT",
"RoutingNumber": "FOREIGN-BANK",
"Sender": "Dotuns Fashion Limited",
"Address": null,
"MobileNumber": "23480000000000",
"SenderAddress": null,
"SenderMobileNumber": "07054748747"
}
],
"narration": "Sample EUR Transfer",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "FA-BANK"
}
}
- Verify the transfer status
There are two ways to verify the transfer status:
- Call the transfer status endpoint using the transfer ID (
data.id) returned in the transfer response. - Listen for webhooks. Configure your webhook URL on the Flutterwave Dashboard to receive real-time transfer updates. See the webhooks guide for more information.
{
"event": "transfer.completed",
"event.type": "Transfer",
"data": {
"id": 2243822,
"account_number": "FOREIGN-ACCOUNT",
"bank_name": "FA-BANK",
"bank_code": "FOREIGN-BANK",
"fullname": "Mark Cuban",
"created_at": "2026-09-29T20:13:56.000Z",
"currency": "USD",
"debit_currency": "GBP",
"amount": 500,
"fee": 2.5,
"status": "SUCCESSFUL",
"reference": "f039_PMCKDU_1",
"meta": [
{
"RoutingNumber": "101019644",
"SwiftCode": "IRVTUS3N",
"BankName": "BANK OF AMERICA, N.A., SAN FRANCISCO, CA",
"AccountType": "checking",
"PostalCode": "EC2A",
"EmailAddress": " [email protected]",
"MobileNumber": "11733871880",
"BeneficiaryAddress": "San Francisco, 4 Newton",
"SenderAddress": "No 8 Providence Street",
"SenderMobileNumber": "2349161568874",
"StreetNumber": "31",
"StreetName": "Handelsbank Elsenheimer Str.",
"City": "LA",
"MerchantName": "Dotuns Fashion Limited",
"SenderCountry": "ZA",
"AccountNumber": "FOREIGN-ACCOUNT",
"Sender": "Dotuns Fashion Limited",
"Address": "San Francisco, 4 Newton"
}
],
"narration": "Sample USD Transfer",
"approver": null,
"complete_message": "Successful",
"requires_approval": 0,
"is_approved": 1
}
}
{
"event": "transfer.completed",
"event.type": "Transfer",
"data": {
"id": 2243821,
"account_number": "FOREIGN-ACCOUNT",
"bank_name": "FA-BANK",
"bank_code": "FOREIGN-BANK",
"fullname": "OLUWAFEMI ADEGBESAN",
"created_at": "2026-09-29T20:13:23.000Z",
"currency": "GBP",
"debit_currency": "USD",
"amount": 1,
"fee": 0.005,
"status": "SUCCESSFUL",
"reference": "hfh_PMCKDU_1",
"meta": [
{
"RoutingNumber": "308463",
"SwiftCode": "308463",
"BankName": "LLOYDS BANK",
"AccountType": "personal",
"EmailAddress": "[email protected]",
"BeneficiaryAddress": "San Francisco, 4 Newton",
"SenderAddress": "No 8 Providence Street",
"SenderMobileNumber": "2349161568874",
"PostalCode": "80489",
"StreetNumber": "31",
"StreetName": "Handelsbank Elsenheimer Str.",
"City": "london",
"Sender": "Dotuns Fashion Limited",
"MerchantName": "Dotuns Fashion Limited",
"SenderCity": "Lagos",
"BeneficiaryName": "OLUWAFEMI ADEGBESAN",
"BeneficiaryIdNumber": null,
"BeneficiaryCity": "london",
"AccountNumber": "82094660",
"SenderCountry": "ZA",
"BeneficiaryMobileNumber": "11733871880",
"Address": "San Francisco, 4 Newton",
"MobileNumber": "23480000000000"
}
],
"narration": "Sample GBP ",
"approver": null,
"complete_message": "Successful",
"requires_approval": 0,
"is_approved": 1
}
}
{
"event": "transfer.completed",
"event.type": "Transfer",
"data": {
"id": 2243820,
"account_number": "FOREIGN-ACCOUNT",
"bank_name": "FA-BANK",
"bank_code": "FOREIGN-BANK",
"fullname": "John Twain",
"created_at": "2026-09-29T20:10:54.000Z",
"currency": "EUR",
"debit_currency": "USD",
"amount": 500,
"fee": 2.5,
"status": "SUCCESSFUL",
"reference": "hlh_PMCKDU_1",
"meta": [
{
"SwiftCode": "BECFDE7HKKX",
"BankName": "LLOYDS BANK",
"PostalCode": "80489",
"StreetNumber": "31",
"StreetName": "Handelsbank Elsenheimer Str.",
"City": "München",
"EmailAddress": "[email protected]",
"MerchantName": "Dotuns Fashion Limited",
"SenderCountry": "ZA",
"AccountNumber": "FOREIGN-ACCOUNT",
"RoutingNumber": "FOREIGN-BANK",
"Sender": "Dotuns Fashion Limited",
"Address": null,
"MobileNumber": "23480000000000",
"SenderAddress": null,
"SenderMobileNumber": "07054748747"
}
],
"narration": "Sample EUR Transfer",
"approver": null,
"complete_message": "Successful",
"requires_approval": 0,
"is_approved": 1
}
}
Testing Transfers
Check the testing guide for mocking transfers in the test environment.
Updated 4 days ago
Did this page help you?
