v4.1.0 9 February 2026 Feature

CSV Bank Statement Import

Bank Statement Import

Upload a CSV file from your bank and SpeyBooks will parse it, detect duplicates, and create transactions automatically.

  • 4-step import wizard — Upload, Map Columns, Preview, Confirm. Each step validates before moving on.
  • NatWest format support — auto-detects columns from NatWest CSV exports including date, description, amount, and balance. Additional UK bank formats coming soon.
  • Preview with running balances — review every row before committing, with total in/out summaries and date range at a glance.
  • Duplicate detection — matches against existing transactions by date and amount to flag potential double-imports. You choose what to include.
  • Zero-amount filtering — rows with £0.00 amounts are automatically skipped during import.
  • Double-entry posting — each imported row creates a proper journal entry against the Suspense account (9999), ready for you to categorise into the correct expense or income accounts.
  • Import history — every upload is tracked with row counts, date ranges, and completion status.

Bug Fixes

  • Fixed a database connection initialisation bug that could cause intermittent query failures on new pool connections.
  • Fixed API key authentication failing under certain conditions after server restart.
  • Corrected status values in the import pipeline to match database constraints.
  • Fixed column references in the import confirmation flow to align with the transaction schema.

Known Issues

  • Transaction detail page only renders one journal line instead of both legs — the data is correct, this is a display bug.
  • Imported transactions need a categorisation workflow to move them from Suspense to the appropriate expense or income accounts. This is the next priority.
  • Additional bank formats (Starling, Monzo, HSBC, Lloyds) are planned for a future release.