← All posts

Bank Statement Reconciliation for Small Businesses: A Step-by-Step Guide

By Einar Luha

Bank Statement Reconciliation for Small Businesses: A Step-by-Step Guide

Bank reconciliation is one of those tasks that feels simple in theory and maddening in practice. The theory: match every payment in your bank statement to an invoice. The practice: reference numbers don’t match, amounts are off by a cent, and you’re staring at three transactions that could all be the same payment.

Here’s a practical approach — starting with what to do manually, then how to automate most of it.

What Is Bank Statement Reconciliation?

Reconciliation means comparing two records of the same transactions and confirming they match:

  1. Your invoice list: what you expected to pay
  2. Your bank statement: what you actually paid

When they match perfectly, you’re reconciled. When they don’t, you have either:

  • An invoice that hasn’t been paid yet (due or overdue)
  • A payment with no matching invoice (accidental, fraudulent, or a missing invoice)
  • A discrepancy in amount (partial payment, rounding, bank fees)

Doing this manually monthly is why accountants exist. Automating it is why AP software exists.

Getting Your Bank Statement as CSV

Every major bank provides CSV export. Here’s where to find it:

LHV (Estonia): Accounts → Select account → Statement → Set date range → Download as CSV

Swedbank (Estonia/Latvia/Lithuania): Accounts → Daily balance → Statement → Export → CSV

SEB (Estonia/Latvia/Lithuania/Sweden): Accounts → Account statement → Download → CSV

Luminor: Daily banking → Transactions → Export → CSV

For other banks: Look for “Statement,” “Transactions,” or “Export” under your account view. Every online banking portal has this.

CSV Format Variations (and Why They’re Annoying)

Here’s the practical headache: every bank exports CSV in a slightly different format. LHV uses different column names than Swedbank, different date formats, and different ways of representing debits vs. credits.

BankAmount columnDate formatDebit notation
LHVSummaDD.MM.YYYYNegative
SwedbankSummaYYYY-MM-DDSeparate column
SEBAmountDD.MM.YYYYNegative

A manual reconciliation process needs to handle all these. An automated tool should detect the format automatically and normalize everything to a standard format.

Invoice-Tracker auto-detects bank CSV formats for Estonian and other Baltic banks — just upload the CSV you downloaded, no configuration needed.

The Matching Logic

Automated reconciliation uses several strategies to match payments to invoices:

1. Reference Number Match (Most Reliable)

Estonian bank transfers use a standardized 7–20 digit reference number (viitenumber). If your supplier puts their invoice number as the reference, the match is exact.

Example: Invoice #2024-0847 → Bank transaction reference “20240847” → Automatic match.

2. Amount + Approximate Date Match

If the reference doesn’t match, compare amounts. A payment of €1,488.00 on March 16 likely matches an invoice for €1,488.00 due March 15.

Risk: Two invoices to different suppliers for the same amount. A good system checks this and flags ambiguous matches for human review.

3. Amount + Vendor Name Match

If the bank transaction description contains the supplier name (“SEB Liising AS”), match it to the open invoice from that vendor with the nearest due date.

4. Partial Payment Detection

Sometimes you pay part of an invoice. €500 against a €1,000 invoice should be detected as a partial payment, not a failed match.

Good systems track: original amount, paid amount, remaining balance, and payment history per invoice.

What to Do When Things Don’t Match

Invoice in your list but no matching bank transaction:

  • The invoice hasn’t been paid yet → leave it as Pending
  • The invoice was paid but with wrong reference → manual match
  • You paid in cash or via other means → mark as Paid with a note

Bank transaction but no matching invoice:

  • Invoice got lost (supplier sent to wrong address) → request a copy
  • Bank fee or charge → add as an expense, not an invoice
  • Duplicate payment → investigate urgently, contact supplier for refund

Amount mismatch:

  • Bank fee deducted from payment → this is a partial payment
  • Currency conversion → amount in base currency may differ slightly
  • Early payment discount → supplier may have applied a discount

Monthly Reconciliation Workflow (30-Minute Version)

Here’s a practical monthly workflow that combines automation with manual review:

Day 1 of the month:

  1. Download bank statement CSV for the previous month
  2. Upload to Invoice-Tracker → automatic matching runs
  3. Review: which invoices are now marked Paid?
  4. Check: are there any Unmatched payments in the bank statement?
  5. Handle exceptions (5–10 minutes for most businesses)
  6. Export reconciled invoice list to CSV for your accountant

What “handling exceptions” looks like:

For each unmatched bank transaction:

  • Is it an invoice you received but didn’t forward to Invoice-Tracker? → Forward now, it gets processed, match manually
  • Is it a recurring charge (SaaS, lease, utility) without a formal invoice? → Mark as Paid, note the reason

For each unmatched invoice (paid-but-no-transaction):

  • Was it paid in a different period? → Check last month’s statement
  • Was the reference wrong? → Search bank statement for the amount + date
  • Is it genuinely unpaid? → Leave as Pending/Overdue

Total time for a typical 30–50 invoice business: 20–30 minutes per month.

Partial Payments

Partial payments are common in some industries (construction, consulting retainers) and a sign of cash flow problems in others.

When you pay part of an invoice:

  1. The invoice status should stay Pending (not Paid)
  2. The system should record the partial payment with amount and date
  3. The remaining balance should be visible
  4. The next bank statement upload should match the second (final) payment

Invoice-Tracker tracks payment history per invoice: each matched bank transaction is recorded with amount and date, and the remaining balance is calculated automatically.

Reconciliation for Multi-Currency Businesses

If you pay invoices in foreign currencies (GBP, SEK, USD), reconciliation is more complex:

  • The invoice is in GBP: £840
  • Your bank is in EUR: you paid €985 on March 15
  • The exchange rate on March 15: 1 GBP = 1.172 EUR → matches

Invoice-Tracker records both the foreign currency amount and the EUR equivalent from your bank statement, so you can verify the exchange rate used and the actual EUR cost.


Invoice-Tracker automatically reconciles bank statements with open invoices. Upload a CSV from LHV, Swedbank, SEB, or any Baltic bank — matching happens instantly.