Skip to main content

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

FieldTypeRequiredDescriptionExample
start_dateStringYesStart of the date range (ISO 8601 format)"2026-02-01T00:00:00Z"
end_dateStringYesEnd of the date range (ISO 8601 format)"2026-02-14T23:59:59Z"
offsetIntegerNoNumber of records to skip (for pagination). Defaults to 0 if omitted.30
limitIntegerNoMaximum 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

FieldTypeDescription
payment_idIntegerInternal unique identifier of the payment
payer_transaction_referenceStringReference code from the payment processor(Telco/Bank)
external_referenceStringMerchant transaction reference
account_numberStringRecipient / customer phone number or account identifier
amountNumberTransaction amount
currencyStringISO 4217 currency code
payment_statusIntegerInternal status code
receiver_narrationStringDescription / narration shown to the receiver
payment_methodStringPayment channel / method used (e.g. MPESA_KEN, CARD, BANK)
service_chargeNumberFee charged for the transaction
service_codeStringInternal product/service identifier
created_atStringUTC 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
}'