Overview
The Bulk Payments API enables clients to authenticate, create batches, attach transactions, and monitor batch processing status.
Authentication
1. Use Basic Auth (username / password) to obtain a token
2. Use Bearer Token for all subsequent requests
Workflow
- Authenticate — call the Auth endpoint to receive a bearer token
- Create Batch — initialize a new payment batch with a reference, count, and total amount
- Attach Transactions — add individual transactions to the batch one at a time
- Query Status — check the processing status of the batch by reference
Create Batch
POST /pay/v1/e-payments/auth/BulkServices/CreateBatch
Request Body
| Field | Type | Description |
|---|---|---|
| reference | string | Unique identifier for the batch |
| count | integer | Number of transactions to be included in the batch |
| total_amount | string | Total sum of all transaction amounts |
Response 200 OK
| Field | Type | Description |
|---|---|---|
| api_reference | string | System-generated unique reference for this API call |
| data.reference | string | Echo of the batch reference provided in the request |
| data.time | string | Timestamp when the batch was created (ISO 8601) |
| message | string | Human-readable status message |
| status | integer | Status code; 0 indicates success |
| success | boolean | Whether the request was successful |
Error Response 400 / 422
Attach Transactions
POST /pay/v1/e-payments/auth/BulkServices/AttachToBatch
Request Body
| Field | Type | Description |
|---|---|---|
| narration | string | Description or purpose of the transaction |
| reference | string | Reference of the batch to attach this transaction to |
| customer_name | string | Full name of the transaction recipient |
| sort_code | string | Bank sort code identifying the recipient's bank |
| account_number | string | Recipient's bank account number |
| amount | string | Transaction amount |
Response 200 OK
| Field | Type | Description |
|---|---|---|
| message | string | Human-readable status message |
| success | boolean | Whether the transaction was attached successfully |
Error Response 400 / 422
Bulk Attach Transactions
POST /pay/v1/e-payments/auth/BulkServices/BatchTxn
Attach multiple transactions to a batch in a single request instead of one-by-one.
Request Body
| Field | Type | Description |
|---|---|---|
| reference | string | Unique identifier for the batch |
| count | integer | Number of transactions in the batch |
| total_amount | string | Total sum of all transaction amounts |
| transactions | array | List of transaction objects to attach to the batch |
| transactions[].narration | string | Description or purpose of the transaction |
| transactions[].customer_name | string | Full name of the transaction recipient |
| transactions[].sort_code | string | Bank sort code identifying the recipient's bank |
| transactions[].account_number | string | Recipient's bank account number |
| transactions[].amount | string | Amount for this individual transaction |
Response 200 OK
| Field | Type | Description |
|---|---|---|
| api_reference | string | System-generated unique reference for this API call |
| data.count | integer | Number of transactions attached to the batch |
| data.reference | string | The batch reference |
| data.total_amount | string | Total amount across all attached transactions |
| message | string | Human-readable status message |
| status | integer | Status code; 0 indicates success |
| success | boolean | Whether all transactions were attached successfully |
Error Response 400 / 422
Query Batch Status
GET /pay/v1/e-payments/auth/BulkServices/QueryBatchStatus
Query Parameter
| Parameter | Type | Description |
|---|---|---|
| reference | string | The batch reference to query |
Response 200 OK
| Field | Type | Description |
|---|---|---|
| api_reference | string | System-generated unique reference for this API call |
| data.batch_no | string | The batch number / reference |
| data.batch_status | string | Current status of the batch (e.g. Pending Approval, Processed) |
| data.count | integer | Number of transactions in the batch |
| data.total_amount | string | Total amount across all transactions in the batch |
| data.transactions | array | List of individual transaction records |
| data.transactions[].account_number | string | Recipient's bank account number |
| data.transactions[].amount | string | Transaction amount |
| data.transactions[].customer_name | string | Recipient's full name |
| data.transactions[].narration | string | Transaction description |
| data.transactions[].reference | string | Unique reference for the individual transaction |
| data.transactions[].sort_code | string | Bank sort code of the recipient's bank |
| data.transactions[].status | string | Current status of the transaction |
| data.transactions[].txn_date | string | Date and time the transaction was recorded |
| message | string | Human-readable status message |
| status | integer | Status code; 0 indicates success |
| success | boolean | Whether the request was successful |
Error Response 400 / 422
Get Merchant Balance
GET /pay/v1/e-payments/auth/BulkServices/GetMerchantBalance
Returns the current account balance for the authenticated merchant. No request parameters are required.
Response 200 OK
| Field | Type | Description |
|---|---|---|
| api_reference | string | System-generated unique reference for this API call |
| data.account_number | string | Merchant's account number |
| data.balance | string | Current account balance |
| message | string | Human-readable status message |
| status | integer | Status code; 0 indicates success |
| success | boolean | Whether the request was successful |
Error Response 401 Unauthorized