---
title: "Retrieve the turnovers for a specific bank account"
method: GET
path: "/api/accounts/{bank-account-id}/turnovers"
tags: ["XS2A.api.accounts"]
---

# Retrieve the turnovers for a specific bank account

`GET /api/accounts/{bank-account-id}/turnovers`

## Request

- Base URL: `https://api.xs2a.com/v1`
- URL: `https://api.xs2a.com/v1/api/accounts/{bank-account-id}/turnovers`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/xs2a/apis/xs2a-api/docs/api/accounts/:bank-account-id/turnovers/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `bank-account-id` string, required

## Query parameters

- `from` string, date
- `to` string, date
- `only_new` boolean

## Response `200`

Request successfully processed

- BankAccountTurnovers
  - `id` string: Bank Account ID
  - `turnovers` Turnover[]: The list of turnovers.
    - `booking_date` string: The booking date.
    - `amount` number, float: The turnover amount. Negative for expenditures.
    - `currency_id` 'EUR' | 'CHF': The id of the currency to be used.
    - `purpose` string[]: A string array of purpose lines. The contents vary from bank to bank.
    - `counter_iban` string: The counter IBAN of the booking. This is not always present.
    - `counter_bic` string: The counter BIC of the booking. This is not always present.
    - `counter_holder` string: The counter holder of the booking. This is not always present.
    - `prebooked` boolean: True, if the turnover has not been booked yet
    - `canceled` boolean: True, if the turnover has been canceled.
    - `tags` string[]: An array of strings of tags for this turnover. Find all possible tags here: https://manage.xs2a.com/documentation/tags
    - `category_id` string: The ID of the category found for this turnover. The structure of this `category_id` string is hierarchical, meaning, the more numbers there are, the more detailed the category is. For example, while `K.1` means "expenses for wholesale and retail trade", some turnovers might be categorized more detailed as `K.1.1` ("expenses in retail stores"), or even as `K.1.1.1` ("groceries full-range trader"). You can find the complete list of categories [here](https://manage.xs2a.com/documentation/categories). **NOTE**: As new categories are introduced and the categorization itself is improved constantly, it is possible that the same turnover can be categorized with a different (more detailed) `category_id` at a future point in time. You should develop your application in such a way, that, for example, if your logic relies on something happening when a `category_id` is `K.1.1`, but you get `K.1.2` for which no logic is in place (because it might be a new `category_id` or the turnover is now categorized more detailed), **you should always fall back to the next higher level category**, in this case `K.1`. This way, your logic can still handle the turnover based on a more general category, while not throwing an error.
    - `creditor_id` string: The ID of the creditor.
    - `new` boolean: True, if this turnover is new since the last sync.
    - `transaction_id` string: The transaction-ID for the turnovers.
    - `booking_text` string: The turnover booking text.
    - `purpose_code` string: A turnover SEPA purpose code.
    - `reason_code` string: A turnover SEPA reason code, which provides an explanation for the non-execution of the account-holding bank.
    - `mandate_id` string: A turnover mandate id.
    - `endToEnd_id` string: A turnover endToEnd id.
    - `bank_transaction_code` string: A turnover bank transaction code in ISO 20022 format.
    - `swift_transaction_code` string: A turnover SWIFT transaction code in MT940 format.
  - `days` integer: The number of days requested
  - `date` string: The date the turnovers were seen on.
  - `created_at` string: Date of creation of the turnovers object.
  - `object` string: The value bank_account_turnovers

## Other responses

- `401`: Authentication failed API key missing or not valid
- `403`: Forbidden Access blocked
- `404`: Product not enabled or Not found The requested object does not exist on the server
- `422`: Validation failed Something is wrong with the user input
- `500`: An internal server problem occurred

## Changes

- **2026-09-01** `ae5fbc5feee3`: 2 warning, 2 info
  - removed the optional property `turnovers/items/currency` from the response with the `200` status
  - removed the optional property `turnovers/items/purpose-code` from the response with the `200` status
  - added the optional property `turnovers/items/currency_id` to the response with the `200` status
  - added the optional property `turnovers/items/purpose_code` to the response with the `200` status

[Operation history](https://skmtc.dev/xs2a/apis/xs2a-api/changes/api/accounts/:bank-account-id/turnovers/get.md)

---

[API](https://skmtc.dev/xs2a/apis/xs2a-api.md) - [All operations](https://skmtc.dev/xs2a/apis/xs2a-api/llms.txt) - [OpenAPI document](https://skmtc.dev/xs2a/apis/xs2a-api/revisions/ae5fbc5feee3?raw)
