Parse different banks' transaction files and import data to Google Sheets.
Bank parser support:
- NordeaFinland, Old side (tsv-format)
- OP (csv)
- Bank Norwegian Credit Card (xlsx)
- Binance Credit Card (xslx)
- NordeaSweden (xls) with currency conversion
- Handelsbanken Sweden (xls-html) with currency conversion
- Install Node
- Install Git
-
Clone this project to your machine. Run
npm install
. -
Make a copy of this sample sheet to your own account and use it as a base (header rows come from it): https://docs.google.com/spreadsheets/d/1F78PxLNPdAFrcS8XjPI_hTAyh4knTVqq8kd-8ilmDSA/.
-
Create and name the data sheets like this: If your name is
Aurelius
and your bank isOP
, name the sheetAurelius OP
. You'll setup this in sheet-config next. -
Copy
sheet-config.json.sample
tosheet-config.json
, and replace values with your own. -
Copy
.env.sample
to.env
. You don't need to set any vars yet. -
Go here and complete the "prerequisites" section: https://developers.google.com/sheets/api/quickstart/nodejs.
- Create a project in Google Cloud Platform
- Go to "APIs and Services" and enable the Google Sheets API for it
- Go to Credentials -section under the APIs and Services, and create OAuth 2 client ID credentials for a desktop app. Download the resulting json file, rename it to
credentials.json
and put to root of this project. - Go to OAuth Consent Screen -section under the APIs and Services, and add your gmail-account to a test user list.
- Run the app with
npm start
. SelectNothing
, then your user, and whatever bank. Last selectLoginToSheets
. - This should trigger OAuth flow. Follow instructions, and you end up with a
token.json
in your root folder. After this you can start using the app.
-
OPTIONAL. If you need exchange rates, create a free account to https://exchangeratesapi.io/ and add access-key to .env.
- Get an export xls, csv, txt file from your bank, and drop it to the root of this project.
- Run app with
npm start
. - First select the file you want to import, then your user, then your bank.
- Last select
Import
if you want to add transactions to GSheets. You can also dry-run by reading the sheet's current content, or read the file's content without making changes.
- Basic Read sheets
- Basic write transactions to sheets
- Read sheets and filter transactions based on it, so we don't add duplicate data
- Write data by appending to end of file
- Add support to read OP
- Add support to read Nordea Sweden
- Add support to read Handelsbanken Sweden
- Add support to read Norwegian (Finland)
- Bank detection from files won't work. Change to interactive console instead.
- Do not add Handelsbankens if message has a prefix "Prel "
- Do not add Norwegian's "Katevaraus" type
- Add support to read Binance Card
- Turn this into a hosted service which can be triggered with a Telegram bot.
- Change currency exchange library to something newer. Current has dependencies to deprecated libs.