{"id":44957,"library":"fints","title":"fints","description":"Pure-python implementation of FinTS 3.0 (formerly HBCI) for online banking in Germany. Current version 5.0.0 requires Python >=3.9. Release cadence is irregular, with major updates every few years.","status":"active","version":"5.0.0","language":"python","source_language":"en","source_url":"https://github.com/raphaelm/python-fints","tags":["fints","hbci","online-banking","germany"],"install":[{"cmd":"pip install fints","lang":"bash","label":"Default install"}],"dependencies":[],"imports":[{"note":"FinTSClient no longer exists; use FinTS3PinTanClient.","wrong":"from fints.client import FinTSClient","symbol":"FinTS3PinTanClient","correct":"from fints.client import FinTS3PinTanClient"},{"note":"Segment is a base class; use FinTS3Segment or other specific segment types.","wrong":"from fints.segments import Segment","symbol":"FinTS3Segment","correct":"from fints.segments import FinTS3Segment"}],"quickstart":{"code":"import os\nfrom fints.client import FinTS3PinTanClient\n\nBLZ = os.environ.get('BLZ', '12345678')\nUSERNAME = os.environ.get('FINTS_USERNAME', 'test')\nPIN = os.environ.get('FINTS_PIN', '1234')\nENDPOINT = os.environ.get('FINTS_ENDPOINT', 'https://banking.test/fints')\n\nclient = FinTS3PinTanClient(BLZ, USERNAME, PIN, ENDPOINT)\naccounts = client.get_accounts()\nfor account in accounts:\n    print(account.iban)","lang":"python","description":"Initialize FinTS client and list accounts."},"warnings":[{"fix":"Update imports: from fints.client import FinTS3PinTanClient.","message":"In v4 -> v5, the package now requires Python >=3.9 and the client class was renamed from FinTSClient to FinTS3PinTanClient. Old code will break.","severity":"breaking","affected_versions":"<5.0.0"},{"fix":"Switch to FinTS3PinTanClient if you were using any other client class.","message":"The old HBCI (non-Pin/TAN) protocol support is being phased out. FinTS3PinTanClient should be used for all new integrations.","severity":"deprecated","affected_versions":">=5.0.0"},{"fix":"Instantiate client with a custom product ID: FinTS3PinTanClient(..., product_id='MyApp/1.0').","message":"Bank endpoints often require a specific product ID (user-agent). The default may be blocked.","severity":"gotcha","affected_versions":"all"},{"fix":"Pass a TAN handler (e.g., a callback) during client creation: FinTS3PinTanClient(..., tan_mechanism='...').","message":"The client does not automatically handle TAN challenges for some banks. You may need to implement a TAN handler.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'3.0':8 '3.9':21 '5.0.0':18 'bank':13,36 'cadenc':23 'current':16 'everi':29 'fint':1,7,32 'former':9 'germani':15,37 'hbci':10,33 'implement':5 'irregular':25 'major':27 'onlin':12,35 'online-bank':34 'pure':3 'pure-python':2 'python':4,20 'releas':22 'requir':19 'updat':28 'version':17 'year':31","created_at":"2026-06-07T12:52:39.813757+00:00","updated_at":"2026-06-07T12:52:39.813757+00:00","problems":[{"fix":"Upgrade: pip install --upgrade fints==5.0.0 and use from fints.client import FinTS3PinTanClient.","cause":"Old import path or outdated version of fints.","error":"fints.client not found"},{"fix":"Run: pip install fints","cause":"Package not installed.","error":"ModuleNotFoundError: No module named 'fints'"},{"fix":"Provide the endpoint URL explicitly when creating the client.","cause":"Bank not in internal database or wrong BLZ.","error":"ValueError: Unknown bank with BLZ ..."}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/raphaelm/python-fints","github":"https://github.com/raphaelm/python-fints","docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["finance"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}