AI agents: this site is available as Markdown at /llms.txt. Each page has a Markdown version at its URL with a .md suffix, and the full API is described in /api/v3/openapi.json.

Bank Transfers

Generate dynamic virtual accounts for instant payments via bank transfers.
We recommend you read the method overview before you proceed.

Last updated 13 September 2026

Generate dynamic virtual accounts for instant payments via bank transfers. We recommend you read the method overview before you proceed.

post

https://api.flutterwave.com/v3/charges?type=bank_transfer

authorization string required

Pass your secret key as a bearer token in the request header to authorize this call

FILL IN ALL REQUIRED FIELDS

amount int 32 required
This is the amount to be charged.

email string required
This is the email address of the customer

currency string required
This is the specified currency to charge in. Allowed values: NGN, GHS.

tx_ref string required
This is a unique reference, unique to the particular transaction being carried out.

fullname string
This is the customers full name. It should include first and last name of the customer.

phone_number string
This is the phone number linked to the customer's mobile money account

client_ip string
IP - Internet Protocol. This represents the current IP address of the customer carrying out the transaction

device_fingerprint string
This is the fingerprint for the device being used. It can be generated using a library on whatever platform is being used

meta object
This is used to include additional payment information

FILL IN ALL REQUIRED FIELDS

flightID string
This could be the extra information you want to pass

sideNote string
This could be any message you'd like to associate with this call

subaccounts array of objects
This is an array of objects containing the subaccount IDs to split the payment into.

FILL IN ALL REQUIRED FIELDS

id string
This is the unique Id returned in the call to create a subaccount as data.subaccount_id

narration string
This allows the developer set the name that is shown to the customer when the account is resolved to a name. It also displays in the debit narration.

is_permanent boolean
This allows you to create a static account number i.e. the account number doesn't change and customers can pay into the account number multiple times.

bank_code string
The bank code of the generated virtual account for the PWBT payment.

FILL IN ALL REQUIRED FIELDS

status string

message string

meta object

FILL IN ALL REQUIRED FIELDS

authorization object

FILL IN ALL REQUIRED FIELDS

transfer_reference string

transfer_account string

transfer_bank string

account_expiration string

transfer_note string

transfer_amount integer

mode string

Shell

1
1


FL.AI

Answers from the Flutterwave docs

Hi, I’m FL.AI

Ask anything about Flutterwave’s APIs, guides and coverage.

FL.AI can make mistakes. Check important details in the docs.

Get API Keys