diff --git a/README.md b/README.md index 62c6f4a..e54e42d 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,12 @@ PyFinTS This is a pure-python implementation of FinTS (formerly known as HBCI), a online-banking protocol commonly supported by German banks. - [Read our documentation for more info](https://python-fints.readthedocs.io) Maintenance Status ------------------ -This project is maintained, but with limited capacity. Working on this is takes a lot of time and testing since all banks do things differently and once you move a part here, you break an unexpected one over there. Therefore: Bugs will only be fixed by me if they occur with a bank where I have an account. New features will only be developed if I need them. PRs will be merged if they either have a very low risk of breaking things elsewhere (e.g. purely adding new commands) or if I can test them. In any case, things might take a little time until I have the bandwidth to focus on them. Sorry about that :( +This project is maintained, but with limited capacity. Working on this is takes a lot of time and testing since all banks do things differently and once you move a part here, you break an unexpected one over there. Therefore: Bugs will only be fixed by me if they occur with a bank where I have an account. New features will only be developed if I need them. PRs will be merged if they either have a very low risk of breaking things elsewhere (e.g. purely adding new commands) or if I can test them. In any case, things might take a little time until I have the bandwidth to focus on them. Sorry about that :( Limitations ----------- diff --git a/docs/index.rst b/docs/index.rst index 8746371..8ea371c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -20,6 +20,7 @@ Library user documentation content transfers debits tested + upgrading_3_4 upgrading_2_3 upgrading_1_2 trouble diff --git a/docs/quickstart.rst b/docs/quickstart.rst index cfd4912..b54ab6e 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -1,6 +1,21 @@ Getting started =============== +Register for a product ID +------------------------- + +As of September 14th, 2019, all FinTS client programs need to be registered with the ZKA. +You need to fill out a PDF form and will be assigned a product ID that you can pass to this library. +It can take up to two weeks for the product ID to be assigned. + +The reason for this requirement is compliance with the European Unions 2nd Payment Services Directive (PSD2) +which mandates that end-users can transparently see which applications are accessing their bank account. + +You cna find more information as well as the registration form on the `ZKA Website`_ (only available in German). + +Start coding +------------ + First of all, you need to install the library:: $ pip3 install fints @@ -21,7 +36,7 @@ of your bank. Logging in with a signature file or chip card is currently not sup 'myusername', # Your login name getpass.getpass('PIN:'), # Your banking PIN 'https://hbci-pintan.gad.de/cgi-bin/hbciservlet', - product_id='Your product ID' + product_id='Your product ID' # see above ) Since the implementation of PSD2, you will in almost all cases need to be ready to deal with TANs. For a quick start, @@ -49,18 +64,4 @@ commands using the client instance: Go on to the next pages to find out what commands are supported! -.. note:: - - As of September 14th, 2019, all FinTS programs should be registered with the ZKA or - banks will block access. You need to fill out a PDF form and will be assigned a - product ID that you can pass above. - - If you set the ``product_id`` to ``None``, the library will fill in the default - product ID for python-fints. This works fine for evaluation, but should never be used - if you bundle python-fints within a larger project. This might also not be acceptable - by some banks. - - Click here to read more about the `registration process`_. - - -.. _registration process: https://www.hbci-zka.de/register/prod_register.htm +.. _ZKA Website: https://www.hbci-zka.de/register/prod_register.htm \ No newline at end of file diff --git a/docs/upgrading_3_4.rst b/docs/upgrading_3_4.rst new file mode 100644 index 0000000..f421e86 --- /dev/null +++ b/docs/upgrading_3_4.rst @@ -0,0 +1,11 @@ +Upgrading from python-fints 3.x to 4.x +====================================== + +Release 4.0 of this library was made to introduce a breaking change: + +* You now need to register your application with the Deutsche Kreditwirtschaft (German banking association) and supply + your assigned product IT when initializing the library. + +The library used to have a built-in product ID that was used as a default if you didn't. This was very useful, but +Deutsche Kreditwirtschaft asked us to stop doing this, since it undermindes the whole point of the product registration. +The ID included in prior versions of the library will be deactivated at some point and stop working. diff --git a/fints/client.py b/fints/client.py index 28810b1..3273072 100644 --- a/fints/client.py +++ b/fints/client.py @@ -171,8 +171,8 @@ def __init__(self, raise TypeError("bank_identifier must be BankIdentifier or str (BLZ)") self.system_id = SYSTEM_ID_UNASSIGNED if not product_id: - logger.warning('You should register your program with the ZKA and pass your own product_id as a parameter.') - product_id = 'DC333D745719C4BD6A6F9DB6A' + raise TypeError("The product_id keyword argument is mandatory starting with python-fints version 4. See " + "https://python-fints.readthedocs.io/en/latest/upgrading_3_4.html for more information.") self.user_id = user_id self.customer_id = customer_id or user_id