Skip to content

Commit

Permalink
Remove default product_id
Browse files Browse the repository at this point in the history
  • Loading branch information
raphaelm committed Apr 22, 2023
1 parent 70e0a93 commit d3ccb62
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 20 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
-----------
Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Library user documentation content
transfers
debits
tested
upgrading_3_4
upgrading_2_3
upgrading_1_2
trouble
Expand Down
33 changes: 17 additions & 16 deletions docs/quickstart.rst
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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,
Expand Down Expand Up @@ -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
11 changes: 11 additions & 0 deletions docs/upgrading_3_4.rst
Original file line number Diff line number Diff line change
@@ -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.
4 changes: 2 additions & 2 deletions fints/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit d3ccb62

Please sign in to comment.