Create a transfer
This will show you how to initiate a transfer
Last updated 13 September 2026
https://api.flutterwave.com/v3/transfers
authorization string required
Pass your secret key as a bearer token in the request header to authorize this call
FILL IN ALL REQUIRED FIELDS
account_bank string required
The recipient's bank code. You can query all available banks and their corresponding codes from the get banks endpoint.
account_number string required
This is the recipient account number.
amount int 32 required
This is the amount to transfer to the recipient.
currency string required
The currency of the transfer. Learn more about supported currencies here.
debit_subaccount string
The id of a payout subaccount wallet. This is required if you choose to use the PSA as the source of funds for your transfer.
beneficiary int 32
The beneficiary's id. This allows you to make a transfer to an existing beneficiary.
beneficiary_name string
The full name of a transfer beneficiary.
reference string
This is a merchant's unique reference for the transfer, it can be used to query for the status of the transfer.
debit_currency string
Pass this to set a different currency balance as the source of transfer funds. if unspecified, your default balance is debited for the transfer.
destination_branch_code string
A code used to identify different bank branches. This is required for banks that have branches — varies by bank, not country. Check has_branches on the bank object from GET /v3/banks/{country}, or call GET /v3/banks/{id}/branches. Bank has branches -> required (omitting causes disbursement to fail after queueing). Bank has no branches -> omit. Requirements are provider-determined and can change; don't hardcode.
callback_url string
The URL for transfer response callbacks.
narration string
This is the narration for the transfer e.g. payments for x services provided.
meta array of objects
Add custom payment details to your transfer.
FILL IN ALL REQUIRED FIELDS
sender string required
The sender's full name. This is required for cash pickup, DOM bank account and M-Pesa transfers.
sender_address string
The sender's address. It is required for cash pick up and DOM bank account transfers.
sender_city string
The sender's city. It is required for cash pick up and DOM bank account transfers.
sender_country string required
The sender's resident country. This is required for cash pickup, DOM bank account and M-Pesa transfers.
sender_id_number string
This is the number found in the sender's identification document. It is required for cash pick up and DOM bank account transfers.
sender_id_type string
The sender's ID document type. It is required for cash pick up and DOM bank account transfers. Expected values include: PASSPORT, DRIVING LICENSE, ID CARD, VOTER CARD.
sender_id_expiry string
The expiry date of the sender's identification document. This is required for cash pick up and FCMB bank account transfers.
sender_mobile_number string
The sender's mobile number. This is required for cash pick up and FCMB bank account transfers.
sender_email_address string
The sender's email address. It is required for cash pick up and FCMB bank account transfers.
sender_occupation string
This is the occupation of the sender(transfer originator). It is required for cash pick up and FCMB bank account transfers.
sender_beneficiary_relationship string
This is the occupation of the sender(transfer originator). It is required for cash pick up and FCMB bank account transfers.
first_name string required
The beneficiary's first name. This is required for cash pickup, DOM bank account, ZAR and M-Pesa transfers.
last_name string required
The beneficiary's last name. This is required for cash pickup, DOM bank account, ZAR and M-Pesa transfers.
email string required
The beneficiary's email address. This is required for cash pick up, FCMB bank account and ZAR bank account transfers.
mobile_number string required
The beneficiary's mobile number. This is required for cash pickup, DOM bank account, ZAR and M-Pesa transfers.
beneficiary_mobile_number string required
The beneficiary's mobile number. This is required for cash pickup, DOM bank account, ZAR and M-Pesa transfers.
recipient_address string required
The address of the transfer recipient and it is required for cash pick up, FCMB bank account and ZAR bank account transfers.
beneficiary_state string required
The beneficiary's state. It is required for cash pick up and FCMB bank account transfers.
beneficiary_country string required
The beneficiary's resident country. It is required for cash pick up and FCMB bank account transfers.
beneficiary_occupation string required
The beneficiary's occupation. It is required for cash pick up and FCMB bank account transfers.
transfer_purpose string
This is the purpose of the transfer- it is used for audit and is not to be confused with the description field. This field is required for cash pick up and FCMB bank account transfers.
routing_number string
The routing code for the transfer. Pass the same value as account_bank.
merchant_name string
The name of the merchant.
account_number string
The recipient's account number.
skip_beneficiary_creation string
if you don't want the automatic beneficiary creation step you can skip that by setting this as 1
FILL IN ALL REQUIRED FIELDS
status string
message string
data object
FILL IN ALL REQUIRED FIELDS
id integer
account_number string
bank_code string
full_name string
created_at string
currency string
debit_currency string
amount integer
fee number
status string
reference string
meta string
narration string
approver string
complete_message string
requires_approval integer
is_approved integer
bank_name string
Shell