These scripts takes the "CSV export" files generated by some internet banking websites into a well-formed CSV file format ready to import into popular personal finance software applications.
The problem is that the files that these banks generates are not standard comma-separated values (CSV) files. Some spreadsheet applications are able to open them but otherwise these files are not compatible with personal-finance software.
That’s where these scripts come in. Each script convert a particular bank’s dump and then creates a well-formed CSV file with a standard date format, ready for import.
Currently these banks and account types are supported:
- Oversea-Chinese Banking Corporation (OCBC) 360 (savings account).
- DBS Bank Ltd Savings.
- Bank Central Asia (BCA) Transaction history CSV.
- TransferWise Transaction CSV dump.
These scripts should work with a standard Python 2.7 installation. They were tested to run on on plain-vanilla macOS and its pre-installed Python distribution.
These installation steps should work on Unix or Unix-like systems (e.g. macOS, Linux, or BSD).
-
Download the repository
-
Mark the scripts as executable:
$ chmod a+x csv-bca.py csv-ocbc.py csv-dbs.py csv-transferwise.py
-
Create a symbolic link from
/usr/local/bin
to the script's installation directory:$ cd /usr/local/bin $ ln -s {path-to-download}/csv-dbs.py csv-dbs $ ln -s {path-to-download}/csv-ocbc.py csv-ocbc $ ln -s {path-to-download}/csv-bca.py csv-bca $ ln -s {path-to-download}/csv-transferwise.py csv-transferwise
If you are a Windows user, please adapt those steps to your system as necessary.
- Open your bank's Internet Banking website and download your transaction history into a CSV file.
- Run the conversion script against it, either
csv-dbs
,csv-ocbc
,csv-bca
orcsv-transferwise
- The first argument is your bank's CSV file as input.
- The second argument is where to write the processed CSV output.
- Import the resulting CSV output into your favorite personal finance software.
These scripts are provided under the BSD 2-clause open source license. Please refer to file LICENSE.md
for details.
I have been having this CSV conversion problem for a long time and have been solving it manually so far – that is, clean up the data manually using a text editor and a spreadsheet. I even wrote a blog post on the topic and see whether it would be worth to write an app around the issue. Apparently there was not much interest, hence I wrote these scripts just to solve my own problem. Please let us know if I was wrong and it's worth your time and money to have an easy-to-use app or service to do this.
Sasmito Adibowo
http://cutecoder.org