Importing Bank Statements
Upload a bank statement, preview what it contains, and store its lines for reconciliation — nothing posts until you reconcile.
Statement import is the first step of the bank-led workflow. You upload the statement, the system reads it and previews what is already in your book and what is new, and on confirmation the lines are stored against the account for reconciliation. The import itself posts nothing to the ledger — matching, classifying and posting happen in the reconciliation period afterwards.
Navigate to: Finance → Banking → open the account → Update
When to Use Statement Import
| Scenario | Use Import? | Alternative |
|---|---|---|
| A statement period to reconcile | Yes — import first, then start the period | None: a period is reconciled against imported lines |
| Bank-led workflow — the statement is the source of truth for cash | Yes — this is the designed workflow | Journal-led (post first, reconcile after) still imports the statement to compare |
| Catching up several months | Yes — one statement per period, oldest first | Each locked period's closing balance becomes the next period's opening |
| A single unusual line (bank charge, interest) | No — post a manual journal, or classify it when the statement arrives | A whole import for one line is unnecessary |
Accepted File Formats
| Format | Extension | Notes |
|---|---|---|
| CSV | .csv | Most banks export CSV. The header row and column roles are detected; when detection is not confident, the Column format and Date format choices apply. |
| Excel | .xlsx, .xls | The first sheet is used. |
| Goes through a convert-and-map step before the preview. |
Two column layouts are read: 4-Column (Date, Description, Debit, Credit) and 3-Column (Date, Description, Amount — negative = debit). A sample template for either can be downloaded on the Upload step.
The 3-Step Import
Choose the Column format (4-Column / 3-Column) and, for dates where both values are 12 or below, the Date format (MM/DD/YYYY or DD/MM/YYYY). Drag the statement onto the drop zone or Select bank statement. Spreadsheet files are read at once; a PDF opens the convert-and-map flow. Click Process.
A Detected from your file note reports rows read, the period, the date order and — when the file carries a running balance — the closing balance, marked verified. Any row that will not be imported is listed with its row number and reason; nothing is dropped silently.
Four cards head the table — Total, Matched, New to import and To void — with a segmented filter (All · Matched · New · To Void) beneath them.
| Card | What it reads today |
|---|---|
| Total | Lines read from the file |
| New to import | Every line read from the file — see the note below |
| Matched | Always 0 |
| To void | Always 0 |
The table shows Status, Date, Description, Debit, Credit and Source. Every row is labelled New, and a New row can be deleted with its trash icon before importing. Click Review & confirm.
A Statement activity preview shows opening balance, money in, money out and a projected closing balance for the new lines, an Import summary (total, already in ledger, not yet matched, ledger impact 0), and a reminder that no ledger changes happen during import. Type the Statement ending balance printed on the statement, pick a center if you use them, and click Import statement.
After import the account's Bank · per statement figure and the Reconciliation state update, and the statement appears under Import history on the Reconciliation tab. The next step is a reconciliation period — see Bank Reconciliation.
The preview does not currently compare the statement against your book. The comparison it was built for receives an empty book list, so Matched and To void always read 0 and every line is shown as New — including lines your book already has. Nothing is wrong with the import itself: the lines are stored correctly and the real matching happens later, in the reconciliation period, on the backend. Read the preview as "what the file contains", not as "what is new to us".
Despite the To void label and any warning about transactions being voided, the import never voids anything. The confirm step states the ledger impact plainly: nothing is posted and nothing is voided during an import.
Safeguards
| Safeguard | What It Means | Action |
|---|---|---|
| Duplicate groups in the file | Rows with the same date, debit and credit — a warning names the count | Check the New rows before importing; delete a genuine duplicate |
| Rows that will not import | Blank, unreadable or non-transaction rows | Fix them in the file and upload again if any is a real transaction |
| Re-importing the same statement | Lines are de-duplicated against what is already stored for the account | Safe to repeat; nothing posts either way |
| Ambiguous dates | The file could be day/month or month/day | The detection note says so — check a row's date before importing |
Import never posts to the ledger and never voids anything. Posting only happens later, from the reconciliation period — when you match lines to the book or send unmatched lines to Classification. If you imported the wrong file, simply import the right one; there is nothing to undo in the books.
Related
- Banking — every cash, bank and card account
- Bank Reconciliation — proving book against bank, one period at a time
- Auto-matching — how statement lines find their book entries
- Classifying uncategorised money — clearing the holding accounts