Wallet-to-Wallet Transfers

Learn how to transfer money from one Flutterwave account to another.

📘

Getting Started

We recommend checking out the introductory section to understand the basics of making transfers first.

You can transfer money directly from your available balance to other Flutterwave merchants. We call these wallet-to-wallet transfers.

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.

ℹ️

Integration Tip

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 is 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": "[email protected]",
			"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

The 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 to account_number.
  • Specify the currency (destination_wallet) and the debit_currency (source_wallet).

🚧

Tracking Wallet Transfers

Use your wallet history to track debits and corresponding credits across different balances for intra-wallet transfers.