---
title: "List Bank Transactions"
method: GET
path: "/api/autopilot/bank/transactions"
tags: ["autopilot"]
---

# List Bank Transactions

`GET /api/autopilot/bank/transactions`

## Request

- Base URL: `https://api.taxcompass.it` (the document declares no server; this is the origin it was published from)
- URL: `https://api.taxcompass.it/api/autopilot/bank/transactions`
- Auth: HTTP bearer

The caller's imported movements, most recently booked first.

``status`` narrows the inbox to one stage of reconciliation; absent, it is
every live row rather than a defaulted ``unmatched``. The default matters:
``ignored`` rows still exist (ignoring is a status, not a delete, so the next
overlapping import still dedupes against them), and a screen that forgot to
pass a filter would otherwise never be able to show the user what they put
away.

No year filter, unlike ``/incassi``: a statement is imported for
reconciliation against invoices, and the December movement that pays a
November invoice must not fall out of the inbox on New Year's Day.

Matching happens **here**, on the read, the same lazy shape as the SdI status
poll: each open credit is scored against the invoices still owed money
(AP-112) and comes back with its ranked ``suggestions``, while the resulting
``match_status`` is persisted so the filter above stays a SQL predicate.
Nothing is confirmed by reading — that stays a user action, below.

## Query parameters

- `status` 'unmatched' | 'suggested' | 'confirmed' | 'ignored', nullable

## Response `200`

Successful Response

- BankTransactionList: ``GET /api/autopilot/bank/transactions?status=`` — the inbox, newest booking first. ``open_invoices`` is every invoice a movement could still be recorded against (the "pick another invoice" options), independent of the ``status`` filter.
  - `count` integer
  - `items` BankTransactionRead[]
    - `id` string, uuid, required
    - `booked_date` string, date, required
    - `amount` string, required
    - `side` 'credit' | 'debit', required
    - `match_status` 'unmatched' | 'suggested' | 'confirmed' | 'ignored', required
    - `import_batch` string, uuid, required
    - `incasso_id` string, uuid, nullable
    - `counterparty` string, nullable
    - `causale` string, nullable
    - `suggestions` MatchSuggestionRead[]
      - `invoice_id` string, uuid, required
      - `score` integer, required
      - `reasons` string[]
      - `signals` string[]
      - `certain` boolean
    - `invoice_id` string, uuid, nullable
    - `auto_recorded_at` string, date-time, nullable
  - `open_invoices` BankOpenInvoice[]
    - `invoice_id` string, uuid, required
    - `year` integer, required
    - `number` integer, nullable
    - `outstanding` string, required
    - `issue_date` string, date, nullable
    - `client_label` string, nullable

## Other responses

- `422`: Validation Error

---

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