Batch Payout Endpoints

Endpoints to initiate payouts to at least two recipients.

Base URLS

The test base url is https://isw-payout-service.k8.isw.la/api/v1/payouts

The live base url is https://payouts.interswitchng.com/api/v1/payouts


SEND BATCH PAYOUTS

Initiates a batch payout to multiple recipients in a single request. Transactions are validated in real time and validation errors returned immediately. The batch transaction is processed asynchronously.. A reference would be returned once the request passed the original validations, it would be used to check original validations, it would be used to check the status of the batch request

Endpoint POST <base-url>/batch

SAMPLE REQUEST

{
  "payoutChannel": "BANK_TRANSFER",
  "narration": "Salary payment March 2026",
  "currencyCode": "NGN",
  "amount": 500000.00,
  "walletDetails": {
    "walletId": "WALLET-123456",
		""
  },
  "recipients": [
    {
      "transactionReference": "TXN-001",
      "recipientName": "John Doe",
      "recipientAccount": "0123456789",
      "recipientBank": "058",
      "amount": 250000.00,
      "currencyCode": "NGN"
    },
    {
      "transactionReference": "TXN-002",
      "recipientName": "Jane Smith",
      "recipientAccount": "9876543210",
      "recipientBank": "011",
      "amount": 250000.00,
      "currencyCode": "NGN"
    }
  ]
}

REQUEST FIELDS


FieldTypeRequiredDescription
payoutChannelstringyesPayment channel: BANK_TRANSFER
currencyCodestringyesCurrency code: NGN
narrationstringyesDescription for all transactions
amountdecimalyesTotal amount (must equal sum of all recipient amounts)otal amount (must equal sum of all recipient amounts)
walletDetailsobjectyessource wallet information
walletDetails.walletIdstringyesMerchant wallet ID
walletDetails.pinstringyesWallet PIN

RECIPIENT FIELDS


FieldTypeRequiredDescription
transactionReferencestringyesUnique reference per recipient
amountstringyesAmount to transfer
currencyCodestringyesCurrency code NGN
recipientAccountstringyesRecipients bank account number
recipientBankstringyesRecipient's Bank code

RESPONSE

{
  "status": "PROCESSING",
  "reference": "550e8400-e29b-41d4-a716-446655440000"
}

RESPONSE FIELDS

FieldTypeDescription
statusstringInitial status: PROCESSING
referencestringBatch reference (UUID) for tracking Batch reference (UUID) for tracking

GET BATCH PAYOUT SUMMARY

Retrieves a paginated summary of batch payouts for a merchant. Use this to get an overview of all batches and their aggregate status.

Endpoint GET /api/v1/payouts/batch-summary


QUERY PARAMETERS

ParameterTypeRequiredDescription
clientIdstringyesMerchant/client identifier
batchReferencestringyesFilter by specific batch reference
statusstringnoFilter by batch status
totalAmountdecimalnoFilter by total amount
totalRecipientsintegernoFilter by number of recipients
startDatestringnoStart date filter (DD/MM/YYYY)
endDatestringnoStart date filter (DD/MM/YYYY
pageNumintegernoPage number (default: 1)
pageSizeintegernoPage size (default: 10)

RESPONSE

{
  "content": [
    {
      "batchReference": "550e8400-e29b-41d4-a716-446655440000",
      "clientId": "MERCHANT001",
      "narration": "Salary payment March 2026",
      "totalAmount": 500000.00,
      "totalCharges": 1000.00,
      "totalRecipients": 2,
      "status": "COMPLETED",
      "createdOn": "2026-03-15T10:30:00.000+00:00"
    }
  ],
  "count": 1,
  "pageNum": 1,
  "pageSize": 10
}

GET BATCH DETAILS

Retrieves detailed transaction information for a specific batch. Use this to view individual transaction statuses within a batch.Retrieves detailed transaction information for a specific batch. Use this to view individual transaction statuses within a batch.

Endpoint GET /api/v1/payouts/batch-details

QUERY PARAMETERS

ParameterTypeRequiredDescription
clientIdstringyesMerchant/client identifier
batchReferencestringyesFilter by specific batch reference
statusstringnoFilter by transaction status (PROCESSING, SUCCESSFUL, FAILED)
amountdecimalnoFilter by transaction amount
recipientintegernoFilter by recipient name or account
startDatestringnoStart date filter (DD/MM/YYYY)
endDatestringnoStart date filter (DD/MM/YYYY
pageNumintegernoPage number (default: 1)
pageSizeintegernoPage size (default: 10)

RESPONSE

{
  "content": [
    {
      "transactionReference": "TXN-001",
      "beneficiary": "John Doe",
      "accountNumber": "0123456789",
      "amount": 250000.00,
      "fee": 500.00,
      "narration": "Salary payment March 2026",
      "status": "SUCCESSFUL",
      "responseCode": "00",
      "responseDescription": "Approved",
      "reversed": false,
      "walletDebit": true,
      "date": "2026-03-15T10:30:15.000+00:00"
    },
    {
      "transactionReference": "TXN-002",
      "beneficiary": "Jane Smith",
      "accountNumber": "9876543210",
      "amount": 250000.00,
      "fee": 500.00,
      "narration": "Salary payment March 2026",
      "status": "SUCCESSFUL",
      "responseCode": "00",
      "responseDescription": "Approved",
      "reversed": false,
      "walletDebit": true,
      "date": "2026-03-15T10:30:18.000+00:00"
    }
  ],
  "count": 2,
  "pageNum": 1,
  "pageSize": 10
}