Wallet-to-wallet transfers
You can transfer money directly from your available balance to other Flutterwave merchants. We call these wallet-to-wallet transfers.
Hey👋. We recommend checking out Transfers: Overview to understand the basics of transfers first. This guide assumes you've read that.
Making a wallet-to-wallet transfer
Wallet-to-wallet transfers work the same as regular bank account transfers. They make use of the create transfer endpoint, with the key difference being that account_bank
is always "flutterwave"
, while account_number
is the merchant's ID.
The merchant ID is displayed on the merchant dashboard, below the business name at the top left.
const details = {
account_bank: "flutterwave",
account_number: "99992069",
amount: 500,
currency: "NGN",
debit_currency: "NGN"
};
await flw.Transfer.initiate(details);
$details = [
"account_bank" => "flutterwave",
"account_number" => "99992069",
"amount" => 500,
"currency" => "NGN",
"debit_currency" => "NGN"
];
$response = $transferService->singleTransfer($details);
details = {
account_bank: "flutterwave",
account_number: "99992069",
amount: 500,
currency: "NGN",
debit_currency: "NGN"
}
response = transfer.initiate_transfer details
details = {
"account_bank": "flutterwave",
"account_number": "99992069",
"amount": 500,
"currency": "NGN",
"debit_currency": "NGN",
}
response = rave.Transfer.initate(details)
details := rave.SinglePaymentData {
AccountBank: "flutterwave",
AccountNumber: "99992069",
Amount: 500,
Currency: "NGN",
Debit_Currency: "NGN",
}
err, response := transfer.InitiateSingleTransfer(details)
curl --request POST 'https://api.flutterwave.com/v3/transfers' \
--header 'Authorization: Bearer YOUR_SECRET_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"account_bank": "flutterwave",
"account_number": "99992069",
"amount": 500,
"currency": "NGN",
"debit_currency": "NGN"
}'
Here's an example response:
{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 128286,
"account_number": 99992069,
"bank_code": "flutterwave",
"full_name": "FLUTTERWAVE V3 DOCS",
"created_at": "2020-06-29T21:35:15.000Z",
"currency": "NGN",
"debit_currency": "NGN",
"amount": 500,
"fee": 0,
"status": "NEW",
"reference": "wallet-transfer",
"meta": {
"wallet_email": "hip@cool.com",
"AccountId": 118468,
"merchant_id": "00118468"
},
"narration": "payment for x service provided",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "wallet"
}
}
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. Learn more about our webhooks here.
Intra-wallet transfers
Wallet-to-wallet transfer is an excellent way to fund your main balance from a different currency balance, and vice-versa. To make an intra-wallet transfer:
-
Set your merchant ID as the
account_number
. -
Specify the
currency
(destination_wallet) and thedebit_currency
(source_wallet).
Use your wallet history to track debits and corresponding credits across different balances for intra-wallet transfers.