Skip to main content

Reading and converting PDF bank reports

Project description

Description

This script allows to read PDF bank statements from the GLS Bank. Even so, the banks online manager supports exporting of CSV files, this works only for the past three month whereas PDF account statements are kept for at least two years.

So if, you forced to automatically analyse past bank transactions, this script will help you.

The tool also supports reading the CSV files (which include more information), so you can analyse them.

I also tested it with Banking records from the Triodos Bank and it works well. They both using the same banking system, so maybe also other "Volksbank" or "Raiffeisenbank" work as well. Write me an issue

I tested it with the following Banking records so far:

  • GLS 2014-2020
  • Triodos 2020

Dependencies

  • python >= 3.6
  • pdftotext(part of poppler-utils)
  • jupyter-notebook [Optional]

Installation

Variant One

Install using pip install bank-statement-reader

Advantage:

  • Easy to install

Disadvantage:

  • some features like the booking/personal.py file depend on modifying the package the package source before installing, which won't work using this method

Variant Two

Clone the repro locally, create and activate a new virtual environment and run pip install -e . within the project folder.

Usage

After installation, you have a new command statement2csv available.

usage: statement2csv [-h] [--out out.csv] statement.pdf [statement.pdf ...]

Convert banking statements (PDF & CSV) to an analysed standard csv form.

positional arguments:
  statement.pdf  files to open and convert

optional arguments:
  -h, --help     show this help message and exit
  --out out.csv  csv file to write the results to

        If no filename is given, the file will be saved to
            basename_first_file_%date_string%.csv.
        %date_string% will be always replaced to 'YYYY-mm-dd_to_YYYY-mm-dd'
                                                 start date  to   end date

Another way to use the project is to use jupyter-notebook for fast analysing data. See example.ipynb for an idea how to use it.

Data Protection Note

As bank statement data is highly sensitive, only very general rules for categorizing were pushed to this git.

Use src/bank_statement_reader/bookings/personal.py for customizations of categories and payees. You only to create this file with a content like the following, and it will be used automatically.

from bank_statement_reader.booking.booking_base import BookingBase

class Booking(BookingBase):
    def _set_payee(self, value: str):
        """your custom functions here"""
        super()._set_payee(value)

    def _get_category(self):
        """your custom stuff here"""
        return super()._get_category()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bank_statement_reader-0.1.2.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

bank_statement_reader-0.1.2-py2.py3-none-any.whl (17.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bank_statement_reader-0.1.2.tar.gz.

File metadata

  • Download URL: bank_statement_reader-0.1.2.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.12

File hashes

Hashes for bank_statement_reader-0.1.2.tar.gz
Algorithm Hash digest
SHA256 792c58e200b97781d6d4fc19f784cf4f8ec24e68cbfcc8da9b30cd0422fa8f51
MD5 87c3a7736e2c4f3ac593bde2e6effafa
BLAKE2b-256 08db31dd00f27657454f3c9cc06f1e9ff0c99e5bb88addb8fabdbcdb5ce0efe5

See more details on using hashes here.

File details

Details for the file bank_statement_reader-0.1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: bank_statement_reader-0.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.6.12

File hashes

Hashes for bank_statement_reader-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bc83132569cf88ce2f5b58c940d626f97529c54792d421a76378157b83b14a03
MD5 efdeaa39c559f97726692c6242991cd6
BLAKE2b-256 b14dd98b7d5ab378b973913d6d95c1236a1a96daef1190f6a1ece5e3d5a784ba

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page