Statement API
Get all transactions from any point in time
Retrieves a paginated list of payment transactions within a specified date range.
POST {{url}}/v1/statement
Authentication
- Type: Access Token
- Header:
x-access-token - Required: Yes
Request Body
{
"start_date": "2026-02-01T09:00:00Z",
"end_date": "2026-02-14T11:00:00Z",
"offset": 30,
"limit": 10
}
Request Body Fields
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
start_date | String | Yes | Start of the date range (ISO 8601 format) | "2026-02-01T00:00:00Z" |
end_date | String | Yes | End of the date range (ISO 8601 format) | "2026-02-14T23:59:59Z" |
offset | Integer | No | Number of records to skip (for pagination). Defaults to 0 if omitted. | 30 |
limit | Integer | No | Maximum number of records to return. Defaults 100 if ommitted. | 10 |
Success Response (200 OK)
Content-Type: application/json
[
{
"payment_id": "0000",
"payer_transaction_reference": "1EF878A1DA53",
"external_reference": "2dc9d433-b35a-4b36-a961-5fa22780def8",
"account_number": "2547******89",
"amount": 10,
"currency": "KES",
"payment_status": 700,
"receiver_narration": "Service request processed successfully",
"payment_method": "MPESA_KEN",
"service_charge": 0.5,
"service_code": "SERVICE",
"created_at": "2026-02-12T09:52:53.273Z"
}
]
Response payload definition
| Field | Type | Description |
|---|---|---|
payment_id | Integer | Internal unique identifier of the payment |
payer_transaction_reference | String | Reference code from the payment processor(Telco/Bank) |
external_reference | String | Merchant transaction reference |
account_number | String | Recipient / customer phone number or account identifier |
amount | Number | Transaction amount |
currency | String | ISO 4217 currency code |
payment_status | Integer | Internal status code |
receiver_narration | String | Description / narration shown to the receiver |
payment_method | String | Payment channel / method used (e.g. MPESA_KEN, CARD, BANK) |
service_charge | Number | Fee charged for the transaction |
service_code | String | Internal product/service identifier |
created_at | String | UTC timestamp when the transaction was created (ISO 8601) |
Error Responses
{
"response_code": number,
"response_description": string,
"error_code": string
}
Example cURL Request
curl --request POST \
--url '{{baseUrl}}/v1/statement' \
--header 'x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data '{
"start_date": "2026-02-01T00:00:00Z",
"end_date": "2026-02-14T23:59:59Z",
"offset": 0,
"limit": 20
}'