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 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.

Loading...