---
title: "List bank statement imports"
method: GET
path: "/bank-imports"
tags: ["Bank Imports"]
---

# List bank statement imports

`GET /bank-imports`

## Request

- Base URL: `https://api.lumabill.ch/v1`
- URL: `https://api.lumabill.ch/v1/bank-imports`
- Auth: HTTP bearer

Returns one row per uploaded statement, including per-status counts (`matchedCount`, `categorizedCount`, `unmatchedCount`, `ignoredCount`) so a reconciliation UI or agent can target imports that still need work.

## Query parameters

- `bankAccountId` string, uuid
- `hasUnmatched` boolean

## Response `200`

Bank imports for this profile

- BankImport[]
  - `id` string, uuid, required
  - `filename` string, required
  - `importedAt` string, date-time, required
  - `statementDate` string, date, nullable
  - `format` string: Source of the import - CAMT053, CAMT054, CSV, REVOLUT or PDF (AI-read PDF statement)
  - `bankAccountId` string, uuid, required
  - `totalTransactions` integer, required
  - `matchedCount` integer, required: Transactions auto-matched or manually matched to invoices/expenses/revenues
  - `categorizedCount` integer, required: Transactions booked directly to a chart-of-accounts account
  - `unmatchedCount` integer, required: Transactions still requiring reconciliation
  - `ignoredCount` integer, required: Transactions explicitly skipped (will not produce a journal entry)
  - `aiReconcileStatus` 'pending' | 'running' | 'completed' | 'failed', nullable
  - `aiReconcileTotal` integer, nullable
  - `aiReconcileCategorized` integer, nullable
  - `aiReconcileError` string, nullable

## Other responses

- `400`: Validation error
- `401`: Invalid or missing API key
- `403`: Subscription required or read-only key on a write endpoint
- `429`: Rate limit exceeded
- `500`: Internal server error

---

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