Bank2ynab
Easily convert and import your bank's statements into YNAB. This project consolidates other conversion efforts into one universal tool.
Install / Use
/learn @bank2ynab/Bank2ynabREADME
bank2ynab
This project consolidates other conversion efforts into one universal tool that easily converts and imports your bank's statements into YNAB.
- What? (Features)
- Why?
- How?
- Installation Instructions
- User Guide
- YNAB API Import
- Contributors
- Known Bugs
- List of Supported Banks
<a name="what"></a>What? (Features)
Convert your downloaded bank statements into YNAB's input format. Here's what this script does, step by step:
- Look for and parse the
bank2ynab.conf. This file contains all the rules and import formats. - Look for and parse every CSV file in the configured download directory.
- If the CSV file matches any of the configured formats:
- Create a new CSV file in YNAB's CSV format with the correct columns and a blank Category column.
- Optionally delete the original CSV file.
<a name="wishlist"></a>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)
<a name="why"></a>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.
<a name="how"></a>How? Contribute!
- If you're "just a user":
- tell us your import format and we can create a converter - for you and for everyone else!
- use the converter provided here and give us feedback - or participate!
- If you've already built a YNAB converter:
- take advantage of this project to get more import formats.
- give back to this project by sharing your existing import formats.
- Add a brainstorming item as a new issue.
- Join the chat over at https://gitter.im/bank2ynab/Lobby
- See also: the wiki, perhaps most importantly this page about import formats.
<a name=install></a>Installation Instructions
- Install from PyPI:
pip install bank2ynab - Or install from source (recommended for contributors):
git clone https://github.com/bank2ynab/bank2ynab.gitcd bank2ynabuv sync
- Then follow the User Guide below.
<a name="requirements"></a>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!
Troubleshooting:
- If you see
RequestsDependencyWarningabouturllib3/chardet/charset_normalizer, resync the environment withuv sync --reinstall.
<a name="userguide"></a>User Guide
Using bank2ynab is easy:
- 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.
- Run
bank2ynabonce to generate default config files.user_configuration.confis read fromBANK2YNAB_CONFIG_DIRif that environment variable is set.- Otherwise it is read from your OS user config directory for
bank2ynab. - On Windows, that is typically
%LOCALAPPDATA%\bank2ynab\bank2ynab\user_configuration.conf. - Example:
C:\Users\YourName\AppData\Local\bank2ynab\bank2ynab\user_configuration.conf
- Check the
[DEFAULT]configuration in thatuser_configuration.conffile. You only need to do this once.Source Path = c:\users\example-username\Downloadssets where downloaded CSV files are read from.Delete Source File = Truecan be set toFalseif you want to keep originals.
- Check that
bank2ynab.confcontains a[SECTION]for your bank format. - Run the converter:
- If installed from PyPI:
bank2ynab - If running from source:
uv run bank2ynab
- If installed from PyPI:
- If API upload is not configured, import the output CSV manually in YNAB.
<a name="api"></a>YNAB API Import
Use this section if you want bank2ynab to upload transactions directly to YNAB.
- Create a Personal Access Token in YNAB (
My Account->Developer Settings->Personal Access Tokens). - Open
user_configuration.confand setYNAB API Access Token = <your_token>. - Run
bank2ynabagain. - On first API run for each bank section, choose:
- Budget
- Account
- The selected mapping is stored as
YNAB Account ID = <budget_id>||<account_id>in your user config.
Notes:
- Config location:
BANK2YNAB_CONFIG_DIRif set.- Otherwise your OS default user config directory for
bank2ynab.
- Windows example:
%LOCALAPPDATA%\bank2ynab\bank2ynab\user_configuration.conf
- Root-level config files in the project directory are no longer used.
- If
Save YNAB Account = True, account mapping is reused automatically. - If token is blank, API upload is skipped and output remains CSV-based.
- Keep your token private.
<a name="contributors"></a>Contributors
<a name="knownbugs"></a>Known Bugs
For details, please see our issue list labeled "Bug".
<a name="formats"></a>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):
<!--AUTO BANK UPDATE START-->- AT easybank credit card
- AT Raiffeisen Bank 2018
- AT Raiffeisen Bank RCM
- AT Raiffeisen Bank 2019 checking
- AT Raiffeisen Bank 2021 checking
- AT Raiffeisen VISA
- AU ANZ
- AU ING
- AU National Australia Bank
- BE BNP Paribas Fortis old
- BE BNP Paribas Fortis Export
- BE KBC checking
- BE KBC credit
- BE Keytrade Bank
- BR Banco Bradesco Checking
- BR Banco do Brasil, checking
- BR Inter, checking
- CA TD Canada Trust, checking+Visa
- CH UBS Checking account
- CH UBS Checking account - Alternative 1
- CH UBS Credit card
- CH Neon Monthly Account Statement
- CH Neon Yearly Account Statement
- CH SwissCard
- CH ZKB Erweiterte Suche
- CH ZKB Finanzassistent-Chronik
- CO Bancolombia
- Crypto.com
- CZ AirBank checking and savings
- CZ Ceska Sporitelna
- CZ Raiffeisen bank
- DE Amazon VISA LBB
- DE Commerzbank checking
- DE Consorsbank checking
- DE Deutsche Bank
- DE Deutsche Bank Credit Card
- DE Deutsche Kreditbank checking
- DE Deutsche Kreditbank checking new
- DE Deutsche Kreditbank credit card
- DE Fiducia (Volksbank, Sparda-Bank, BBBank, PSD Bank, Raiffeisen, ...)
- DE ING-DiBa
- DE Kreissparkasse
- DE N26
- DE Ostseesparkasse Rostock checking
- DE Ostseesparkasse Rostock credit card
- DE Sparkasse Rhein-Neckar-Nord
- DE Sparkasse Südholstein
- DK Bankernes EDB Central
- DK Danske Bank
- DK Jyske Bank VISA
- DK Nordea
- DK Portalbank
- Hibiscus banking software
- HU Erste Bank checking
- HU K&H
- HU OTP
- IE AIB Ireland
- IE Bank of Ireland
- IE First South Credit Union
- IE N26
- IE Ulster Bank, savings
- IT RomagnaBanca Inbank
- LV Swedbank
- Mint
- MV Bank of Maldives, checking
- NETELLER
- NL American Express (AMEX)
- NL Bunq checking
- NL bunqDesktop software
- NL bunqDesktop software 2
- NL ING
- NL ING Checking 2020
- NL KNAB
- NL Rabobank
- NL Rabobank-2018
- NL RegioBank
- NL Rabobank Credit Card
- NO DNB
- NO Sparebank 1 VISA
- Personal Capital
- PL Alior Bank
- PL mBank
- PL PKO BP
- PL Bank Pekao
- Revolut
- SE Handelsbanken
- SE Länsförsäkringar checking
- SE Morrow Bank
- SE
Related Skills
node-connect
348.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
348.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
348.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
