List repayment transactions for an account
Retrieves immutable repayment allocations as recorded when each payment was applied to the account's installments. Later reversals and waivers are separate transaction events; this list never changes retroactively. Requires an authenticated user. Returns 404 when the account does not exist or is not the caller's. Supports keyset pagination through the size, after, and before query parameters.
Authorization
oauth2 Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.
In: header
Path Parameters
Unique identifier of the account.
uuidQuery Parameters
Maximum number of transactions to return.
0 < value20Opaque cursor for the page after this one. Omit for the first page.
Opaque cursor for the page before this one. Omit for the first page.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/accounts/550e8400-e29b-41d4-a716-446655440000/installments/transactions?size=20&after=eyJhcHBsaWNhdGlvbl9hdCI6IjIwMjYtMDEtMTVUMDk6MzA6MDBaIiwidHJhbnNhY3Rpb25faWQiOiIwMTk4YzFjMi00ZjFlLTdhM2ItOWMyZC02ZjBhMWIyYzNkNGUifQ%3D%3D&before=eyJhcHBsaWNhdGlvbl9hdCI6IjIwMjYtMDEtMTBUMDk6MzA6MDBaIiwidHJhbnNhY3Rpb25faWQiOiIwMTk4YzFjMi00ZjFlLTdhM2ItOWMyZC02ZjBhMWIyYzNkNGQifQ%3D%3D"{ "data": [ { "transaction": { "id": "01a11715-7b0d-7e3f-9c2a-4d5e6f708192", "resource_id": "trx_01m4bhayrdfrzsrajdbsqq10cj", "mpesa_transaction_id": "ABCDE12345", "amount": { "value": 100000, "currency": "KES" }, "fee_amount": { "value": 5000, "currency": "KES" }, "status": "COMPLETED", "failure_reason": null, "transacted_at": "2026-01-20T10:30:00Z", "confirmed_at": "2026-01-20T10:30:05Z", "posted_at": "2026-01-20T10:30:10Z", "failed_at": null, "details": { "type": "BUY_GOODS", "till_number": "12345" } }, "installments": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "balance_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c9", "cycle_id": "4657c0f7-0ec5-4c38-8330-8d4bbac49451", "position": 1, "allocated_amount": 80000, "principal_amount": 60000, "interest_amount": 20000, "arrears_amount": 0, "allocated_at": "2026-01-15T09:30:00Z", "effect": "OBLIGATION_SETTLED", "source": "LIVE" } ] } ], "links": { "next": "/v1/payees?after=eyJpZCI6MX0", "prev": "/v1/payees?before=eyJpZCI6MX0" }}{ "code": "BAD_REQUEST", "description": "Bad Request"}{ "code": "UNAUTHORISED", "description": "Unauthorised"}{ "code": "FORBIDDEN", "description": "Forbidden"}{ "code": "BAD_REQUEST", "description": "Invalid input"}{ "code": "RATE_LIMIT_EXCEEDED", "description": "Too Many Requests"}{ "code": "INTERNAL_ERROR", "description": "Internal Server Error"}List repayment transactions for an installment GET
Retrieves immutable repayment allocations recorded for one installment, including historical revolving-credit cycles. Requires an authenticated user. Returns 404 when the account or the installment does not exist, or the installment does not belong to the account. Supports keyset pagination through the `size`, `after`, and `before` query parameters.
List transactions GET
List the caller's transactions, newest first, across every account they hold in the organization. Set `account_id` to scope the list to one account. Requires an authenticated, active user. The list paginates with `size`, `after`, and `before`. Set `updated_after` to sync incrementally instead of filtering: the server then returns only transactions changed since that instant, oldest change first, and rejects `direction`, `type`, `from`, or `to` in the same request. Keep the highest `updated_at` seen as the next watermark and upsert items by `id`. The server serves roughly the last 13 months of transactions, so an offline cache should expire items older than 12 months.