Reading operations¶
Note
Starting from version 3, all of the methods on this page can return a NeedTANResponse
instead of actual
data if your bank requires a TAN. You should then enter a TAN, read our chapter Working with TANs to find out more.
Fetching your bank accounts¶
The most simple method allows you to get all bank accounts that your user has access to:
-
class
fints.client.
FinTS3Client
(bank_identifier, user_id, customer_id=None, from_data: bytes = None, product_id=None, product_version='4.0.0', mode=<FinTSClientMode.INTERACTIVE: 'interactive'>)[source] -
get_sepa_accounts
()[source] Returns a list of SEPA accounts
Returns: List of SEPAAccount objects.
-
This method will return a list of named tuples of the following type:
-
class
fints.models.
SEPAAccount
(iban, bic, accountnumber, subaccount, blz)¶
You will need this account object for many further operations to show which account you want to operate on.
Fetching bank information¶
During the first interaction with the bank some meta information about the bank and your user is transmitted from the bank.
-
class
fints.client.
FinTS3Client
(bank_identifier, user_id, customer_id=None, from_data: bytes = None, product_id=None, product_version='4.0.0', mode=<FinTSClientMode.INTERACTIVE: 'interactive'>)[source] -
get_information
()[source] Return information about the connected bank.
Note: Can only be filled after the first communication with the bank. If in doubt, use a construction like:
f = FinTS3Client(...) with f: info = f.get_information()
Returns a nested dictionary:
bank: name: Bank Name supported_operations: dict(FinTSOperations -> boolean) supported_formats: dict(FinTSOperation -> ['urn:iso:std:iso:20022:tech:xsd:pain.001.003.03', ...]) supported_sepa_formats: ['urn:iso:std:iso:20022:tech:xsd:pain.001.003.03', ...] accounts: - iban: IBAN account_number: Account Number subaccount_number: Sub-Account Number bank_identifier: fints.formals.BankIdentifier(...) customer_id: Customer ID type: Account type currency: Currency owner_name: ['Owner Name 1', 'Owner Name 2 (optional)'] product_name: Account product name supported_operations: dict(FinTSOperations -> boolean) - ...
-
Fetching account balances¶
You can fetch the current balance of an account with the get_balance
operation.
-
class
fints.client.
FinTS3Client
(bank_identifier, user_id, customer_id=None, from_data: bytes = None, product_id=None, product_version='4.0.0', mode=<FinTSClientMode.INTERACTIVE: 'interactive'>)[source] -
get_balance
(account: fints.models.SEPAAccount)[source] Fetches an accounts current balance.
Parameters: account – SEPA account to fetch the balance Returns: A mt940.models.Balance object
-
This method will return a list of Balance
objects from the mt-940
library. You can find more information
in their documentation.
Reading account transactions¶
You can fetch the banking statement of an account within a certain timeframe with the get_transactions
operation.
-
class
fints.client.
FinTS3Client
(bank_identifier, user_id, customer_id=None, from_data: bytes = None, product_id=None, product_version='4.0.0', mode=<FinTSClientMode.INTERACTIVE: 'interactive'>)[source] -
get_transactions
(account: fints.models.SEPAAccount, start_date: datetime.date = None, end_date: datetime.date = None)[source] Fetches the list of transactions of a bank account in a certain timeframe.
Parameters: - account – SEPA
- start_date – First day to fetch
- end_date – Last day to fetch
Returns: A list of mt940.models.Transaction objects
-
get_transactions_xml
(account: fints.models.SEPAAccount, start_date: datetime.date = None, end_date: datetime.date = None) → list[source] Fetches the list of transactions of a bank account in a certain timeframe as camt.052.001.02 XML files. Returns both booked and pending transactions.
Parameters: - account – SEPA
- start_date – First day to fetch
- end_date – Last day to fetch
Returns: Two lists of bytestrings containing XML documents, possibly empty: first one for booked transactions, second for pending transactions
-
This method will return a list of Transaction
objects from the mt-940
library. You can find more information
in their documentation.
Fetching holdings¶
You can fetch the holdings of an account with the get_holdings
method:
-
class
fints.client.
FinTS3Client
(bank_identifier, user_id, customer_id=None, from_data: bytes = None, product_id=None, product_version='4.0.0', mode=<FinTSClientMode.INTERACTIVE: 'interactive'>)[source] -
get_holdings
(account: fints.models.SEPAAccount)[source] Retrieve holdings of an account.
Parameters: account – SEPAAccount to retrieve holdings for. Returns: List of Holding objects
-
This method will return a list of Holding
objects:
-
class
fints.models.
Holding
(ISIN, name, market_value, value_symbol, valuation_date, pieces, total_value, acquisitionprice)¶