Get Transactions History
Get the caller's transactions history, newest first — every account they hold in their organization, or one account with account_id. With updated_after, returns only transactions modified since that instant, ordered oldest change first, for incremental offline sync: clients upsert items by id and keep the maximum updated_at seen, per organization, as the next watermark. The server serves roughly the last 13 months of transactions; an offline cache should locally expire items older than 12 months, which also bounds any divergence.
Query Parameters
Narrow to one account; omitted, the listing covers every account the caller holds in their organization. An account the caller does not hold yields an empty page
uuidPage size
0 < value20Next page cursor
Previous page cursor
Filter by transaction direction
Value in
- "INCOMING"
- "OUTGOING"
Filter by transaction type
Start of time range (inclusive), ISO-8601 with timezone
date-timeEnd of time range (exclusive), ISO-8601 with timezone
date-timeIncremental sync: return only transactions modified after this instant, ordered oldest change first. Cannot be combined with direction, type, from, or to — a filtered sync's watermark would silently exclude the filtered-out rows from an offline cache forever. Keep one watermark per user per organization. The server re-delivers a trailing safety window, so keep the exact maximum updated_at seen and upsert items by id. ISO-8601 with timezone
date-timeResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/transactions"{ "data": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "resource_id": "trx_2n1t201rmv87aae5j4csam8000", "mpesa_transaction_id": "ABCDE12345", "amount": { "value": 100000, "currency": "KES" }, "fee_amount": { "value": 5000, "currency": "KES" }, "status": "POSTED", "failure_reason": null, "transacted_at": "2025-10-20T10:30:00Z", "confirmed_at": "2025-10-20T10:30:05Z", "posted_at": "2025-10-20T10:30:10Z", "failed_at": null, "details": { "type": "BUY_GOODS", "till_number": "12345" } } ], "links": { "next": "string", "prev": "string" }}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "WAITING_LIST", "description": "User is in the waiting list"}{ "code": "TOO_MANY_REQUESTS", "description": "Too Many Requests"}{ "code": "INTERNAL_SERVER_ERROR", "description": "Internal Server Error"}