POST
/
disbursements
/
batch
/
addJson
cURL
curl -X POST 'https://dev.api.onekhusa.com/sandbox/v1/disbursements/batch/addJson' \
  --header 'accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer your-jwt-token' \
  --header 'Accept-Language: en' \
 --header 'X-Idempotency-Key: your-idempotency-key' \
  -d '{
  "header": {
    "merchantAccountNumber": 35253486,
    "isBatchScheduled": true,
    "scheduledDate": "2025-09-19",
    "capturedBy": "admin@example.com"
  },
  "transactions": [
    {
      "beneficiaryName": "John Phiri",
      "connectorId": 550044,
      "beneficiaryAccountNumber": "12345678",
      "transactionDescription": "Salary Payment",
      "transactionAmount": 45000.00,
      "sourceReferenceNumber": "QKAHXD200923"
    }
  ]
}'
{
  "merchantAccountNumber": 35253486,
  "batchNumber": 123456,
  "BatchStatusCode": "Q"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer Token, Where accessToken is the access token used to authenticate the request.

Headers

Accept-Language
string
default:en

Preferred language for the response

X-Idempotency-Key
string

A unique key to ensure idempotent requests

Body

application/json

Request payload for adding bulk disbursements via JSON

header
object
required

Bulk JSON header information

transactions
object[]
required

Array of transaction objects (max 50,000)

Maximum array length: 50000

Response

200 - application/json

Success Response (200 OK)

merchantAccountNumber
integer
Example:

35253486

batchNumber
integer
Example:

123456

BatchStatusCode
Queued

This means that OneKhusa has accepted your batch disbursements request and queued for processing but does not make it available for viewing until the whole batch is validated (This make take few seconds or more depending on batch payload sent).

Example:

"Q"