/bank2ynab

Easily convert and import your bank's statements into YNAB. This project consolidates other conversion efforts into one universal tool.

Primary LanguagePythonOtherNOASSERTION

bank2ynab

This project consolidates other conversion efforts into one universal tool that easily converts and imports your bank's statements into YNAB.

Development: GitHub issues by-label GitHub open issues GitHub last commit PRs welcome! Join the chat at https://gitter.im/bank2ynab/Lobby Code style: black

Testing: Travis status Coverage Status Maintainability

What? (Features)

Convert your downloaded bank statements into YNAB's input format. Here's what this script does, step by step:

  1. Look for and parse the bank2ynab.conf. This file contains all the rules and import formats.
  2. Look for and parse every CSV file in the configured download directory.
  3. If the CSV file matches any of the configured formats:
    1. Create a new CSV file in YNAB's CSV format with the correct columns and a blank Category column.
    2. Optionally delete the original CSV file.

Wish List

  • add many more input formats from all the other YNAB-CSV-conversion projects.
  • maybe coming later: automatically download your bank statements? (uses external services; only available in some countries)
  • maybe coming later: automatically import the converted data into your YNAB app? (optional, default off)

Why?

There are currently more than 80 GitHub projects related to YNAB converter scripts. Clearly there's a need, but until now these solutions have been fragmented. The present project "bank2ynab" aims to focus the efforts on a common source that encapsulates a large number of bank formats. This will also provide a common basis for a solution using a variety of programming languages.

How? Contribute!

Installation Instructions

Requirements

  • Windows or Mac or Linux
  • Python v3.9+ installed (download it from python.org)
  • Support for other scripting languages may follow. Contributions are welcome!

User Guide

Using bank2ynab is easy:

  1. Download some bank statements from your banking website.
    • Make sure to choose CSV format. Save with the default suggested filename so that the converter can find it.
    • It's okay if the statements contain data that you already have in YNAB. YNAB will detect and skip these.
  2. Check the [DEFAULT] configuration in user_configuration.conf. You only need to do this once. Specifically:
    • Source Path = c:\users\example-username\Downloads Specify where you save your downloaded CSV files.
    • Delete Source File = True set to False if you want to keep the original CSV you downloaded.
  3. Check that the configuration in bank2ynab.conf contains a [SECTION] for your banking format. You only need to do this once per bank you use. If you can't find your bank in the config, tell us your bank's format and we can add it to the project.
  4. Install the required dependencies by navigating to the bank2ynab directory in your command line and entering the following - pip install -r requirements.txt or pip3 install -r requirements.txt.
  5. Run the bank2ynab.py conversion script to generate the YNAB-ready CSV output file. How to do this depends on your operating system:
    • Windows: Open a command prompt, navigate to the script directory, and run the command python bank2ynab.
      • Pro tip: Create a program shortcut! Right-click on the bank2ynab.bat file, choose Send to and then choose Desktop (create shortcut). Now you can just double-click that shortcut!
    • Linux/Mac: Open a terminal, navigate to the script directory, and run the command python3 ./bank2ynab.     - Important: Be sure to use python3 specifically, and not python or python2 which is probably the system default.
  6. Depending on your configuration, the conversion script will now import your files into YNAB automatically, or you can add the files manually:
    • Automatic import (when you have provided your YNAB API access token:
      • The conversion script will now ask you which budget it should use to import your converted CSV file to (if you have multiple). It will also ask you which account inside the budget to use (if you have multiple); you'll only have to answer this question once.
    • Manually drag-and-drop the converted CSV file onto the YNAB web app:
      • YNAB will detect this and offer you import options. If you had already switched YNAB to the corresponding account view, YNAB will understand that you want to import this file to this account.

Known Bugs

For details, please see our issue list labeled "Bug".

List of Supported Banks

Here is a list of the banks and their formats that we already support. Note that we have many more formats in the pipeline so the list continues to grow, and we are happy to receive requests. In alphabetical order (country and bank):

  1. AT easybank credit card
  2. AT Raiffeisen Bank 2018
  3. AT Raiffeisen Bank RCM
  4. AT Raiffeisen Bank 2019 checking
  5. AT Raiffeisen Bank 2021 checking
  6. AT Raiffeisen VISA
  7. AU ANZ
  8. AU ING
  9. AU National Australia Bank
  10. BE BNP Paribas Fortis old
  11. BE BNP Paribas Fortis Export
  12. BE KBC checking
  13. BE KBC credit
  14. BE Keytrade Bank
  15. BR Banco Bradesco Checking
  16. BR Banco do Brasil, checking
  17. BR Inter, checking
  18. CA TD Canada Trust, checking+Visa
  19. CH UBS Checking account
  20. CH UBS Checking account - Alternative 1
  21. CH UBS Credit card
  22. CH SwissCard
  23. CH ZKB Erweiterte Suche
  24. CH ZKB Finanzassistent-Chronik
  25. CO Bancolombia
  26. Crypto.com
  27. CZ AirBank checking and savings
  28. CZ Ceska Sporitelna
  29. CZ Raiffeisen bank
  30. DE Amazon VISA LBB
  31. DE Commerzbank checking
  32. DE Consorsbank checking
  33. DE Deutsche Bank
  34. DE Deutsche Bank Credit Card
  35. DE Deutsche Kreditbank checking
  36. DE Deutsche Kreditbank checking new
  37. DE Deutsche Kreditbank credit card
  38. DE Fiducia (Volksbank, Sparda-Bank, BBBank, PSD Bank, Raiffeisen, ...)
  39. DE ING-DiBa
  40. DE Kreissparkasse
  41. DE N26
  42. DE Ostseesparkasse Rostock checking
  43. DE Ostseesparkasse Rostock credit card
  44. DE Sparkasse Rhein-Neckar-Nord
  45. DE Sparkasse Südholstein
  46. DK Bankernes EDB Central
  47. DK Danske Bank
  48. DK Jyske Bank VISA
  49. DK Nordea
  50. DK Portalbank
  51. Hibiscus banking software
  52. HU Erste Bank checking
  53. HU K&H
  54. HU OTP
  55. IE AIB Ireland
  56. IE Bank of Ireland
  57. IE First South Credit Union
  58. IE N26
  59. IE Ulster Bank, savings
  60. IT RomagnaBanca Inbank
  61. LV Swedbank
  62. Mint
  63. MV Bank of Maldives, checking
  64. NETELLER
  65. NL Bunq checking
  66. NL bunqDesktop software
  67. NL bunqDesktop software 2
  68. NL ING
  69. NL ING Checking 2020
  70. NL KNAB
  71. NL Rabobank
  72. NL Rabobank-2018
  73. NL Rabobank Credit Card
  74. NO DNB
  75. NO Sparebank 1 VISA
  76. Personal Capital
  77. PL Alior Bank
  78. PL mBank
  79. PL PKO BP
  80. Revolut
  81. SE Handelsbanken
  82. SE Länsförsäkringar checking
  83. SE Nordea - internetbanken.privat.nordea.se
  84. SE Nordea - netbank.nordea.se
  85. SE SEB Skandinaviska Enskilda Banken
  86. SE Sparbanken Tanum
  87. SE Swedbank
  88. SE Swedbank 2019
  89. SE Swedbank 2020
  90. SG OCBC Bank
  91. SG OCBC Bank Credit Card
  92. SG POSB savings
  93. SK Tatra Banka
  94. SK VUB
  95. UK Co-operative Bank
  96. UK Monzo checking
  97. UK Barclaycard credit card
  98. UK Barclaycard Business Credit Card
  99. UK first direct checking
  100. UK John Lewis Partnership Card (Pre-2022 Format)
  101. UK John Lewis Partnership Card (NewDay Format)
  102. US Bank of America
  103. US Bank of America Credit Card
  104. US BB&T
  105. US Chase Credit Card 2017
  106. US Chase Credit Card 2019
  107. US Schwab Checking
  108. US Schwab Savings
  109. US TB Bank
  110. US USAA

XKCD on standards: Fortunately, the charging one has been solved now that we've all standardized on mini-USB. Or is it micro-USB? Shit.


Disclaimer: Please use at your own risk. This tool is neither officially supported by YNAB (the company) nor by YNAB (the software) in any way. Use of this tool could introduce problems into your budget that YNAB, through its official support channels, will not be able to troubleshoot or fix. See also the full MIT licence.