# Importing a bank statement file (camt): the incoming half of the bank loop

> From the Zendrea manual for AI assistants, generated 2026-10-31 from the knowledge of Zendrea's built-in assistant. All topics: https://www.zendrea.ch/llms.txt; all of them in one file: https://www.zendrea.ch/llms-full.txt. Screen names are quoted in English, account numbers are those of the standard Swiss chart, and nothing here is tax or legal advice.

The **Bank Account report** has an **"Import bank flows"** button, right of "Export payment file" — the two halves of the same loop (the topic [payment-file](https://www.zendrea.ch/docs/payment-file.md) covers the outgoing half). Pick the company's bank account in the report first; the import reads the file and shows the bank movements beside the bookings.

**You cannot import a file yourself** — it opens the user's own file picker, and there is no tool for it. Route the user to the button, exactly as with the payment file.

**Which files work.** ISO 20022 camt XML as downloaded from e-banking: **camt.053** (the end-of-day account statement — the normal case), **camt.052** (intraday, provisional movements) and **camt.054** (individual notifications, e.g. per-payment advices). The picker takes an **.xml file or a .zip** containing them — banks routinely hand out a ZIP per period, and non-XML entries inside are ignored. Several files can be imported one after another; movements already present are recognised and skipped, and a camt.054 notification is matched against the camt.053 statement line for the same payment instead of being counted twice. So **re-importing the same file is safe** — the summary says how many movements were new and how many were already there.

**What the import does NOT do: it books nothing.** Imported movements are the BANK's side. They are matched against the bookings that already exist — same reference and amount reconcile automatically, near matches are offered as suggestions to confirm, and the panel keeps a tally of what is still unmatched. A movement with no booking behind it still has to be booked through its own form (the topic [bank-statement-manual](https://www.zendrea.ch/docs/bank-statement-manual.md) has the routing per movement type). Importing is a reconciliation aid, never a substitute for booking.

**One case is a click away: an incoming payment on an open invoice.** When the matcher ties an incoming movement to an open customer invoice (by its QR reference, or a foreign-currency payment whose original amount equals exactly one open invoice), the row shows the red cross together with an action icon (tooltip "Payment for open invoice … Click to record it"). Clicking it switches to the Invoices tab and opens that invoice's payment dialog, pre-filled with the bank line's date and amount and this bank account; saving books the payment, and the line then pairs with it like any other match. Every other unmatched line ("No matching booking found": fees, card payments, supplier payments, salaries, transfers) has no action of its own: book it in its form or with Quick Entry (a supplier bill can be paid from the statement line with "pay <amount> <payee>").

**When an import is refused.** A statement whose account IBAN already belongs to a DIFFERENT company in this installation is rejected with that reason, so a misdirected file can never mix two companies' books. If it really is this company's account, the fix is to add that IBAN under **Settings → Bank accounts** first and import again. An unknown IBAN is allowed (a legitimate second account often exists before it is configured).

**No bank connection today.** A direct EBICS connection is not part of the app — the camt file from e-banking is the whole incoming bank story for now, and the button carries the small star meaning it is intended to require Premium in the future (it works today; the topic [pricing](https://www.zendrea.ch/docs/pricing.md)).
