Skip to content

List withdrawals​

GET
/v2/payments/bulk-withdrawals/withdrawals

Requires DISBURSEMENTS_READ, granted by PAYMENTS_READ or DISBURSEMENTS_WRITE (bundles)

Returns withdrawals across all your batches, newest first, each with a summary of its batch.

Parameters​

Query Parameters

status

Only withdrawals with this status.

Type
string
Valid values
"PENDING""APPROVED""EXECUTING""SUBMITTED""PROCESSING""PAID""FAILED""SKIPPED"
Example"FAILED"
failureCode

Only failed withdrawals with this failure category.

Type
string
Valid values
"GENERIC""INSUFFICIENT_FUNDS""INVALID_DETAILS""NO_BANK_ACCOUNT""AMOUNT_TOO_SMALL""ACCOUNT_UNVERIFIED""SYSTEM_UNAVAILABLE""DECLINED""REVERSED""NO_PAYOUT_RESULT""INVALID_REFERENCE"
Example"INSUFFICIENT_FUNDS"
beneficiaryId

Only withdrawals to this beneficiary.

Type
string
Example"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
Format
"uuid"
limit

Page size, from 1 to 200; values outside that range are clamped.

Type
integer
Default
50
offset

Number of items to skip.

Type
integer
Default
0

Responses​

OK

application/json
JSON
{
"items": [
{
"id": "c4e8a2b6-3d5f-4a1c-9e7b-2f4d6a8c0e1b",
"amount": "12500.75",
"bank": "FNB",
"bankDisplayName": "FNB/RMB",
"accountType": "CHEQUE",
"accountHolder": "Thandi Nkosi",
"accountNumberMasked": "*******0327",
"accountNumber": "62845190327",
"branchCode": "250655",
"reference": "OCT SALARY",
"linkedBankAccountId": null,
"withdrawalId": "0f3b5d7e-9a1c-4e2f-8b4d-6c8e0a2b4d6f",
"status": "PAID",
"failureReason": null,
"failureReasonCode": null,
"createdAt": "2026-10-23T08:15:01.912Z",
"updatedAt": "2026-10-23T09:02:44.118Z",
"batch": {
"id": "5b9a3c1e-2f4d-4a7b-9c8e-1d2f3a4b5c6d",
"label": "October salaries",
"status": "COMPLETED",
"uploadedBy": "8d2f4e6a-1b3c-4d5e-8f9a-0b1c2d3e4f5a",
"uploadedByName": null,
"approvedBy": "8d2f4e6a-1b3c-4d5e-8f9a-0b1c2d3e4f5a",
"approvedByName": null
}
}
],
"total": 1,
"limit": 50,
"offset": 0,
"truncated": null
}

Samples​

Errors

HTTPErrorWhen
400BAD_REQUESTA query parameter or field is invalid.
403-16098PAYMENTS_USER_ACCESS_NOT_CONFIGUREDPayments haven't been set up for your business yet.
500INTERNAL_ERRORUnexpected error in the payments service.
502-16097EXCHANGE_API_ERRORThe payments service failed to process the request.
502EXCHANGE_API_ERRORThe payments service couldn't complete the request. Try again later.
503-16099PAYMENTS_BACKEND_PROXY_DISABLEDPayments endpoints are temporarily unavailable.

Plus the errors common to all signed endpoints.