Skip to main content

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.
Ensure you resolve each beneficiary account with GET /transfer/account/details before submitting. Transfers to unverified accounts may be rejected by the NIP network. Funds for rejected or reversed transfers are returned to your merchant wallet automatically.

Request

string
required
Bearer token. Requires MANAGE_TRANSFER permission.
The request body is a JSON array of transfer objects. At least one item is required.
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-data
file
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-data
file
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 the reference values returned in the accepted array. Use your webhook endpoint to receive real-time updates. Webhook events fired after batch processing: Transaction statuses:
Store the data.reference (batch reference) and all individual reference values from data.accepted immediately. You’ll need these to reconcile your records if webhook delivery is delayed or you need to query transaction history.

Error responses

400 Insufficient Balance
400 Daily Limit