---
title: "List transaction history"
method: GET
path: "/v1/transactions/history"
tags: ["Transactions"]
---

# List transaction history

`GET /v1/transactions/history`

## Request

- Base URL: `https://api.kyshi.co`
- URL: `https://api.kyshi.co/v1/transactions/history`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/kyshi/apis/kyshi-mor-public-api/docs/v1/transactions/history/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns your transactions, newest first. Filter to a closed time range when reconciling, since paging through live data can shift rows between pages.

## Query parameters

- `page` integer
- `limit` integer
- `order` 'ASC' | 'DESC'
- `sort` string
- `query` string
- `currency` Object
- `type` string

## Response `200`

Success.

- object
  - `status` boolean, required: `true` on success.
  - `message` string, required
  - `code` number, required: Mirrors the HTTP status code.
  - `data` object, required: The endpoint-specific payload.
    - `page` number, required
    - `limit` number, required
    - `total` number, required
    - `pageCount` number, required
    - `hasPreviousPage` boolean, required
    - `hasNextPage` boolean, required
    - `data` PublicTransactionDto[], required
      - `id` string, required
      - `amount` number, required
      - `type` 'DR' | 'CR', required
      - `status` 'PENDING' | 'SUCCESS' | 'IN_REVIEW' | 'FAILED' | 'REVERSAL' | 'COLLECTED', required
      - `reference` string, required
      - `currency` string, required
      - `channel` string
      - `processor` 'PROVIDUS_BANK' | 'STERLING' | 'VFD' | 'PAYSTACK' | 'FLUTTERWAVE' | 'CHOICE' | 'STITCH' | 'PAGA' | 'STRIPE' | 'ASSET_MFB' | 'MOMENTPAY' | 'PAWAPAY'
      - `feeBearer` 'MERCHANT' | 'CUSTOMER'
      - `meta` PublicTransactionMetaDto
        - `amount` number, required
        - `symbol` string, required
        - `currency` string, required
        - `fxRate` number, nullable
      - `feeBreakdown` PublicFeeBreakdownDto
        - `fee` number, required
        - `vat` number, required
        - `processorFee` number, required
        - `stampDuty` number, required
        - `allInclusiveKyshiFee` number, required
        - `totalFees` number, required
        - `others` object, required
      - `createdAt` string, required
      - `updatedAt` string, required

## Other responses

- `400`: Missing or invalid request parameter.
- `401`: No valid API key provided.
- `403`: The API key lacks permission for this request.
- `404`: Resource not found. A 404 on an object you just created is usually a test/live mode mismatch.
- `422`: Business rule failure, such as an unsupported currency or insufficient balance.
- `500`: Something went wrong on Kyshi’s end.

## Changes

- **2026-11-03** `4aed77604588`: 12 breaking, 4 warning, 8 info
  - for the `query` request parameter `limit`, default value `100` was removed
  - for the `query` request parameter `order`, default value `DESC` was removed
  - for the `query` request parameter `page`, default value `1` was removed
  - removed the enum value `GHS` from the `query` request parameter `currency`
  - …20 more

[Operation history](https://skmtc.dev/kyshi/apis/kyshi-mor-public-api/changes/v1/transactions/history/get.md)

---

[API](https://skmtc.dev/kyshi/apis/kyshi-mor-public-api.md) - [All operations](https://skmtc.dev/kyshi/apis/kyshi-mor-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kyshi/apis/kyshi-mor-public-api/revisions/4aed77604588?raw)
