---
title: "Search transactions by query params. Same endpoint can be used to download CSV (with  Accept header=\"text/csv\"). Refer to code for details"
method: GET
path: "/v1/transaction"
tags: ["Transactions"]
---

# Search transactions by query params. Same endpoint can be used to download CSV (with  Accept header="text/csv"). Refer to code for details

`GET /v1/transaction`

## Query parameters

- `status_version` integer
- `exact_reference_match` boolean
- `email` string
- `reference` string
- `cardholder_name` string
- `last_digits_card_number` string
- `first_digits_card_number` string
- `payment_states` CommaDelimitedSetParameter
  - `notEmpty` boolean
  - `parameters` string[]
  - `rawString` string
- `state` string
- `refund_states` CommaDelimitedSetParameter
  - `notEmpty` boolean
  - `parameters` string[]
  - `rawString` string
- `card_brands` CommaDelimitedSetParameter
  - `notEmpty` boolean
  - `parameters` string[]
  - `rawString` string
- `from_date` string
- `to_date` string
- `transaction_type` 'PAYMENT' | 'REFUND' | 'DISPUTE'
- `gateway_payout_id` string
- `from_settled_date` string
- `to_settled_date` string
- `metadata_value` string
- `agreement_id` string
- `page` integer
- `display_size` integer
- `limit_total` boolean
- `limit_total_size` integer
- `gateway_transaction_id` string
- `dispute_states` CommaDelimitedSetParameter
  - `notEmpty` boolean
  - `parameters` string[]
  - `rawString` string
- `override_account_id_restriction` boolean
- `account_id` string

## Response `200`

OK

- TransactionSearchResponse[]
  - `_links` PaginationBuilder
    - `first_page` PaginationLink
      - `href` string
    - `last_page` PaginationLink
      - `href` string
    - `next_page` PaginationLink
      - `href` string
    - `prev_page` PaginationLink
      - `href` string
    - `self` PaginationLink
      - `href` string
  - `count` integer
  - `page` integer
  - `results` TransactionView[]
    - `agreement_id` string
    - `agreement_payment_type` string
    - `amount` integer
    - `authorisation_mode` 'web' | 'moto_api' | 'agreement' | 'external'
    - `authorisation_summary` AuthorisationSummary
      - `three_d_secure` ThreeDSecure
        - `required` boolean — `true` if payment requires 3D Secure authentication.
        - `version` string
    - `card_details` CardDetails
      - `billing_address` Address
        - `city` string
        - `country` string
        - `county` string
        - `line1` string
        - `line2` string
        - `postcode` string
      - `card_brand` string
      - `card_type` 'CREDIT' | 'DEBIT'
      - `cardholder_name` string
      - `expiry_date` string
      - `first_digits_card_number` string
      - `last_digits_card_number` string
    - `corporate_card_surcharge` integer
    - `created_date` string, date-time
    - `credential_external_id` string
    - `delayed_capture` boolean
    - `description` string
    - `disputed` boolean
    - `email` string
    - `evidence_due_date` string, date-time
    - `exemption` Exemption
      - `outcome` Outcome — Object containing information about the outcome of the 3ds exemption request
        - `result` 'not requested' | 'honoured' | 'rejected' | 'out of scope' — Indicating the result if 3ds exemption was requested for the payment.
      - `requested` boolean — Flag indicating whether 3ds exemption was requested for the payment.
      - `type` string — Indicating the type of the 3ds exemption was requested for the payment if applicable.
    - `fee` integer
    - `gateway_account_id` string
    - `gateway_payout_id` string
    - `gateway_transaction_id` string
    - `language` string
    - `live` boolean
    - `metadata` object
    - `moto` boolean
    - `net_amount` integer
    - `parent_transaction_id` string — Parent transaction external ID. Available for refunds
    - `payment_details` TransactionView — recursive
    - `payment_provider` string
    - `reason` string
    - `reference` string
    - `refund_summary` RefundSummary
      - `amount_available` integer
      - `amount_refunded` integer
      - `amount_submitted` integer
      - `status` string
      - `user_external_id` string
    - `refunded_by` string — External ID of the service user that refunded payment. Only available for refunds
    - `refunded_by_user_email` string — Service user email that refunded the payment. Only available for refunds
    - `return_url` string
    - `service_id` string
    - `settlement_summary` SettlementSummary
      - `settled_date` string
    - `source` 'CARD_API' | 'CARD_PAYMENT_LINK' | 'CARD_AGENT_INITIATED_MOTO' | 'CARD_EXTERNAL_TELEPHONE'
    - `state` ExternalTransactionState
      - `can_retry` boolean, nullable — Only applicable for failed recurring payments. Default value is null
      - `code` string
      - `finished` boolean
      - `message` string
      - `status` string
    - `total_amount` integer
    - `transaction_id` string
    - `transaction_type` 'PAYMENT' | 'REFUND' | 'DISPUTE'
    - `wallet_type` string
  - `total` integer

## Other responses

- `400` — Missing required query parameters
- `504` — Search query cancelled due to query timeout

---

[API](https://skmtc.net/government-digital-service/apis/ledger-api.md) · [All operations](https://skmtc.net/government-digital-service/apis/ledger-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/government-digital-service/ledger-api/revisions/10ffeffca918/schema)
