Bulk payout

Allows a merchant to initiate multiple bank payouts by uploading a CSV file containing recipient account details and payout amounts.

The endpoint supports up to 1,000 bank accounts per batch.

Before uploading the CSV file, ensure that the merchant's wallet has sufficient funds to cover the payout batch. An upload fails when there is insufficient balance.

Endpoint

POST /api/v1/payout/wallet-bank/upload

Authorization

Bearer Token

A valid Bearer Token is required to authenticate the request.

Headers

HeaderDescriptionRequired
AuthorizationBearer token used to authenticate the requestYes
Content-TypeMust be multipart/form-data because a CSV file is uploadedYes
x-merchant-refUnique reference identifying the merchantYes

Form Data

FieldDescriptionRequired
csv_fileCSV file containing the bank payout recordsYes
batch_idUnique identifier for the payout batchYes
currencyCurrency of the payout batch, for example NGNYes
user_refReference of the user initiating the payout batchYes

CSV Format

The uploaded CSV file must contain three columns in the following order: see sample template


Account numberBank codeAmount
80625511221000041000

Each subsequent row represents one bank payout.

Upload Limits

  • Maximum of 1,000 bank accounts per batch.
  • The first CSV row is skipped.
  • The CSV must contain exactly three columns in the required order.
  • The merchant wallet must have sufficient balance before uploading the batch.

Request

curl --location -g '{{base_url}}/api/v1/payout/wallet-bank/upload' \
--header 'Authorization: Bearer <token>' \
--header 'x-merchant-ref: {{vault:x-merchant-ref}}' \
--form 'csv_file=@"/path/to/payouts.csv"' \
--form 'batch_id="BATCH_TEST_001"' \
--form 'currency="NGN"' \
--form 'user_ref="USR_TEST_005"'

Response

A successful upload returns a LedgerBlock batch reference.

The batch reference can be used to identify and track the uploaded payout batch.

Insufficient Balance

The merchant's wallet must be sufficiently funded before uploading the CSV.

If the merchant does not have enough balance to process the batch, the upload fails with an INSUFFICIENT BALANCE condition.

Important: Fund the merchant wallet before submitting a bulk payout batch.

How It Works

  1. Prepare the CSV using the required three-column format.
  2. Add the bank account number, bank code, and payout amount for each recipient.
  3. Ensure the first row contains headers.
  4. Ensure the batch contains no more than 1,000 bank accounts.
  5. Ensure the merchant wallet has sufficient funds.
  6. Submit the CSV together with the batch_id, currency, and user_ref.
  7. LedgerBlock validates the upload.
  8. If the upload is successful, LedgerBlock returns a batch reference for the payout batch.

Use Cases

Bulk Payout can be used to:

  • Pay multiple bank accounts in a single batch.
  • Process payroll or supplier payments.
  • Process large sets of customer payouts.
  • Upload up to 1,000 bank accounts per batch.
  • Track a group of payouts using a single batch reference.

Note: All user references, batch IDs, account numbers, bank codes, and other example values above are dummy data for documentation purposes. Replace them with your actual values when making API requests.


Did this page help you?