Skip to content

Better bank statement import process #98

@nikkothari22

Description

@nikkothari22

The bank statement import process could be made way easier than it is right now.

Here are some broad ideas:

  1. Take a CSV or Excel file
  2. Find the header row - some bank statements do not start with the header on the first row of the sheet - needs to match exactly as per configuration set for the given bank account
  3. From header row, iterate to the bottom and find all “eligible” transaction rows - some statements have closing balance and other information at the end of the statement
  4. Add support for column mapping - also support things like a single "amount" column with Cr/Dr, positive/negative values - allow users to map whether Cr is treated as a deposit or withdrawal.
  5. Add exclusion rules based on row variables - some bank statements have weird rows in between which are not transactions but look like them - for example certain "transaction codes" that need to be excluded
  6. Add column mapping with support for Jinja expressions - so users can concatenate multiple columns (e.g. reference + cheque number)
  7. Preview transactions before importing
  8. Get the closing balance from the “balance” column of the last row and set that as closing balance for the given date.

Bank statements are usually imported periodically (monthly, quarterly, yearly) - so we should store the start and end date of each import and warn users if there are duplicate imports for the same period for the same bank account.

Bank statement formats to consider:

  • CSV/Excel
  • CAMT.052 (XML)
  • CAMT.053 (XML)
  • PDF
  • OFX (XML)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions