Batch bank transfer
POST /transfer/bank/batch
Sends multiple bank transfers in a single request, debiting your merchant settlement wallet for each transaction. Transfers are processed sequentially — each transfer is attempted individually and may succeed, fail (with automatic reversal), or enter a pending state for background retry.
The response includes separate accepted and rejected arrays so you can identify which transfers succeeded and which failed without having to query each transaction individually.
Request
string
required
Bearer token. Requires
MANAGE_TRANSFER permission.number
required
Transfer amount in kobo for this item. Must be greater than 0.
string
required
Bank sort code for the beneficiary. Obtain valid codes from
GET /transfer/banks.string
required
Beneficiary account number.
string
required
Beneficiary account name as resolved by
GET /transfer/account/details.string
Transfer narration visible to the beneficiary.
Response
boolean
true on success.string
"Transaction has been successfully completed."object
Examples
Response
CSV bulk customer transfer
POST /wallet/bulk-csv-customer-transfer
Sends bank transfers to multiple recipients by uploading a CSV file. Each row in the CSV becomes a separate bank transfer debited from your merchant wallet. Processing is asynchronous.
This endpoint uses multipart form upload. The file field name must be
list. Processing may take several minutes depending on the size of the file.Request
string
required
Bearer token.
string
required
multipart/form-datafile
required
CSV file containing transfer instructions. One transfer per row.
Examples
CSV bulk wallet transfer
POST /wallet/bulk-csv-wallet-transfer
Similar to CSV bulk customer transfer, but transfers funds between customer wallets rather than to external bank accounts. Each row specifies source and destination wallet account numbers.
Request
string
required
Bearer token.
string
required
multipart/form-datafile
required
CSV file containing wallet-to-wallet transfer instructions. The file field name must be
list.Examples
Batch status tracking
After submitting a batch transfer, monitor the status of individual transactions using thereference values returned in the accepted array. Use your webhook endpoint to receive real-time updates.
Webhook events fired after batch processing:
Transaction statuses:
Error responses
400 Insufficient Balance
400 Daily Limit
