Payout sub account

Hello, @Abraham_Olaobaju
I need some clarifications and answers in regards to payout subaccounts.

I have a mobile application that intends to create wallets for tutors and users. Users can pay with their wallet and tutors will receive the payment in their wallet. But then, the app has a commission it takes for any payment made by a user to a tutor. So, what is the best way to implement this? Currently I was thinking of doing a bulk transfer (to the tutor and the f4b account for the commision) but I am not sure if this makes sense.

Also, is there a way to top up payout subaccount for testing purposes? I don’t think I see that info anywhere on the documentation.

Lastly, Is it possible to see all the payout subaccounts I created on my dashboard? I can’t find where they reside

@Abraham_Olaobaju1 @Adekunle I really need your help/response on this, pls.

Hi @Victor-mario_Umeh

Thank you for reaching out.

Based on the information you provided above, you would need to create payout subaccounts for both users and tutors which will serve as wallets for their funds. Transfers between payout subaccounts is very possible (this settles how users can send money from their wallets to a tutors wallet). However, in order for you to charge commissions on these transfers, you will also need to make a transfer from the user’s wallet (payout subaccount) to your F4B main account balance which is not possible without compliance approval (You can send a mail to to request for this).

Furthermore, you can top-up your payout subaccount (Test) via a transfer from your F4B main account balance. To do so, you simply need to initiate a transfer, but specify flutterwave as the account_bank , and pass the barter_id of a particular payout subaccount as the account_number . When creating the payout subaccount, you can choose to save the barter_id in your database for reference, or fetch the particular payout subaccount via the APIs. Lastly, all payout subaccounts can only be fetched via an API call (you can learn more here).


Thanks for your response @Adekunle
So just to confirm, the process for sub-accounts top-up in Test is the same for Live? The user initiates a transaction which goes into the F4B account and then a transfer is made from the F4B account to the user wallet (payout sub account)?

Hi @Victor-mario_Umeh

You can top-up a payout subaccount on Live either by adopting the method highlighted above or by making a transfer into the virtual account linked to the payout subaccount (By default, an NGN virtual account is automatically created and linked to your wallet. check here for more information)

Thanks @Adekunle

I was trying to do a bulk transfer (from a user payout subaccount to a tutor payout subaccount and to the F4B account for commision). When I try to get that bulk transfer to check if those transfer are successful, it returns an empty list.

So do you think I should do bulk transfer (or if it works for this use case) or do them individually?

Hi @Victor-mario_Umeh

You will need compliance approval to make a transfer from the user’s wallet (payout subaccount) to your F4B main account balance. You can send a mail to to request for this.

Yes, I know that.

But will the above setup work if I get approval? I mean using a bulk transfer and hoping I can get information about the statuses of the transfers

Hi @Victor-mario_Umeh

I would advise you perform the transfer to the payout subaccount and the F4B balance individually. This way it is easier to poll for their different statuses.

Thanks @Adekunle
This was helpful. Or better still, transfer the money to the F4B account and transfer it from there to the payout subaccount.

@Adekunle I was using the flutterwave-react-native package to make a card payment from a mobile app. It works alright but my in my webhook payload, I don’t get the meta object I passed.

Do you know why this is?

Hi @Victor-mario_Umeh

Thank you for sharing this experience

Kindly open a new thread for this issue with the request and response payload as additional information.
PS: Be sure to hide any sensitive information when sharing the payload.

Please where will I get account reference?

Hi @BTech_TV

Thanks for reaching out,

The “account_reference” can be found the response payload from the Create Payout Subaccount API. The “account_reference” field serves as an identifier when fetching for the specific wallet via API call. It can also be passed as the “debit_subaccount” field when withdrawing from a PSA via the Create Transfer API endpoint.