Finance

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.

The three-step import — Upload, Reconcile (preview), Confirm — ending with the statement's closing balance and Import statement.

Navigate to: Finance → Banking → open the account → Update


When to Use Statement Import

ScenarioUse Import?Alternative
A statement period to reconcileYes — import first, then start the periodNone: a period is reconciled against imported lines
Bank-led workflow — the statement is the source of truth for cashYes — this is the designed workflowJournal-led (post first, reconcile after) still imports the statement to compare
Catching up several monthsYes — one statement per period, oldest firstEach 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 arrivesA whole import for one line is unnecessary

Accepted File Formats

FormatExtensionNotes
CSV.csvMost 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, .xlsThe first sheet is used.
PDF.pdfGoes 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

1
Upload

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.

2
Reconcile (preview)

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.

CardWhat it reads today
TotalLines read from the file
New to importEvery line read from the file — see the note below
MatchedAlways 0
To voidAlways 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.

3
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.

⚠️WARNING

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".

🚨CRITICAL

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

SafeguardWhat It MeansAction
Duplicate groups in the fileRows with the same date, debit and credit — a warning names the countCheck the New rows before importing; delete a genuine duplicate
Rows that will not importBlank, unreadable or non-transaction rowsFix them in the file and upload again if any is a real transaction
Re-importing the same statementLines are de-duplicated against what is already stored for the accountSafe to repeat; nothing posts either way
Ambiguous datesThe file could be day/month or month/dayThe detection note says so — check a row's date before importing
🚨CRITICAL

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.