PayoutsInitiate Bulk Payout

Initiate Bulk Payout

The Bulk Payout API allows you to integrate bulk bank payout functionality into your applications. It enables you to automatically send money to multiple bank accounts in a single request across supported Nigerian banks.

Endpoint

POST https://backendapi.sayswitchgroup.com/api/v1/bulk_bank_transfer

Sample cURL Request

curl -X POST https://backendapi.sayswitchgroup.com/api/v1/bulk_bank_transfer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_SECRET_KEY" \
  -d '{
    "currency": "NGN",
    "transfers": [
        {
            "amount": "200",
            "bank_code": "000013",
            "bank_name": "GUARANTY TRUST BANK",
            "account_number": "1234567890",
            "narration": "January Salary"
        },
        {
            "amount": "100",
            "bank_code": "000013",
            "bank_name": "GUARANTY TRUST BANK",
            "account_number": "1234567890",
            "narration": "February Salary"
        }
    ]
  }'

Request Parameters

ParameterTypeRequiredDescription
currencystringYesCurrency code (e.g., “NGN” for Nigerian Naira)
transfersarrayYesArray of transfer objects to be processed
amountstringYesAmount to transfer (in the smallest currency unit) - Inside transfers array
bank_codestringYesThe bank’s unique identifier code - Inside transfers array
bank_namestringYesThe name of the recipient’s bank - Inside transfers array
account_numberstringYesThe recipient’s bank account number - Inside transfers array
narrationstringYesDescription or purpose of the transfer - Inside transfers array

Sample Response

{
  "success": true,
  "message": "Transfer Queued Successfully",
  "total": 2,
  "failed": 0,
  "successful": 2,
  "data": [
    {
      "reference": "SSW_trf_6e8b2d2361b573",
      "currency": "NGN",
      "amount": "100",
      "fee": "15",
      "bank_code": "000013",
      "bank_name": "GUARANTY TRUST BANK",
      "account_number": "1234567890",
      "account_name": "John Doe",
      "narration": "January Salary",
      "requestIp": "102.89.76.213",
      "status": "pending",
      "updated_at": "2025-08-30T12:25:24.000000Z",
      "created_at": "2025-08-30T12:25:24.000000Z"
    },
    {
      "reference": "SSW_trf_z4jv377082a16b",
      "currency": "NGN",
      "amount": "100",
      "fee": "15",
      "bank_code": "000013",
      "bank_name": "GUARANTY TRUST BANK",
      "account_number": "1234567890",
      "account_name": "John Doe",
      "narration": "February Salary",
      "requestIp": "102.89.76.213",
      "status": "pending",
      "updated_at": "2025-08-30T12:25:25.000000Z",
      "created_at": "2025-08-30T12:25:25.000000Z"
    }
  ],
  "failed_list": [
    []
  ]
}

Response Explanation

KeyTypeDescription
successbooleanIndicates whether the bulk transfer request was successfully received (true or false)
messagestringGeneral message about the transaction result
totalnumberTotal number of transfers processed
failednumberNumber of transfers that failed
successfulnumberNumber of transfers that were successfully queued
dataarrayArray containing details of each successfully queued transfer
failed_listarrayArray containing details of any failed transfers
referencestringSystem-generated unique reference ID for each transfer - Inside data array
currencystringCurrency code for the transaction - Inside data array
amountstringTransfer amount - Inside data array
feestringProcessing fee charged for the transfer - Inside data array
bank_codestringThe bank’s identifier code - Inside data array
bank_namestringName of the recipient’s bank - Inside data array
account_numberstringRecipient’s bank account number - Inside data array
account_namestringRecipient’s account name (resolved from bank) - Inside data array
narrationstringTransfer description or purpose - Inside data array
requestIpstringIP address from which the request originated - Inside data array
statusstringCurrent status of the transfer (pending, completed, failed) - Inside data array
updated_atstringTimestamp when the record was last updated (ISO 8601 format) - Inside data array
created_atstringTimestamp when the transfer was initiated (ISO 8601 format) - Inside data array