Skip to content

Converts from banks' CSV format of exported transactions to the frormat accepted by YNAB4

License

Notifications You must be signed in to change notification settings

adnilsson/Bank2YNAB4

Repository files navigation

Code style: black

Bank2YNAB4

Converts from bank transactions exported as CSV to the format accepted by YNAB4.

Why YNAB4?

Besides being much nicer to use than a simple spreadsheet, YNAB4 was great for two reasons:

  1. One-time cost.
  2. Data stored locally, with the option of uploading to Dropbox.

The new, web-based YNAB follows a monthly subscription model. Paying $7 to make my monthly budget just does not make sense for me. Also, I don't want to be forced to store all my bank data on their servers.

Installation

  1. Clone or download the repository
  2. Refer to the User guide

Requirements

  • Python ^3.10

User guide

Using Bank2YNAB4 is straightforward:

  1. Run bank2ynab.py to launch the application.
  2. Select one of the available banks from the drop-down menu.
  3. From the dialog, find and select the CSV file from the bank (a header is assumed to exist in the CSV-file).
  4. If conversion succeeded, then the converted CSV file is written to ynabImport.csv in the same directory as bank2ynab.pyw.

List of supported banks

  • Nordea [SE]
  • ICA Banken [SE]
  • Revolut ([SE] tested)

Adding support for additional banks

Banks are defined using TOML-configuration files found in the banks directory. These are used to tell Bank2YNAB how to interpret the columns in a CSV statement file. A template config is provided as a starting point for defining a new bank. Filling out the template should hopefully be clear from the comments. Nevertheless, a short description can be helpful:

  1. Create a new bank config by copying and renaming the template.
  2. Give the bank an appropriate name and specify all delimiters and the date format used.
  3. Fill out the ynab_mapping table with the corresponding column names from the bank's CSV statement.

Some keys in the template's ynab_mapping table are optional. However:

  • The date key must exist in the ynab_mapping table.
  • You must provide both the outflow and inflow keys.
    • If your bank only provides an 'amount' column, you should use that column name for both the outflow and inflow.
    • You can assign a list of column names to outflow if your bank, for example, has multiple outflows (such as an extra 'fee' column).

The new bank is automatically included in the drop-down menu of available banks.

About

Converts from banks' CSV format of exported transactions to the frormat accepted by YNAB4

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages