FinTS client library¶
This is a pure-python implementation of FinTS (formerly known as HBCI), a online-banking protocol commonly supported by German banks.
Library user documentation content¶
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
Then, you can initialize a FinTS client by providing your bank’s BLZ, your username and PIN as well as the HBCI endpoint of your bank. Logging in with a signature file or chip card is currently not supported. For example:
import logging
from datetime import date
import getpass
from fints.client import FinTS3PinTanClient
logging.basicConfig(level=logging.DEBUG)
f = FinTS3PinTanClient(
'123456789', # Your bank's BLZ
'myusername', # Your login name
getpass.getpass('PIN:'), # Your banking PIN
'https://hbci-pintan.gad.de/cgi-bin/hbciservlet',
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, we included a minimal command-line utility to help choose a TAN method:
from fints.utils import minimal_interactive_cli_bootstrap
minimal_interactive_cli_bootstrap(f)
You can then open up a real communication dialog to the bank with a with
statement and issue commands:
commands using the client instance:
with f:
# Since PSD2, a TAN might be needed for dialog initialization. Let's check if there is one required
if f.init_tan_response:
print("A TAN is required", f.init_tan_response.challenge)
tan = input('Please enter TAN:')
f.send_tan(f.init_tan_response, tan)
# Fetch accounts
accounts = f.get_sepa_accounts()
Go on to the next pages to find out what commands are supported!
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)¶
The client object¶
Storing and restoring client state¶
The FinTS3Client
object keeps some internal state that’s beneficial to keep
across invocations. This includes
- A system identifier that uniquely identifies this particular FinTS endpoint
- The Bank Parameter Data (BPD) with information about the bank and its advertised capabilities
- The User Parameter Data (UPD) with information about the user account and allowed actions
-
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] -
deconstruct
(including_private: bool = False) → bytes[source] Return state of this FinTSClient instance as an opaque datablob. You should not use this object after calling this method.
Information about the connection is implicitly retrieved from the bank and cached in the FinTSClient. This includes: system identifier, bank parameter data, user parameter data. It’s not strictly required to retain this information across sessions, but beneficial. If possible, an API user SHOULD use this method to serialize the client instance before destroying it, and provide the serialized data next time an instance is constructed.
Parameter including_private should be set to True, if the storage is sufficiently secure (with regards to confidentiality) to include private data, specifically, account numbers and names. Most often this is the case.
Note: No connection information is stored in the datablob, neither is the PIN.
-
set_data
(blob: bytes)[source] Restore a datablob created with deconstruct().
You should only call this method once, and only immediately after constructing the object and before calling any other method or functionality (e.g. __enter__()). For convenience, you can pass the from_data parameter to __init__().
-
Using the deconstruct()
/set_data()
facility is purely optional for reading operations, but may speed up the process because the BPD/UPD
can be cached and need not be transmitted again.
It may be required to use the facility for transaction operations if both parts of a two-step transaction
cannot be completed with the same FinTS3Client
object.
The deconstruct()
parameter include_private (defaults to False) enables
including the User Parameter Data in the datablob. Set this to True if you can sufficiently ensure the
privacy of the returned datablob (mostly: user name and account numbers).
If your system manages multiple users/identity contexts, you SHOULD keep distinct datablobs per user or context.
You SHOULD NOT call any other methods on the FinTS3Client
object
after calling deconstruct()
.
Keeping the dialog open¶
All FinTS operations happen in the context of a so-called “dialog”. The simple reading operations of this library will automatically open and close the dialog when necessary, but each opening and each closing takes one FinTS roundtrip.
For the case where multiple operations are to be performed one after the other you can indicate to the library
that you want to open a standing dialog and keep it open explicitly by entering the
FinTS3Client
as a context handler.
This can, and should be, complemented with the client state facility as follows:
datablob = ... # get from backend storage, or set to None
client = FinTS3PinTanClient(..., from_data=datablob)
with client:
accounts = client.get_sepa_accounts()
balance = client.get_balance(accounts[0])
transactions = client.get_transactions(accounts[0])
datablob = client.deconstruct()
# Store datablob to backend storage
For transactions involving TANs it may be required by the bank to issue both steps for one transaction within the same dialog. In this case it’s mandatory to use a standing dialog, because otherwise each step would be issued in its own, implicit, dialog.
Storing and restoring dialog state¶
-
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] -
pause_dialog
()[source] Pause a standing dialog and return the saved dialog state.
Sometimes, for example in a web app, it’s not possible to keep a context open during user input. In some cases, though, it’s required to send a response within the same dialog that issued the original task (f.e. TAN with TANTimeDialogAssociation.NOT_ALLOWED). This method freezes the current standing dialog (started with FinTS3Client.__enter__()) and returns the frozen state.
Commands MUST NOT be issued in the dialog after calling this method.
MUST be used in conjunction with deconstruct()/set_data().
Caller SHOULD ensure that the dialog is resumed (and properly ended) within a reasonable amount of time.
Example: client = FinTS3PinTanClient(..., from_data=None) with client: challenge = client.sepa_transfer(...) dialog_data = client.pause_dialog() # dialog is now frozen, no new commands may be issued # exiting the context does not end the dialog client_data = client.deconstruct() # Store dialog_data and client_data out-of-band somewhere # ... Some time passes ... # Later, possibly in a different process, restore the state client = FinTS3PinTanClient(..., from_data=client_data) with client.resume_dialog(dialog_data): client.send_tan(...) # Exiting the context here ends the dialog, unless frozen with pause_dialog() again.
-
resume_dialog
(dialog_data)[source]
-
Working with TANs¶
Many operations in FinTS will require a form of two-step authentication, called TANs. TANs are mostly required for operations that move money or change details of a bank account. TANs can be generated with a multitude of methods, including paper lists, smartcard readers, SMS messages, and smartphone apps.
TAN methods¶
Before doing any operations involving TANs, you should get a list of supported TAN mechanisms:
mechanisms = client.get_tan_mechanisms()
The returned dictionary maps identifiers (generally: three-digit numerals) to instances of a
TwoStepParametersCommon()
subclass with varying fields, depending on the
version of the two-step process and the bank.
The name field of these objects provides a user-friendly name of the TAN mechanism that you
can display to the user to choose from. To select a TAN mechanism, you can use
set_tan_mechanism()
, which takes the identifier used as
key in the get_tan_mechanisms()
return value.
If the description_required
attribute for the TAN mechanism is MUST
,
you will need to get a list of TAN media with get_tan_media()
and select the
appropriate one with set_tan_medium()
.
Have a look at the source code of minimal_interactive_cli_bootstrap()
for an example on how to
ask the user for these properties.
You may not change the active TAN mechanism or TAN medium within a standing dialog (see Storing and restoring dialog state).
The selection of the active TAN mechanism/medium is stored with the persistent client data (see Storing and restoring client state).
-
class
fints.client.
FinTS3PinTanClient
(bank_identifier, user_id, pin, server, customer_id=None, *args, **kwargs)[source] -
get_current_tan_mechanism
()[source]
-
get_tan_mechanisms
()[source] Get the available TAN mechanisms.
Note: Only checks for HITANS versions listed in IMPLEMENTED_HKTAN_VERSIONS.
Returns: Dictionary of security_function: TwoStepParameters objects.
-
get_tan_media
(media_type=fints.formals.TANMediaType2.ALL, media_class=fints.formals.TANMediaClass4.ALL)[source] Get information about TAN lists/generators.
Returns tuple of fints.formals.TANUsageOption and a list of fints.formals.TANMedia4 or fints.formals.TANMedia5 objects.
-
set_tan_mechanism
(security_function)[source]
-
set_tan_medium
(tan_medium)[source]
-
TAN challenges¶
When you try to perform an operation that requires a TAN to proceed, you will receive an object containing the bank’s challenge (and some internal data to continue the operation once the TAN has been processed):
-
class
fints.client.
NeedTANResponse
(command_seg, tan_request, resume_method=None, tan_request_structured=False)[source]¶ -
challenge
= None¶ Textual challenge to be displayed to the user
-
challenge_hhduc
= None¶ HHD_UC challenge to be transmitted to the TAN generator
-
challenge_html
= None¶ HTML-safe challenge text, possibly with formatting
-
challenge_matrix
= None¶ Matrix code challenge: tuple(mime_type, data)
-
challenge_raw
= None¶ Raw challenge as received by the bank
-
get_data
() → bytes[source]¶ Return a compressed datablob representing this object.
To restore the object, use
fints.client.NeedRetryResponse.from_data()
.
-
The challenge
attribute will contain human-readable instructions on how to proceed.
The challenge_html
attribute will possibly contain a nicer, formatted, HTML version of the challenge text
that you should prefer if your primary interface can render HTML. The contents are guaranteed to be proper and
clean (by using the bleach library): They can be used with mark_safe in Django.
The challenge_hhduc
attribute will contain the challenge to be used with a TAN generator device using the
Hand Held Device Unidirectional Coupling specification (such as a Flicker-Code).
Flicker-Code / optiTAN¶
If you want to use chipTAN with an optical TAN device, we provide utilities to print the flicker code on
a unix terminal. Just pass the challenge_hhd_uc
value to this method:
-
fints.hhd.flicker.
terminal_flicker_unix
(code, field_width=3, space_width=3, height=1, clear=False, wait=0.05)[source]¶ Re-encodes a flicker code and prints it on a unix terminal.
Parameters: - code – Challenge value
- field_width – Width of fields in characters (default: 3).
- space_width – Width of spaces in characters (default: 3).
- height – Height of fields in characters (default: 1).
- clear – Clear terminal after every line (default:
False
). - wait – Waiting interval between lines (default: 0.05).
You should probably catch for KeyboardInterrupts
to allow the user to abort the displaying and to continue
with the TAN:
try:
terminal_flicker_unix(result.challenge_hhduc)
except KeyboardInterrupt:
pass
photoTAN¶
If you want to use photoTAN, use the challenge_matrix
attribute to access the image file, e.g. by writing it to
a file:
with open("tan.png", "wb") as writer:
writer.write(result.challenge_matrix[1])
writer.close()
Sending the TAN¶
Once obtained the TAN, you can send it with the send_tan
client method:
-
class
fints.client.
FinTS3PinTanClient
(bank_identifier, user_id, pin, server, customer_id=None, *args, **kwargs)[source] -
send_tan
(challenge: fints.client.NeedTANResponse, tan: str)[source] Sends a TAN to confirm a pending operation.
Parameters: - challenge – NeedTANResponse to respond to
- tan – TAN value
Returns: Currently no response
-
For example:
tan = input('Please enter the TAN code: ')
result = client.send_tan(result, tan)
Storing and restoring TAN state¶
The get_data()
method and
from_data()
factory method can be used to store and restore
a TAN state object between steps.
-
class
fints.client.
NeedRetryResponse
[source]¶ Base class for Responses that need the operation to be externally retried.
A concrete subclass of this class is returned, if an operation cannot be completed and needs a retry/completion. Typical (and only) example: Requiring a TAN to be provided.
You SHOULD use this facility together with the client and dialog state restoration facilities:
client = FinTS3PinTanClient(...)
# Optionally: choose a tan mechanism with
# client.set_tan_mechanism(…)
with client:
response = client.sepa_transfer(...)
dialog_data = client.pause_dialog()
client_data = client.deconstruct()
tan_data = response.get_data()
tan_request = NeedRetryResponse.from_data(tan_data)
print("TAN request: {}".format(tan_request.challenge))
tan = input('Enter TAN: ')
tan_request = NeedRetryResponse.from_data(tan_data)
client = FinTS3PinTanClient(..., from_data=client_data)
with client.resume_dialog(dialog_data):
response = client.send_tan(tan_request, tan)
print(response.status)
print(response.responses)
Reference¶
-
class
fints.formals.
TwoStepParameters2
(*args, **kwargs)[source] -
name
Name des Zwei-Schritt-Verfahrens
Type: str
-
max_length_input
Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
Type: int
-
allowed_format
Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
text_return_value
Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
Type: str
-
max_length_return_value
Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
Type: int
-
number_of_supported_lists
Anzahl unterstützter aktiver TAN-Listen
Type: int
-
multiple_tans_allowed
Mehrfach-TAN erlaubt
Type: bool
-
tan_time_dialog_association
TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
tan_list_number_required
TAN-Listennummer erforderlich
Type: fints.formals.TANListNumberRequired
-
cancel_allowed
Auftragsstorno erlaubt
Type: bool
-
challenge_class_required
Challenge-Klasse erforderlich
Type: bool
-
challenge_value_required
Challenge-Betrag erforderlich
Type: bool
-
VERSION
TAN mechanism version
-
-
class
fints.formals.
TwoStepParameters3
(*args, **kwargs)[source] -
name
Name des Zwei-Schritt-Verfahrens
Type: str
-
max_length_input
Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
Type: int
-
allowed_format
Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
text_return_value
Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
Type: str
-
max_length_return_value
Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
Type: int
-
number_of_supported_lists
Anzahl unterstützter aktiver TAN-Listen
Type: int
-
multiple_tans_allowed
Mehrfach-TAN erlaubt
Type: bool
-
tan_time_dialog_association
TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
tan_list_number_required
TAN-Listennummer erforderlich
Type: fints.formals.TANListNumberRequired
-
cancel_allowed
Auftragsstorno erlaubt
Type: bool
-
challenge_class_required
Challenge-Klasse erforderlich
Type: bool
-
challenge_value_required
Challenge-Betrag erforderlich
Type: bool
-
initialization_mode
Initialisierungsmodus
Type: fints.formals.InitializationMode
-
description_required
Bezeichnung des TAN-Medium erforderlich
Type: fints.formals.DescriptionRequired
-
supported_media_number
Anzahl unterstützter aktiver TAN-Medien
Type: int
-
VERSION
TAN mechanism version
-
-
class
fints.formals.
TwoStepParameters5
(*args, **kwargs)[source] -
zka_id
ZKA TAN-Verfahren
Type: str
-
zka_version
Version ZKA TAN-Verfahren
Type: str
-
name
Name des Zwei-Schritt-Verfahrens
Type: str
-
max_length_input
Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
Type: int
-
allowed_format
Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
text_return_value
Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
Type: str
-
max_length_return_value
Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
Type: int
-
number_of_supported_lists
Anzahl unterstützter aktiver TAN-Listen
Type: int
-
multiple_tans_allowed
Mehrfach-TAN erlaubt
Type: bool
-
tan_time_dialog_association
TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
tan_list_number_required
TAN-Listennummer erforderlich
Type: fints.formals.TANListNumberRequired
-
cancel_allowed
Auftragsstorno erlaubt
Type: bool
-
sms_charge_account_required
SMS-Abbuchungskonto erforderlich
Type: fints.formals.SMSChargeAccountRequired
-
principal_account_required
Auftraggeberkonto erforderlich
Type: fints.formals.PrincipalAccountRequired
-
challenge_class_required
Challenge-Klasse erforderlich
Type: bool
-
challenge_structured
Challenge strukturiert
Type: bool
-
initialization_mode
Initialisierungsmodus
Type: fints.formals.InitializationMode
-
description_required
Bezeichnung des TAN-Medium erforderlich
Type: fints.formals.DescriptionRequired
-
supported_media_number
Anzahl unterstützter aktiver TAN-Medien
Type: int
-
VERSION
TAN mechanism version
-
Sending SEPA transfers¶
Simple mode¶
You can create a simple SEPA transfer using this convenient client 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] -
simple_sepa_transfer
(account: fints.models.SEPAAccount, iban: str, bic: str, recipient_name: str, amount: decimal.Decimal, account_name: str, reason: str, instant_payment=False, endtoend_id='NOTPROVIDED')[source] Simple SEPA transfer.
Parameters: - account – SEPAAccount to start the transfer from.
- iban – Recipient’s IBAN
- bic – Recipient’s BIC
- recipient_name – Recipient name
- amount – Amount as a
Decimal
- account_name – Sender account name
- reason – Transfer reason
- instant_payment – Whether to use instant payment (defaults to
False
) - endtoend_id – End-to-end-Id (defaults to
NOTPROVIDED
)
Returns: Returns either a NeedRetryResponse or TransactionResponse
-
You should then enter a TAN, read our chapter Working with TANs to find out more.
Advanced mode¶
If you want to use advanced methods, you can supply your own SEPA XML:
-
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] -
sepa_transfer
(account: fints.models.SEPAAccount, pain_message: str, multiple=False, control_sum=None, currency='EUR', book_as_single=False, pain_descriptor='urn:iso:std:iso:20022:tech:xsd:pain.001.001.03', instant_payment=False)[source] Custom SEPA transfer.
Parameters: - account – SEPAAccount to send the transfer from.
- pain_message – SEPA PAIN message containing the transfer details.
- multiple – Whether this message contains multiple transfers.
- control_sum – Sum of all transfers (required if there are multiple)
- currency – Transfer currency
- book_as_single – Kindly ask the bank to put multiple transactions as separate lines on the bank statement (defaults to
False
) - pain_descriptor – URN of the PAIN message schema used.
- instant_payment – Whether this is an instant transfer (defaults to
False
)
Returns: Returns either a NeedRetryResponse or TransactionResponse
-
Full example¶
client = FinTS3PinTanClient(...)
minimal_interactive_cli_bootstrap(client)
with client:
if client.init_tan_response:
print("A TAN is required", client.init_tan_response.challenge)
if getattr(client.init_tan_response, 'challenge_hhduc', None):
try:
terminal_flicker_unix(client.init_tan_response.challenge_hhduc)
except KeyboardInterrupt:
pass
tan = input('Please enter TAN:')
client.send_tan(client.init_tan_response, tan)
res = client.simple_sepa_transfer(
account=accounts[0],
iban='DE12345',
bic='BIC12345',
amount=Decimal('7.00'),
recipient_name='Foo',
account_name='Test',
reason='Birthday gift',
endtoend_id='NOTPROVIDED',
)
if isinstance(res, NeedTANResponse):
print("A TAN is required", res.challenge)
if getattr(res, 'challenge_hhduc', None):
try:
terminal_flicker_unix(res.challenge_hhduc)
except KeyboardInterrupt:
pass
tan = input('Please enter TAN:')
res = client.send_tan(res, tan)
print(res.status)
print(res.responses)
Creating SEPA debits¶
You can submit a SEPA debit XML file to the bank with the sepa_debit
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] -
sepa_debit
(account: fints.models.SEPAAccount, pain_message: str, multiple=False, cor1=False, control_sum=None, currency='EUR', book_as_single=False, pain_descriptor='urn:iso:std:iso:20022:tech:xsd:pain.008.003.01')[source] Custom SEPA debit.
Parameters: - account – SEPAAccount to send the debit from.
- pain_message – SEPA PAIN message containing the debit details.
- multiple – Whether this message contains multiple debits.
- cor1 – Whether to use COR1 debit (lead time reduced to 1 day)
- control_sum – Sum of all debits (required if there are multiple)
- currency – Debit currency
- book_as_single – Kindly ask the bank to put multiple transactions as separate lines on the bank statement (defaults to
False
) - pain_descriptor – URN of the PAIN message schema used. Defaults to
urn:iso:std:iso:20022:tech:xsd:pain.008.003.01
.
Returns: Returns either a NeedRetryResponse or TransactionResponse (with data[‘task_id’] set, if available)
-
You should then enter a TAN, read our chapter Working with TANs to find out more.
Full example¶
You can easily generate XML using the sepaxml
python library:
from sepaxml import SepaDD
config = {
"name": "Test Company",
"IBAN": "DE12345",
"BIC": "BIC12345",
"batch": False,
"creditor_id": "TESTCORPID",
"currency": "EUR",
}
sepa = SepaDD(config, schema="pain.008.002.02")
sepa.add_payment({
"name": "Customer",
"IBAN": "DE12345",
"BIC": "BIC12345",
"amount": 100,
"type": "OOFF", # FRST, RCUR, OOFF, FNAL
"collection_date": datetime.date.today() + datetime.timedelta(days=3),
"mandate_id": "FINTSTEST1",
"mandate_date": datetime.date(2018, 7, 26),
"description": "FinTS Test transaction",
})
pain_message = sepa.export().decode()
client = FinTS3PinTanClient(...)
minimal_interactive_cli_bootstrap(client)
with client:
if client.init_tan_response:
print("A TAN is required", client.init_tan_response.challenge)
if getattr(client.init_tan_response, 'challenge_hhduc', None):
try:
terminal_flicker_unix(client.init_tan_response.challenge_hhduc)
except KeyboardInterrupt:
pass
tan = input('Please enter TAN:')
client.send_tan(client.init_tan_response, tan)
res = client.sepa_debit(
account=accounts[0],
data=pain_message,
multiple=False,
control_sum=Decimal('1.00'),
pain_descriptor='urn:iso:std:iso:20022:tech:xsd:pain.008.002.02'
)
if isinstance(res, NeedTANResponse):
print("A TAN is required", res.challenge)
if getattr(res, 'challenge_hhduc', None):
try:
terminal_flicker_unix(res.challenge_hhduc)
except KeyboardInterrupt:
pass
tan = input('Please enter TAN:')
res = client.send_tan(res, tan)
print(res.status)
print(res.responses)
Tested banks¶
The following banks have been tested with version 3.x of this library:
Bank | Transactions and Balance | Holdings | Transfer | Debits |
---|---|---|---|---|
Postbank | Yes | |||
BBBank eG | Yes | Yes | ||
Sparkasse Heidelberg | Yes | |||
comdirect | Yes |
Tested security functions¶
902
“photoTAN”921
“pushTAN”930
“mobile TAN”942
“mobile TAN”962
“Smart-TAN plus manuell”972
“Smart-TAN plus optisch”
Legacy results¶
The following banks have been tested with the old version 1.x of this library:
Bank | Statements | Holdings | Transfer | Debits |
---|---|---|---|---|
BBBank eG | Yes | Yes | ||
CortalConsors | Yes | Yes | ||
comdirect | Yes | |||
GLS Bank eG | Yes | Yes | Yes | |
DKB | Yes | |||
ING DiBa | Yes | |||
netbank | Yes | |||
NIBC Direct | Yes | |||
Postbank | Yes | |||
Sparkasse | Yes | |||
Triodos Bank | Yes | |||
Volksbank (Fiducia) | Yes | |||
Wüstenrot | Yes | |||
1822direkt | Yes | Yes |
The following banks have been tested with the old version 2.x of this library:
Bank | Transactions and Balance | Holdings | Transfer | Debits |
---|---|---|---|---|
GLS Bank eG | Yes | Yes | Yes | |
Postbank | Yes | |||
Triodos Bank | Yes | Yes | ||
Volksbank Darmstadt-Südhessen | Yes | Yes | ||
Deutsche Skatbank | Yes | Yes | ||
BBBank eG | Yes | Yes | ||
MLP Banking AG | Yes |
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.
Upgrading from python-fints 2.x to 3.x¶
Release 3.0 of this library was made to adjust to changes made by the banks as part of their PSD2 implementation in 2019. Here’s what you should know when porting your code:
- A TAN can now be required for dialog initialization. In this case,
client.init_tan_response
will contain aNeedTANResponse
. - Basically every method of the client class can now return a
NeedTANResponse
, so you should always expect this case and handle it gracefully. - Since everything can require a TAN, everything requires a standing dialog. Issuing interactive commands outside of a
with client:
statement is now deprecated. It still might work in very few cases, so we didn’t disable it, but we do not support it any longer. This affects you mostly when you work with this on a Python REPL or e.g. in a Notebook.
Upgrading from python-fints 1.x to 2.x¶
This library has seen a major rewrite in version 2.0 and the API has changed in a lot of places. These are the most important changes to know:
- The
get_statement
method was renamed toget_transactions
. → Reading account transactions - The
start_simple_sepa_transfer
method was renamed tosimple_sepa_transfer
and no longer takes a TAN method and TAN medium description as an argument. → Sending SEPA transfers - The
start_sepa_transfer
method was renamed tosepa_transfer
and no longer takes a TAN method and TAN medium description as an argument. The new parameterpain_descriptor
should be passed with the version of the PAIN format, e.g.urn:iso:std:iso:20022:tech:xsd:pain.001.001.03
. → Sending SEPA transfers - The
start_sepa_debit
method was renamed tosepa_debit
and no longer takes a TAN method and TAN medium description as an argument. The new parameterpain_descriptor
should be passed with the version of the PAIN format, e.g.urn:iso:std:iso:20022:tech:xsd:pain.008.003.01
. Also, a new parametercor1
is optionally available. → Creating SEPA debits - Working with TANs has changed a lot.
get_tan_methos
has been renamed toget_tan_mechanisms
and has a new return data type. The chosen TAN method is now set on a client level withset_tan_mechanism
andset_tan_medium
. You can find more information in the chapter Working with TANs and a full example in the chapter Sending SEPA transfers. - Debug logging output now contains parsed syntax structures instead of data blobs and is much easier to read.
- A new parser for FinTS has been added that is more robust and performs more validation.
In exchange, you get a couple of great new features:
- A new method
fints.client.FinTS3Client.get_information()
was added. → Fetching bank information - It is now possible to serialize and store the state of the client to enable multi-step operations in a stateless environment. → Storing and restoring client state
Troubleshooting and bug reporting¶
The FinTS specification is long and complicated and in many parts leaves things open to interpretation – or sometimes implementors interpret things differently even though they’re not really open to interpretation. This is valid for us, but also for the banks. Making the library work with many different banks is hard, and often impossible without access to a test account. Therefore, we ask you for patience when reporting issues with different banks – and you need to be ready that we might not be able to help you because we do not have the time or bank account required to dig deeper.
Therefore, if you run into trouble with this library, you first need to ask yourself a very important question: Is it me or the library? To answer this question for most cases, we have attached a script below, that we ask you to use to try the affected feature of the library in a well-documented way. Apart from changing the arguments (i.e. your bank’s parameters and your credentials) at the top, we ask you not to make any modifications. Pasting this bit by bit into a Jupyter notebook is a modification. If your issue does not include information as to whether the script below works or does not work for your bank, we will close your issue without further comment.
If the script below does not work for you, there is probably a compatibility issue between this library and your bank. Feel free to open an issue, but make sure the issue title includes the name of the bank and the text includes what operations specifically fail.
If the script below does work for you, there is probably something wrong with your usage of the library or our documentation. Feel free to open an issue, but include full working example code that is necessary to reproduce the problem.
Note
Before posting anything on GitHub, make sure it does not contain your username, PIN, IBAN, or similarly sensitive data.
import datetime
import getpass
import logging
import sys
from decimal import Decimal
from fints.client import FinTS3PinTanClient, NeedTANResponse, FinTSUnsupportedOperation
from fints.hhd.flicker import terminal_flicker_unix
from fints.utils import minimal_interactive_cli_bootstrap
logging.basicConfig(level=logging.DEBUG)
client_args = (
'REPLACEME', # BLZ
'REPLACEME', # USER
getpass.getpass('PIN: '),
'REPLACEME' # ENDPOINT
)
f = FinTS3PinTanClient(*client_args)
minimal_interactive_cli_bootstrap(f)
def ask_for_tan(response):
print("A TAN is required")
print(response.challenge)
if getattr(response, 'challenge_hhduc', None):
try:
terminal_flicker_unix(response.challenge_hhduc)
except KeyboardInterrupt:
pass
tan = input('Please enter TAN:')
return f.send_tan(response, tan)
# Open the actual dialog
with f:
# Since PSD2, a TAN might be needed for dialog initialization. Let's check if there is one required
if f.init_tan_response:
ask_for_tan(f.init_tan_response)
# Fetch accounts
accounts = f.get_sepa_accounts()
if isinstance(accounts, NeedTANResponse):
accounts = ask_for_tan(accounts)
if len(accounts) == 1:
account = accounts[0]
else:
print("Multiple accounts available, choose one")
for i, mm in enumerate(accounts):
print(i, mm.iban)
choice = input("Choice: ").strip()
account = accounts[int(choice)]
# Test pausing and resuming the dialog
dialog_data = f.pause_dialog()
client_data = f.deconstruct(including_private=True)
f = FinTS3PinTanClient(*client_args, from_data=client_data)
with f.resume_dialog(dialog_data):
while True:
operations = [
"End dialog",
"Fetch transactions of the last 30 days",
"Fetch transactions of the last 120 days",
"Fetch transactions XML of the last 30 days",
"Fetch transactions XML of the last 120 days",
"Fetch information",
"Fetch balance",
"Fetch holdings",
"Fetch scheduled debits",
"Fetch status protocol",
"Make a simple transfer"
]
print("Choose an operation")
for i, o in enumerate(operations):
print(i, o)
choice = int(input("Choice: ").strip())
try:
if choice == 0:
break
elif choice == 1:
res = f.get_transactions(account, datetime.date.today() - datetime.timedelta(days=30),
datetime.date.today())
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print("Found", len(res), "transactions")
elif choice == 2:
res = f.get_transactions(account, datetime.date.today() - datetime.timedelta(days=120),
datetime.date.today())
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print("Found", len(res), "transactions")
elif choice == 3:
res = f.get_transactions_xml(account, datetime.date.today() - datetime.timedelta(days=30),
datetime.date.today())
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print("Found", len(res[0]) + len(res[1]), "XML documents")
elif choice == 4:
res = f.get_transactions_xml(account, datetime.date.today() - datetime.timedelta(days=120),
datetime.date.today())
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print("Found", len(res[0]) + len(res[1]), "XML documents")
elif choice == 5:
print(f.get_information())
elif choice == 6:
res = f.get_balance(account)
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print(res)
elif choice == 7:
res = f.get_holdings(account)
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print(res)
elif choice == 8:
res = f.get_scheduled_debits(account)
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print(res)
elif choice == 9:
res = f.get_status_protocol()
while isinstance(res, NeedTANResponse):
res = ask_for_tan(res)
print(res)
elif choice == 10:
res = f.simple_sepa_transfer(
account=accounts[0],
iban=input('Target IBAN:'),
bic=input('Target BIC:'),
amount=Decimal(input('Amount:')),
recipient_name=input('Recipient name:'),
account_name=input('Your name:'),
reason=input('Reason:'),
endtoend_id='NOTPROVIDED',
)
if isinstance(res, NeedTANResponse):
ask_for_tan(res)
except FinTSUnsupportedOperation as e:
print("This operation is not supported by this bank:", e)
Library developer documentation content¶
Developer documentation/API¶
This part of the documentation is for you if you want to improve python-fints, but also if you just want to look behind the curtain.
Parsing and serialization¶
Example usage:
>>> message = (b'HNHBK:1:3+000000000428+300+430711670077=043999659571CN9D=+2+430711670077=043'
... b"999659571CN9D=:2'HNVSK:998:3+PIN:1+998+1+2::oIm3BlHv6mQBAADYgbPpp?+kWrAQA+1+"
... b"2:2:13:@8@00000000:5:1+280:15050500:hermes:S:0:0+0'HNVSD:999:1+@195@HNSHK:2:"
... b'4+PIN:1+999+9166926+1+1+2::oIm3BlHv6mQBAADYgbPpp?+kWrAQA+1+1+1:999:1+6:10:16'
... b"+280:15050500:hermes:S:0:0'HIRMG:3:2+0010::Nachricht entgegengenommen.+0100:"
... b":Dialog beendet.'HNSHA:4:2+9166926''HNHBS:5:1+2'")
>>> from fints.parser import FinTS3Parser
>>> s = FinTS3Parser().parse_message(message)
>>> s
SegmentSequence([fints.segments.HNHBK3(header=fints.formals.SegmentHeader('HNHBK', 1, 3), message_size='000000000428', hbci_version=300, dialog_id='430711670077=043999659571CN9D=', message_number=2, reference_message=fints.formals.ReferenceMessage(dialog_id='430711670077=043999659571CN9D=', message_number=2)), fints.segments.HNVSK3(header=fints.formals.SegmentHeader('HNVSK', 998, 3), security_profile=fints.formals.SecurityProfile(security_method='PIN', security_method_version=1), security_function='998', security_role='1', security_identification_details=fints.formals.SecurityIdentificationDetails(name_party='2', cid=None, identifier_party='oIm3BlHv6mQBAADYgbPpp+kWrAQA'), security_datetime=fints.formals.SecurityDateTime(datetime_type='1'), encryption_algorithm=fints.formals.EncryptionAlgorithm(usage_encryption='2', operation_mode='2', encryption_algorithm='13', algorithm_parameter_value=b'00000000', algorithm_parameter_name='5', algorithm_parameter_iv_name='1'), key_name=fints.formals.KeyName(bank_identifier=fints.formals.BankIdentifier(country_identifier='280', bank_code='15050500'), user_id='hermes', key_type='S', key_number=0, key_version=0), compression_function='0'), fints.segments.HNVSD1(header=fints.formals.SegmentHeader('HNVSD', 999, 1), data=SegmentSequence([fints.segments.HNSHK4(header=fints.formals.SegmentHeader('HNSHK', 2, 4), security_profile=fints.formals.SecurityProfile(security_method='PIN', security_method_version=1), security_function='999', security_reference='9166926', security_application_area='1', security_role='1', security_identification_details=fints.formals.SecurityIdentificationDetails(name_party='2', cid=None, identifier_party='oIm3BlHv6mQBAADYgbPpp+kWrAQA'), security_reference_number=1, security_datetime=fints.formals.SecurityDateTime(datetime_type='1'), hash_algorithm=fints.formals.HashAlgorithm(usage_hash='1', hash_algorithm='999', algorithm_parameter_name='1'), signature_algorithm=fints.formals.SignatureAlgorithm(usage_signature='6', signature_algorithm='10', operation_mode='16'), key_name=fints.formals.KeyName(bank_identifier=fints.formals.BankIdentifier(country_identifier='280', bank_code='15050500'), user_id='hermes', key_type='S', key_number=0, key_version=0)), fints.segments.HIRMG2(header=fints.formals.SegmentHeader('HIRMG', 3, 2), responses=[fints.formals.Response(code='0010', reference_element=None, text='Nachricht entgegengenommen.'), fints.formals.Response(code='0100', reference_element=None, text='Dialog beendet.')]), fints.segments.HNSHA2(header=fints.formals.SegmentHeader('HNSHA', 4, 2), security_reference='9166926')])), fints.segments.HNHBS1(header=fints.formals.SegmentHeader('HNHBS', 5, 1), message_number=2)])
>>> from fints.parser import FinTS3Serializer
>>> FinTS3Serializer().serialize_message(s)
b"HNHBK:1:3+000000000428+300+430711670077=043999659571CN9D=+2+430711670077=043999659571CN9D=:2'HNVSK:998:3+PIN:1+998+1+2::oIm3BlHv6mQBAADYgbPpp?+kWrAQA+1+2:2:13:@8@00000000:5:1+280:15050500:hermes:S:0:0+0'HNVSD:999:1+@195@HNSHK:2:4+PIN:1+999+9166926+1+1+2::oIm3BlHv6mQBAADYgbPpp?+kWrAQA+1+1+1:999:1+6:10:16+280:15050500:hermes:S:0:0'HIRMG:3:2+0010::Nachricht entgegengenommen.+0100::Dialog beendet.'HNSHA:4:2+9166926''HNHBS:5:1+2'"
Note
In general parsing followed by serialization is not idempotent: A message may contain empty list elements at the end, but our serializer will never generate them.
FinTS Segments¶
A segment is the core communication workhorse in FinTS. Each segment has a header of fixed format, which includes the segment type (“Segmentkennung”), number within the message, version, and, optionally, the number of the segment of another message it is in response or relation to (“Bezugssegment”).
The header is followed by a nested structure of fields and groups of fields, the exact specification of which depends on the segment type and version.
All segment classes derive from FinTS3Segment
, which specifies the header
attribute of SegmentHeader
type.
-
class
fints.segments.base.
FinTS3Segment
(*args, **kwargs)[source]¶ -
TYPE
¶ Segment type. Will be determined from the class name in subclasses, if the class name consists only of uppercase characters followed by decimal digits. Subclasses may explicitly set a class attribute instead.
-
VERSION
¶ Segment version. Will be determined from the class name in subclasses, if the class name consists only of uppercase characters followed by decimal digits. Subclasses may explicitly set a class attribute instead.
-
classmethod
find_subclass
(segment: list)[source]¶ Parse the given
segment
parameter as aSegmentHeader
and return a subclass with matching type and version class attributes.
-
header
¶ Segmentkopf
Type: fints.formals.SegmentHeader
-
print_nested
(stream=None, level=0, indent=' ', prefix='', first_level_indent=True, trailer='', print_doc=True, first_line_suffix='')¶ Structured nested print of the object to the given stream.
The print-out is eval()able to reconstruct the object.
-
The FinTS3Segment
class and its base classes employ a number of dynamic programming techniques so that derived classes need only specify the name, order and type of fields. All type conversion, construction etc. will take place automatically. All derived classes basically should behave “as expected”, returning only native Python datatypes.
Consider this example segment class:
class HNHBS1(FinTS3Segment):
message_number = DataElementField(type='num', max_length=4)
Calling print_nested
on an instance of this class might output:
fints.segments.HNHBS1(
header = fints.formals.SegmentHeader('HNHBS', 4, 1),
message_number = 1,
)
All Segments¶
fints.segments.accounts module¶
-
class
fints.segments.accounts.
HISPA1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
SEPA-Kontoverbindung rückmelden, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HISPA'¶
-
VERSION
= 1¶
-
accounts
¶ SEPA-Kontoverbindung
Type: fints.formals.KTZ1
-
-
class
fints.segments.accounts.
HISPAS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
SEPA-Kontoverbindung anfordern, Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HISPAS'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter SEPA-Kontoverbindung anfordern
Type: fints.formals.GetSEPAAccountParameter1
-
-
class
fints.segments.accounts.
HKSPA1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
SEPA-Kontoverbindung anfordern, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKSPA'¶
-
VERSION
= 1¶
-
accounts
¶ Kontoverbindung
Type: fints.formals.Account3
-
fints.segments.auth module¶
-
class
fints.segments.auth.
HIPINS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
PIN/TAN-spezifische Informationen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HIPINS'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter PIN/TAN-spezifische Informationen
Type: fints.formals.ParameterPinTan
-
-
class
fints.segments.auth.
HITAB4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
TAN-Generator/Liste anzeigen Bestand Rückmeldung, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HITAB'¶
-
VERSION
= 4¶
-
tan_media_list
¶ TAN-Medium-Liste
Type: fints.formals.TANMedia4
-
tan_usage_option
¶ TAN_Einsatzoption
Type: fints.formals.TANUsageOption
-
-
class
fints.segments.auth.
HITAB5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
TAN-Generator/Liste anzeigen Bestand Rückmeldung, version 5
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HITAB'¶
-
VERSION
= 5¶
-
tan_media_list
¶ TAN-Medium-Liste
Type: fints.formals.TANMedia5
-
tan_usage_option
¶ TAN_Einsatzoption
Type: fints.formals.TANUsageOption
-
-
class
fints.segments.auth.
HITAN2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung Rückmeldung, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HITAN'¶
-
VERSION
= 2¶
-
challenge_valid_until
¶ Gültigkeitsdatum und -uhrzeit für Challenge
Type: fints.formals.ChallengeValidUntil
-
-
class
fints.segments.auth.
HITAN3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung Rückmeldung, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HITAN'¶
-
VERSION
= 3¶
-
challenge_valid_until
¶ Gültigkeitsdatum und -uhrzeit für Challenge
Type: fints.formals.ChallengeValidUntil
-
-
class
fints.segments.auth.
HITAN5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung Rückmeldung, version 5
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HITAN'¶
-
VERSION
= 5¶
-
challenge_valid_until
¶ Gültigkeitsdatum und -uhrzeit für Challenge
Type: fints.formals.ChallengeValidUntil
-
-
class
fints.segments.auth.
HITAN6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung Rückmeldung, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HITAN'¶
-
VERSION
= 6¶
-
challenge_valid_until
¶ Gültigkeitsdatum und -uhrzeit für Challenge
Type: fints.formals.ChallengeValidUntil
-
-
class
fints.segments.auth.
HITANS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.auth.HITANSBase
-
TYPE
= 'HITANS'¶
-
VERSION
= 1¶
-
parameter
¶ Type: fints.formals.ParameterTwostepTAN1
-
-
class
fints.segments.auth.
HITANS2
(*args, **kwargs)[source]¶ Bases:
fints.segments.auth.HITANSBase
-
TYPE
= 'HITANS'¶
-
VERSION
= 2¶
-
parameter
¶ Type: fints.formals.ParameterTwostepTAN2
-
-
class
fints.segments.auth.
HITANS3
(*args, **kwargs)[source]¶ Bases:
fints.segments.auth.HITANSBase
-
TYPE
= 'HITANS'¶
-
VERSION
= 3¶
-
parameter
¶ Type: fints.formals.ParameterTwostepTAN3
-
-
class
fints.segments.auth.
HITANS4
(*args, **kwargs)[source]¶ Bases:
fints.segments.auth.HITANSBase
-
TYPE
= 'HITANS'¶
-
VERSION
= 4¶
-
parameter
¶ Type: fints.formals.ParameterTwostepTAN4
-
-
class
fints.segments.auth.
HITANS5
(*args, **kwargs)[source]¶ Bases:
fints.segments.auth.HITANSBase
-
TYPE
= 'HITANS'¶
-
VERSION
= 5¶
-
parameter
¶ Type: fints.formals.ParameterTwostepTAN5
-
-
class
fints.segments.auth.
HITANS6
(*args, **kwargs)[source]¶ Bases:
fints.segments.auth.HITANSBase
-
TYPE
= 'HITANS'¶
-
VERSION
= 6¶
-
parameter
¶ Type: fints.formals.ParameterTwostepTAN6
-
-
class
fints.segments.auth.
HITANSBase
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
-
TYPE
= None¶
-
VERSION
= None¶
-
-
class
fints.segments.auth.
HKIDN2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Identifikation, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HKIDN'¶
-
VERSION
= 2¶
-
bank_identifier
¶ Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
system_id_status
¶ Kundensystem-Status
Type: fints.formals.SystemIDStatus
-
-
class
fints.segments.auth.
HKTAB4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
TAN-Generator/Liste anzeigen Bestand, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HKTAB'¶
-
VERSION
= 4¶
-
tan_media_class
¶ TAN-Medium-Klasse
Type: fints.formals.TANMediaClass3
-
tan_media_type
¶ TAN-Medium-Art
Type: fints.formals.TANMediaType2
-
-
class
fints.segments.auth.
HKTAB5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
TAN-Generator/Liste anzeigen Bestand, version 5
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HKTAB'¶
-
VERSION
= 5¶
-
tan_media_class
¶ TAN-Medium-Klasse
Type: fints.formals.TANMediaClass4
-
tan_media_type
¶ TAN-Medium-Art
Type: fints.formals.TANMediaType2
-
-
class
fints.segments.auth.
HKTAN2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HKTAN'¶
-
VERSION
= 2¶
-
parameter_challenge_class
¶ Parameter Challenge-Klasse
Type: fints.formals.ParameterChallengeClass
-
-
class
fints.segments.auth.
HKTAN3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HKTAN'¶
-
VERSION
= 3¶
-
parameter_challenge_class
¶ Parameter Challenge-Klasse
Type: fints.formals.ParameterChallengeClass
-
-
class
fints.segments.auth.
HKTAN5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung, version 5
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HKTAN'¶
-
VERSION
= 5¶
-
account
¶ Kontoverbindung international Auftraggeber
Type: fints.formals.KTI1
-
parameter_challenge_class
¶ Parameter Challenge-Klasse
Type: fints.formals.ParameterChallengeClass
-
sms_charge_account
¶ SMS-Abbuchungskonto
Type: fints.formals.KTI1
-
-
class
fints.segments.auth.
HKTAN6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Zwei-Schritt-TAN-Einreichung, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
TYPE
= 'HKTAN'¶
-
VERSION
= 6¶
-
account
¶ Kontoverbindung international Auftraggeber
Type: fints.formals.KTI1
-
parameter_challenge_class
¶ Parameter Challenge-Klasse
Type: fints.formals.ParameterChallengeClass
-
response_hhd_uc
¶ Antwort HHD_UC
Type: fints.formals.ResponseHHDUC
-
sms_charge_account
¶ SMS-Abbuchungskonto
Type: fints.formals.KTI1
-
-
class
fints.segments.auth.
HKVVB3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Verarbeitungsvorbereitung, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HKVVB'¶
-
VERSION
= 3¶
-
language
¶ Dialogsprache
Type: fints.formals.Language2
-
fints.segments.bank module¶
-
class
fints.segments.bank.
HIBPA3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Bankparameter allgemein, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HIBPA'¶
-
VERSION
= 3¶
-
bank_identifier
¶ Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
supported_hbci_version
¶ Unterstützte HBCI-Versionen
Type: fints.formals.SupportedHBCIVersions2
-
supported_languages
¶ Unterstützte Sprachen
Type: fints.formals.SupportedLanguages2
-
-
class
fints.segments.bank.
HIKOM4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kommunikationszugang rückmelden, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HIKOM'¶
-
VERSION
= 4¶
-
bank_identifier
¶ Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
communication_parameters
¶ Kommunikationsparameter
Type: fints.formals.CommunicationParameter2
-
default_language
¶ Standardsprache
Type: fints.formals.Language2
-
-
class
fints.segments.bank.
HIUPA4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Userparameter allgemein
-
TYPE
= 'HIUPA'¶
-
VERSION
= 4¶
-
upd_usage
¶ UPD-Verwendung
Type: fints.formals.UPDUsage
-
-
class
fints.segments.bank.
HIUPD6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoinformationen
-
TYPE
= 'HIUPD'¶
-
VERSION
= 6¶
-
account_information
¶ Kontoverbindung
Type: fints.formals.AccountInformation
-
account_limit
¶ Kontolimit
Type: fints.formals.AccountLimit
-
allowed_transactions
¶ Erlaubte Geschäftsvorfälle
Type: fints.formals.AllowedTransaction
-
-
class
fints.segments.bank.
HKKOM4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kommunikationszugang anfordern, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HKKOM'¶
-
VERSION
= 4¶
-
end_bank_identifier
¶ Bis Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
start_bank_identifier
¶ Von Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
fints.segments.base module¶
-
class
fints.segments.base.
FinTS3SegmentMeta
[source]¶ Bases:
fints.types.ContainerMeta
-
mro
()¶ Return a type’s method resolution order.
-
-
class
fints.segments.base.
ParameterSegment
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
-
TYPE
= None¶
-
VERSION
= None¶
-
security_class
¶ Sicherheitsklasse
Type: fints.formals.SecurityClass
-
fints.segments.debit module¶
-
class
fints.segments.debit.
BatchDebitBase
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
-
TYPE
= None¶
-
VERSION
= None¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
sum_amount
¶ Summenfeld
Type: fints.formals.Amount1
-
-
class
fints.segments.debit.
DebitResponseBase
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
-
TYPE
= None¶
-
VERSION
= None¶
-
-
class
fints.segments.debit.
HIDBS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Bestand terminierter SEPA-Einzellastschriften rückmelden, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDBS'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
-
class
fints.segments.debit.
HIDBS2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Bestand terminierter SEPA-Einzellastschriften rückmelden, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDBS'¶
-
VERSION
= 2¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
sepa_c_code
¶ SEPA-C-Code
Type: fints.formals.SEPACCode1
-
status_sepa_task
¶ Status SEPA-Auftrag
Type: fints.formals.StatusSEPATask1
-
-
class
fints.segments.debit.
HIDBSS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Bestand terminierter SEPA-Einzellastschriften Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDBSS'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter Bestand terminierter SEPA-Einzellastschriften
Type: fints.formals.QueryScheduledDebitParameter1
-
-
class
fints.segments.debit.
HIDBSS2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Bestand terminierter SEPA-Einzellastschriften Parameter, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDBSS'¶
-
VERSION
= 2¶
-
parameter
¶ Parameter Bestand terminierter SEPA-Einzellastschriften
Type: fints.formals.QueryScheduledDebitParameter2
-
-
class
fints.segments.debit.
HIDMB1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Bestand terminierter SEPA-Sammellastschriften rückmelden, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDMB'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
date_booked
¶ Ausführungsdatum
Type: datetime.date
-
date_entered
¶ Einreichungsdatum
Type: datetime.date
-
sum_amount
¶ Summe der Beträge
Type: fints.formals.Amount1
-
-
class
fints.segments.debit.
HIDMBS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Bestand terminierter SEPA-Sammellastschriften Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDMBS'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter Bestand terminierter SEPA-Sammellastschriften
Type: fints.formals.QueryScheduledBatchDebitParameter1
-
-
class
fints.segments.debit.
HIDMC1
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.DebitResponseBase
Einreichung terminierter SEPA-COR1-Sammellastschrift bestätigen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDMC'¶
-
VERSION
= 1¶
-
-
class
fints.segments.debit.
HIDMCS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Terminierte SEPA-COR1-Sammellastschrift Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDMCS'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter terminierte SEPA-COR1-Sammellastschrift
Type: fints.formals.ScheduledCOR1BatchDebitParameter1
-
-
class
fints.segments.debit.
HIDME1
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.DebitResponseBase
Einreichung terminierter SEPA-Sammellastschrift bestätigen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDME'¶
-
VERSION
= 1¶
-
-
class
fints.segments.debit.
HIDME2
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.DebitResponseBase
Einreichung terminierter SEPA-Sammellastschrift bestätigen, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDME'¶
-
VERSION
= 2¶
-
-
class
fints.segments.debit.
HIDMES1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Terminierte SEPA-Sammellastschrift einreichen Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDMES'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter terminierte SEPA-Sammellastschrift einreichen
Type: fints.formals.ScheduledBatchDebitParameter1
-
-
class
fints.segments.debit.
HIDMES2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Terminierte SEPA-Sammellastschrift einreichen Parameter, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDMES'¶
-
VERSION
= 2¶
-
parameter
¶ Parameter terminierte SEPA-Sammellastschrift einreichen
Type: fints.formals.ScheduledBatchDebitParameter2
-
-
class
fints.segments.debit.
HIDSC1
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.DebitResponseBase
Einreichung terminierter SEPA-COR1-Einzellastschrift bestätigen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDSC'¶
-
VERSION
= 1¶
-
-
class
fints.segments.debit.
HIDSCS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Terminierte SEPA-COR1-Einzellastschrift Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDSCS'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter terminierte SEPA-COR1-Einzellastschrift
Type: fints.formals.ScheduledCOR1DebitParameter1
-
-
class
fints.segments.debit.
HIDSE1
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.DebitResponseBase
Einreichung terminierter SEPA-Einzellastschrift bestätigen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDSE'¶
-
VERSION
= 1¶
-
-
class
fints.segments.debit.
HIDSE2
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.DebitResponseBase
Einreichung terminierter SEPA-Einzellastschrift bestätigen, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDSE'¶
-
VERSION
= 2¶
-
-
class
fints.segments.debit.
HIDSES1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Terminierte SEPA-Einzellastschrift einreichen Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDSES'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter terminierte SEPA-Sammellastschrift einreichen
Type: fints.formals.ScheduledDebitParameter1
-
-
class
fints.segments.debit.
HIDSES2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Terminierte SEPA-Einzellastschrift einreichen Parameter, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIDSES'¶
-
VERSION
= 2¶
-
parameter
¶ Parameter terminierte SEPA-Sammellastschrift einreichen
Type: fints.formals.ScheduledDebitParameter2
-
-
class
fints.segments.debit.
HKDBS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Bestand terminierter SEPA-Einzellastschriften anfordern, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDBS'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
supported_sepa_pain_messages
¶ Unterstützte SEPA pain messages
Type: fints.formals.SupportedSEPAPainMessages1
-
-
class
fints.segments.debit.
HKDBS2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Bestand terminierter SEPA-Einzellastschriften anfordern, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDBS'¶
-
VERSION
= 2¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
supported_sepa_pain_messages
¶ Unterstützte SEPA pain messages
Type: fints.formals.SupportedSEPAPainMessages1
-
-
class
fints.segments.debit.
HKDMB1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Bestand terminierter SEPA-Sammellastschriften anfordern, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDMB'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
-
class
fints.segments.debit.
HKDMC1
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.BatchDebitBase
Terminierte SEPA-COR1-Sammellastschrift einreichen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDMC'¶
-
VERSION
= 1¶
-
-
class
fints.segments.debit.
HKDME1
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.BatchDebitBase
Einreichung terminierter SEPA-Sammellastschrift, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDME'¶
-
VERSION
= 1¶
-
-
class
fints.segments.debit.
HKDME2
(*args, **kwargs)[source]¶ Bases:
fints.segments.debit.BatchDebitBase
Einreichung terminierter SEPA-Sammellastschrift, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDME'¶
-
VERSION
= 2¶
-
-
class
fints.segments.debit.
HKDSC1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Terminierte SEPA-COR1-Einzellastschrift einreichen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDSC'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
-
class
fints.segments.debit.
HKDSE1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Terminierte SEPA-Einzellastschrift einreichen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDSE'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
-
class
fints.segments.debit.
HKDSE2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Terminierte SEPA-Einzellastschrift einreichen, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKDSE'¶
-
VERSION
= 2¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
fints.segments.depot module¶
-
class
fints.segments.depot.
HIWPD5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Depotaufstellung rückmelden, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HIWPD'¶
-
VERSION
= 5¶
-
-
class
fints.segments.depot.
HIWPD6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Depotaufstellung rückmelden, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIWPD'¶
-
VERSION
= 6¶
-
-
class
fints.segments.depot.
HKWPD5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Depotaufstellung anfordern, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HKWPD'¶
-
VERSION
= 5¶
-
account
¶ Depot
Type: fints.formals.Account2
-
-
class
fints.segments.depot.
HKWPD6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Depotaufstellung anfordern, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKWPD'¶
-
VERSION
= 6¶
-
account
¶ Depot
Type: fints.formals.Account3
-
fints.segments.dialog module¶
-
class
fints.segments.dialog.
HIRMG2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Rückmeldungen zur Gesamtnachricht
-
TYPE
= 'HIRMG'¶
-
VERSION
= 2¶
-
responses
¶ Rückmeldung
Type: fints.formals.Response
-
-
class
fints.segments.dialog.
HIRMS2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Rückmeldungen zu Segmenten
-
TYPE
= 'HIRMS'¶
-
VERSION
= 2¶
-
responses
¶ Rückmeldung
Type: fints.formals.Response
-
-
class
fints.segments.dialog.
HISYN4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Synchronisierungsantwort
-
TYPE
= 'HISYN'¶
-
VERSION
= 4¶
-
-
class
fints.segments.dialog.
HKEND1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Dialogende, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HKEND'¶
-
VERSION
= 1¶
-
-
class
fints.segments.dialog.
HKSYN3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Synchronisierung, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HKSYN'¶
-
VERSION
= 3¶
-
synchronization_mode
¶ Type: fints.formals.SynchronizationMode
-
fints.segments.journal module¶
-
class
fints.segments.journal.
HIPRO3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Statusprotokoll rückmelden, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HIPRO'¶
-
VERSION
= 3¶
-
date
¶ Datum
Type: datetime.date
-
reference_message
¶ Bezugsnachricht
Type: fints.formals.ReferenceMessage
-
responses
¶ Rückmeldung
Type: fints.formals.Response
-
time
¶ Uhrzeit
Type: datetime.time
-
-
class
fints.segments.journal.
HIPRO4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Statusprotokoll rückmelden, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HIPRO'¶
-
VERSION
= 4¶
-
date
¶ Datum
Type: datetime.date
-
reference_message
¶ Bezugsnachricht
Type: fints.formals.ReferenceMessage
-
responses
¶ Rückmeldung
Type: fints.formals.Response
-
time
¶ Uhrzeit
Type: datetime.time
-
-
class
fints.segments.journal.
HIPROS3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment_22
Statusprotokoll Parameter, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HIPROS'¶
-
VERSION
= 3¶
-
-
class
fints.segments.journal.
HIPROS4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Statusprotokoll Parameter, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HIPROS'¶
-
VERSION
= 4¶
-
-
class
fints.segments.journal.
HKPRO3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Statusprotokoll anfordern, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HKPRO'¶
-
VERSION
= 3¶
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
-
class
fints.segments.journal.
HKPRO4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Statusprotokoll anfordern, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
TYPE
= 'HKPRO'¶
-
VERSION
= 4¶
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
fints.segments.message module¶
-
class
fints.segments.message.
HNHBK3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Nachrichtenkopf
-
TYPE
= 'HNHBK'¶
-
VERSION
= 3¶
-
reference_message
¶ Bezugsnachricht
Type: fints.formals.ReferenceMessage
-
-
class
fints.segments.message.
HNHBS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Nachrichtenabschluss
-
TYPE
= 'HNHBS'¶
-
VERSION
= 1¶
-
-
class
fints.segments.message.
HNSHA2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Signaturabschluss, version 2
Source: FinTS Financial Transaction Services, Sicherheitsverfahren HBCI
-
TYPE
= 'HNSHA'¶
-
VERSION
= 2¶
-
user_defined_signature
¶ Benutzerdefinierte Signatur
Type: fints.formals.UserDefinedSignature
-
-
class
fints.segments.message.
HNSHK4
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Signaturkopf, version 4
Source: FinTS Financial Transaction Services, Sicherheitsverfahren HBCI
-
TYPE
= 'HNSHK'¶
-
VERSION
= 4¶
-
certificate
¶ Zertifikat
Type: fints.formals.Certificate
-
hash_algorithm
¶ Hashalgorithmus
Type: fints.formals.HashAlgorithm
-
key_name
¶ Schlüsselname
Type: fints.formals.KeyName
-
security_application_area
¶ Bereich der Sicherheitsapplikation, kodiert
Type: fints.formals.SecurityApplicationArea
-
security_datetime
¶ Sicherheitsdatum und -uhrzeit
Type: fints.formals.SecurityDateTime
-
security_identification_details
¶ Sicherheitsidentifikation, Details
Type: fints.formals.SecurityIdentificationDetails
-
security_profile
¶ Sicherheitsprofil
Type: fints.formals.SecurityProfile
-
security_role
¶ Rolle des Sicherheitslieferanten, kodiert
Type: fints.formals.SecurityRole
-
signature_algorithm
¶ Signaturalgorithmus
Type: fints.formals.SignatureAlgorithm
-
-
class
fints.segments.message.
HNVSD1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Verschlüsselte Daten, version 1
Source: FinTS Financial Transaction Services, Sicherheitsverfahren HBCI
-
TYPE
= 'HNVSD'¶
-
VERSION
= 1¶
-
data
¶ Daten, verschlüsselt
-
-
class
fints.segments.message.
HNVSK3
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Verschlüsselungskopf, version 3
Source: FinTS Financial Transaction Services, Sicherheitsverfahren HBCI
-
TYPE
= 'HNVSK'¶
-
VERSION
= 3¶
-
certificate
¶ Zertifikat
Type: fints.formals.Certificate
-
compression_function
¶ Komprimierungsfunktion
Type: fints.formals.CompressionFunction
-
encryption_algorithm
¶ Verschlüsselungsalgorithmus
Type: fints.formals.EncryptionAlgorithm
-
key_name
¶ Schlüsselname
Type: fints.formals.KeyName
-
security_datetime
¶ Sicherheitsdatum und -uhrzeit
Type: fints.formals.SecurityDateTime
-
security_identification_details
¶ Sicherheitsidentifikation, Details
Type: fints.formals.SecurityIdentificationDetails
-
security_profile
¶ Sicherheitsprofil
Type: fints.formals.SecurityProfile
-
security_role
¶ Rolle des Sicherheitslieferanten, kodiert
Type: fints.formals.SecurityRole
-
fints.segments.saldo module¶
-
class
fints.segments.saldo.
HISAL5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Saldenrückmeldung, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HISAL'¶
-
VERSION
= 5¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.Account2
-
available_amount
¶ Verfügbarer Betrag
Type: fints.formals.Amount1
-
balance_booked
¶ Gebuchter Saldo
Type: fints.formals.Balance1
-
balance_pending
¶ Saldo der vorgemerkten Umsätze
Type: fints.formals.Balance1
-
booking_date
¶ Buchungsdatum des Saldos
Type: datetime.date
-
booking_time
¶ Buchungsuhrzeit des Saldos
Type: datetime.time
-
date_due
¶ Fälligkeit
Type: datetime.date
-
line_of_credit
¶ Kreditlinie
Type: fints.formals.Amount1
-
used_amount
¶ Bereits verfügter Betrag
Type: fints.formals.Amount1
-
-
class
fints.segments.saldo.
HISAL6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Saldenrückmeldung, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HISAL'¶
-
VERSION
= 6¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.Account3
-
available_amount
¶ Verfügbarer Betrag
Type: fints.formals.Amount1
-
balance_booked
¶ Gebuchter Saldo
Type: fints.formals.Balance2
-
balance_pending
¶ Saldo der vorgemerkten Umsätze
Type: fints.formals.Balance2
-
booking_timestamp
¶ Buchungszeitpunkt
Type: fints.formals.Timestamp1
-
date_due
¶ Fälligkeit
Type: datetime.date
-
line_of_credit
¶ Kreditlinie
Type: fints.formals.Amount1
-
overdraft
¶ Überziehung
Type: fints.formals.Amount1
-
used_amount
¶ Bereits verfügter Betrag
Type: fints.formals.Amount1
-
-
class
fints.segments.saldo.
HISAL7
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Saldenrückmeldung, version 7
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HISAL'¶
-
VERSION
= 7¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
available_amount
¶ Verfügbarer Betrag
Type: fints.formals.Amount1
-
balance_booked
¶ Gebuchter Saldo
Type: fints.formals.Balance2
-
balance_pending
¶ Saldo der vorgemerkten Umsätze
Type: fints.formals.Balance2
-
booking_timestamp
¶ Buchungszeitpunkt
Type: fints.formals.Timestamp1
-
date_due
¶ Fälligkeit
Type: datetime.date
-
line_of_credit
¶ Kreditlinie
Type: fints.formals.Amount1
-
overdraft
¶ Überziehung
Type: fints.formals.Amount1
-
used_amount
¶ Bereits verfügter Betrag
Type: fints.formals.Amount1
-
-
class
fints.segments.saldo.
HKSAL5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Saldenabfrage, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HKSAL'¶
-
VERSION
= 5¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.Account2
-
-
class
fints.segments.saldo.
HKSAL6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Saldenabfrage, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKSAL'¶
-
VERSION
= 6¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.Account3
-
-
class
fints.segments.saldo.
HKSAL7
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Saldenabfrage, version 7
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKSAL'¶
-
VERSION
= 7¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
fints.segments.statement module¶
-
class
fints.segments.statement.
DIKKU2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kreditkartenumsätze rückmelden, version 2
Source: Reverse engineered
-
TYPE
= 'DIKKU'¶
-
VERSION
= 2¶
-
-
class
fints.segments.statement.
DIKKUS2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
Kreditkartenumsätze anfordern Parameter, version 2
Source: Reverse engineered
-
TYPE
= 'DIKKUS'¶
-
VERSION
= 2¶
-
parameter
¶ Parameter Kreditkartenumsätze anfordern
Type: fints.formals.QueryCreditCardStatements2
-
-
class
fints.segments.statement.
DKKKU2
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kreditkartenumsätze anfordern, version 2
Source: Reverse engineered
-
TYPE
= 'DKKKU'¶
-
VERSION
= 2¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.Account2
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
-
class
fints.segments.statement.
HICAZ1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze rückmelden/Zeitraum, version 1
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HICAZ'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.KTI1
-
statement_booked
¶ Gebuchte Umsätze
Type: fints.formals.BookedCamtStatements1
-
-
class
fints.segments.statement.
HIKAZ5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze rückmelden/Zeitraum, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HIKAZ'¶
-
VERSION
= 5¶
-
-
class
fints.segments.statement.
HIKAZ6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze rückmelden/Zeitraum, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIKAZ'¶
-
VERSION
= 6¶
-
-
class
fints.segments.statement.
HIKAZ7
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze rückmelden/Zeitraum, version 7
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HIKAZ'¶
-
VERSION
= 7¶
-
-
class
fints.segments.statement.
HKCAZ1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze anfordern/Zeitraum, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HKCAZ'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
supported_camt_messages
¶ Kontoverbindung international
Type: fints.formals.SupportedMessageTypes
-
-
class
fints.segments.statement.
HKKAZ5
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze anfordern/Zeitraum, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
TYPE
= 'HKKAZ'¶
-
VERSION
= 5¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.Account2
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
-
class
fints.segments.statement.
HKKAZ6
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze anfordern/Zeitraum, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKKAZ'¶
-
VERSION
= 6¶
-
account
¶ Kontoverbindung Auftraggeber
Type: fints.formals.Account3
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
-
class
fints.segments.statement.
HKKAZ7
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
Kontoumsätze anfordern/Zeitraum, version 7
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKKAZ'¶
-
VERSION
= 7¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
date_end
¶ Bis Datum
Type: datetime.date
-
date_start
¶ Von Datum
Type: datetime.date
-
fints.segments.transfer module¶
-
class
fints.segments.transfer.
HICCMS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.ParameterSegment
SEPA-Sammelüberweisung Parameter, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HICCMS'¶
-
VERSION
= 1¶
-
parameter
¶ Parameter SEPA-Sammelüberweisung
Type: fints.formals.BatchTransferParameter1
-
-
class
fints.segments.transfer.
HKCCM1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
SEPA-Sammelüberweisung, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKCCM'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
sum_amount
¶ Summenfeld
Type: fints.formals.Amount1
-
-
class
fints.segments.transfer.
HKCCS1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
SEPA Einzelüberweisung, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKCCS'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
-
class
fints.segments.transfer.
HKIPM1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
SEPA-instant Sammelüberweisung, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKIPM'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
sum_amount
¶ Summenfeld
Type: fints.formals.Amount1
-
-
class
fints.segments.transfer.
HKIPZ1
(*args, **kwargs)[source]¶ Bases:
fints.segments.base.FinTS3Segment
SEPA-instant Einzelüberweisung, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
TYPE
= 'HKIPZ'¶
-
VERSION
= 1¶
-
account
¶ Kontoverbindung international
Type: fints.formals.KTI1
-
FinTS Segment Sequence¶
A message is a sequence of segments. The SegmentSequence
object allows searching for segments by type and version, by default recursing into nested sequences.
-
class
fints.types.
SegmentSequence
(segments=None)[source]¶ A sequence of FinTS3Segment objects
-
find_segment_first
(*args, **kwargs)[source]¶ Finds the first matching segment.
Same parameters as find_segments(), but only returns the first match, or None if no match is found.
-
find_segment_highest_version
(query=None, version=None, callback=None, recurse=True, default=None)[source]¶ Finds the highest matching segment.
Same parameters as find_segments(), but returns the match with the highest version, or default if no match is found.
-
find_segments
(query=None, version=None, callback=None, recurse=True, throw=False)[source]¶ Yields an iterable of all matching segments.
Parameters: - query – Either a str or class specifying a segment type (such as ‘HNHBK’, or
HNHBK3
), or a list or tuple of strings or classes. If a list/tuple is specified, segments returning any matching type will be returned. - version – Either an int specifying a segment version, or a list or tuple of ints. If a list/tuple is specified, segments returning any matching version will be returned.
- callback – A callable that will be given the segment as its sole argument and must return a boolean indicating whether to return this segment.
- recurse – If True (the default), recurse into SegmentSequenceField values, otherwise only look at segments in this SegmentSequence.
- throw – If True, a FinTSNoResponseError is thrown if no result is found. Defaults to False.
The match results of all given parameters will be AND-combined.
- query – Either a str or class specifying a segment type (such as ‘HNHBK’, or
-
Working with Segments¶
Objects of FinTS3Segment
or a subclass can be created by calling their constructor. The constructor takes optional arguments for all fields of the class. Setting and getting fields and subfields works, and consumes and returns Python objects as appropriate:
>>> from fints.segments import HNHBS1
>>> s = HNHBS1()
>>> s
fints.segments.HNHBS1(header=fints.formals.SegmentHeader('HNHBS', None, 1), message_number=None)
>>> s.header.number = 3
>>> s.header
fints.formals.SegmentHeader('HNHBS', 3, 1)
When setting a value, format and length restrictions will be checked, if possible:
>>> s.message_number = 'abc'
ValueError: invalid literal for int() with base 10: 'abc'
>>> s.message_number = 12345
ValueError: Value '12345' cannot be rendered: max_length=4 exceeded
The only exception is: Every field can be set to None
in order to clear the field and make it unset, recursively. No checking is performed whether all fields that are required (or conditionally required) by the specification are set. For convenience, an unset constructed field will still be filled with an instance of the field’s value type, so that subfield accessing will always work, without encountering None
values on the way.
>>> s.header = None
>>> s
fints.segments.HNHBS1(header=fints.formals.SegmentHeader(None, None, None), message_number=None)
When calling the constructor with non-keyword arguments, fields are assigned in order, with the exception of header
in FinTS3Segment
subclasses, which can only be given as a keyword argument. When no header
argument is present, a SegmentHeader
is automatically constructed with default values (and no number
). It’s generally not required to construct the header
parameter manually.
>>> HNHBS1(42)
fints.segments.HNHBS1(header=fints.formals.SegmentHeader('HNHBS', None, 1), message_number=42)
>>> HNHBS1(42, header=SegmentHeader('FOO'))
fints.segments.HNHBS1(header=fints.formals.SegmentHeader('FOO', None, None), message_number=42)
Some segment fields have a variable number of values. These are always treated as a list, and minimum/maximum list length is obeyed. Setting a value beyond the end of the list results in an exception. Empty values are added to maintain the correct minimum number of values.
>>> from fints.segments import HIRMG2
>>> s = HIRMG2()
>>> s
fints.segments.HIRMG2(header=fints.formals.SegmentHeader('HIRMG', None, 2), responses=[fints.formals.Response(code=None, reference_element=None, text=None)])
>>> s.responses[0].code = '0010'
>>> s.responses[1].code = '0100'
>>> s.print_nested()
fints.segments.HIRMG2(
header = fints.formals.SegmentHeader('HIRMG', None, 2),
responses = [
fints.formals.Response(
code = '0010',
reference_element = None,
text = None,
),
fints.formals.Response(
code = '0100',
reference_element = None,
text = None,
),
],
)
>>> HIRMG2(responses=[fints.formals.Response('2342')]).print_nested()
fints.segments.HIRMG2(
header = fints.formals.SegmentHeader('HIRMG', None, 2),
responses = [
fints.formals.Response(
code = '2342',
reference_element = None,
text = None,
),
],
)
Defining new Segment classes¶
Base types¶
Field types¶
Constructed and helper types¶
-
class
fints.formals.
SecurityMethod
(*args, **kwargs)[source]¶ An enumeration.
-
DDV
= 'DDV'¶
-
RAH
= 'RAH'¶
-
RDH
= 'RDH'¶
-
PIN
= 'PIN'¶
-
-
class
fints.formals.
SecurityProfile
(*args, **kwargs)[source]¶ Sicherheitsprofil
-
security_method
¶ Sicherheitsverfahren
Type: fints.formals.SecurityMethod
-
-
class
fints.formals.
IdentifiedRole
(*args, **kwargs)[source]¶ An enumeration.
-
MS
= '1'¶ Message Sender
-
MR
= '2'¶ Message Receiver
-
-
class
fints.formals.
SecurityIdentificationDetails
(*args, **kwargs)[source]¶ -
identified_role
¶ Type: fints.formals.IdentifiedRole
-
-
class
fints.formals.
DateTimeType
(*args, **kwargs)[source]¶ An enumeration.
-
STS
= '1'¶ Sicherheitszeitstempel
-
CRT
= '6'¶ Certificate Revocation Time
-
-
class
fints.formals.
SecurityDateTime
(*args, **kwargs)[source]¶ -
date_time_type
¶ Type: fints.formals.DateTimeType
-
date
¶ Type: datetime.date
-
time
¶ Type: datetime.time
-
-
class
fints.formals.
UsageEncryption
(*args, **kwargs)[source]¶ An enumeration.
-
OSY
= '2'¶ Owner Symmetric
-
-
class
fints.formals.
OperationMode
(*args, **kwargs)[source]¶ An enumeration.
-
CBC
= '2'¶ Cipher Block Chaining
-
ISO_9796_1
= '16'¶ ISO 9796-1 (bei RDH)
-
ISO_9796_2_RANDOM
= '17'¶ ISO 9796-2 mit Zufallszahl (bei RDH)
-
PKCS1V15
= '18'¶ RSASSA-PKCS#1 V1.5 (bei RDH); RSAES-PKCS#1 V1.5 (bei RAH, RDH)
-
PSS
= '19'¶ RSASSA-PSS (bei RAH, RDH)
-
ZZZ
= '999'¶ Gegenseitig vereinbart (DDV: Retail-MAC)
-
-
class
fints.formals.
EncryptionAlgorithmCoded
(*args, **kwargs)[source]¶ An enumeration.
-
TWOKEY3DES
= '13'¶ 2-Key-Triple-DES
-
AES256
= '14'¶ AES-256
-
-
class
fints.formals.
AlgorithmParameterName
(*args, **kwargs)[source]¶ An enumeration.
-
KYE
= '5'¶ Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
-
KYP
= '6'¶ Symmetrischer Schlüssel, verschlüsselt mit öffentlichem Schlüssel
-
-
class
fints.formals.
AlgorithmParameterIVName
(*args, **kwargs)[source]¶ An enumeration.
-
IVC
= '1'¶ Initialization value, clear text
-
-
class
fints.formals.
EncryptionAlgorithm
(*args, **kwargs)[source]¶ -
usage_encryption
¶ Type: fints.formals.UsageEncryption
-
operation_mode
¶ Type: fints.formals.OperationMode
-
encryption_algorithm
¶ Type: fints.formals.EncryptionAlgorithmCoded
-
algorithm_parameter_name
¶ Type: fints.formals.AlgorithmParameterName
-
algorithm_parameter_iv_name
¶ Type: fints.formals.AlgorithmParameterIVName
-
-
class
fints.formals.
BankIdentifier
(*args, **kwargs)[source]¶ -
COUNTRY_ALPHA_TO_NUMERIC
= {'AT': '040', 'BE': '056', 'BG': '100', 'CA': '124', 'CH': '756', 'CZ': '203', 'DE': '280', 'DK': '208', 'ES': '724', 'EU': '978', 'FI': '246', 'FR': '250', 'GB': '826', 'GR': '300', 'HR': '191', 'HU': '348', 'IE': '372', 'IS': '352', 'IT': '380', 'JP': '392', 'LI': '438', 'LU': '442', 'NL': '528', 'PL': '616', 'PT': '620', 'RO': '642', 'RU': '643', 'SE': '752', 'SI': '705', 'SK': '703', 'TR': '792', 'US': '840'}¶
-
COUNTRY_NUMERIC_TO_ALPHA
= {'040': 'AT', '056': 'BE', '100': 'BG', '124': 'CA', '191': 'HR', '203': 'CZ', '208': 'DK', '246': 'FI', '250': 'FR', '276': 'DE', '280': 'DE', '300': 'GR', '348': 'HU', '352': 'IS', '372': 'IE', '380': 'IT', '392': 'JP', '438': 'LI', '442': 'LU', '528': 'NL', '616': 'PL', '620': 'PT', '642': 'RO', '643': 'RU', '703': 'SK', '705': 'SI', '724': 'ES', '752': 'SE', '756': 'CH', '792': 'TR', '826': 'GB', '840': 'US', '978': 'EU'}¶
-
-
class
fints.formals.
KeyType
(*args, **kwargs)[source]¶ Schlüsselart
-
D
= 'D'¶ Schlüssel zur Erzeugung digitaler Signaturen
-
S
= 'S'¶ Signierschlüssel
-
V
= 'V'¶ Chiffrierschlüssel
-
-
class
fints.formals.
KeyName
(*args, **kwargs)[source]¶ -
bank_identifier
¶ Type: fints.formals.BankIdentifier
-
key_type
¶ Schlüsselart
Type: fints.formals.KeyType
-
-
class
fints.formals.
Amount1
(*args, **kwargs)[source]¶ Betrag
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
amount
¶ Wert
Type: decimal.Decimal
-
-
class
fints.formals.
AccountInformation
(*args, **kwargs)[source]¶ -
-
bank_identifier
¶ Type: fints.formals.BankIdentifier
-
-
class
fints.formals.
AccountLimit
(*args, **kwargs)[source]¶ -
-
limit_amount
¶ Type: fints.formals.Amount1
-
-
class
fints.formals.
AllowedTransaction
(*args, **kwargs)[source]¶ -
-
limit_amount
¶ Type: fints.formals.Amount1
-
-
class
fints.formals.
TANTimeDialogAssociation
(*args, **kwargs)[source]¶ An enumeration.
-
NOT_ALLOWED
= '1'¶ TAN nicht zeitversetzt / dialogübergreifend erlaubt
-
ALLOWED
= '2'¶ TAN zeitversetzt / dialogübergreifend erlaubt
-
BOTH
= '3'¶ beide Verfahren unterstützt
-
NOT_APPLICABLE
= '4'¶ nicht zutreffend
-
-
class
fints.formals.
AllowedFormat
(*args, **kwargs)[source]¶ An enumeration.
-
NUMERIC
= '1'¶ numerisch
-
ALPHANUMERIC
= '2'¶ alfanumerisch
-
-
class
fints.formals.
TANListNumberRequired
(*args, **kwargs)[source]¶ An enumeration.
-
NO
= '0'¶ Nein
-
YES
= '2'¶ Ja
-
-
class
fints.formals.
InitializationMode
(*args, **kwargs)[source]¶ An enumeration.
-
CLEARTEXT_PIN_NO_TAN
= '00'¶ Initialisierungsverfahren mit Klartext-PIN und ohne TAN
-
ENCRYPTED_PIN_NO_TAN
= '01'¶ Schablone 01: Verschlüsselte PIN und ohne TAN
-
MASK_02
= '02'¶ Schablone 02: Reserviert, bei FinTS zur Zeit nicht verwendet
-
-
class
fints.formals.
DescriptionRequired
(*args, **kwargs)[source]¶ An enumeration.
-
MUST_NOT
= '0'¶ Bezeichnung des TAN-Mediums darf nicht angegeben werden
-
MAY
= '1'¶ Bezeichnung des TAN-Mediums kann angegeben werden
-
MUST
= '2'¶ Bezeichnung des TAN-Mediums muss angegeben werden
-
-
class
fints.formals.
SMSChargeAccountRequired
(*args, **kwargs)[source]¶ An enumeration.
-
MUST_NOT
= '0'¶ SMS-Abbuchungskonto darf nicht angegeben werden
-
MAY
= '1'¶ SMS-Abbuchungskonto kann angegeben werden
-
MUST
= '2'¶ SMS-Abbuchungskonto muss angegeben werden
-
-
class
fints.formals.
PrincipalAccountRequired
(*args, **kwargs)[source]¶ An enumeration.
-
MUST_NOT
= '0'¶ Auftraggeberkonto darf nicht angegeben werden
-
MUST
= '2'¶ Auftraggeberkonto muss angegeben werden, wenn im Geschäftsvorfall enthalten
-
-
class
fints.formals.
TaskHashAlgorithm
(*args, **kwargs)[source]¶ An enumeration.
-
NONE
= '0'¶ Auftrags-Hashwert nicht unterstützt
-
RIPEMD_160
= '1'¶ RIPEMD-160
-
SHA_1
= '2'¶ SHA-1
-
-
class
fints.formals.
TwoStepParametersCommon
(*args, **kwargs)[source]¶ -
VERSION
¶ TAN mechanism version
-
-
class
fints.formals.
TwoStepParameters1
(*args, **kwargs)[source]¶ -
-
allowed_format
¶ Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
-
class
fints.formals.
TwoStepParameters2
(*args, **kwargs)[source]¶ -
-
allowed_format
¶ Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
tan_time_dialog_association
¶ TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
tan_list_number_required
¶ TAN-Listennummer erforderlich
Type: fints.formals.TANListNumberRequired
-
-
class
fints.formals.
TwoStepParameters3
(*args, **kwargs)[source]¶ -
-
allowed_format
¶ Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
tan_time_dialog_association
¶ TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
tan_list_number_required
¶ TAN-Listennummer erforderlich
Type: fints.formals.TANListNumberRequired
-
initialization_mode
¶ Initialisierungsmodus
Type: fints.formals.InitializationMode
-
description_required
¶ Bezeichnung des TAN-Medium erforderlich
Type: fints.formals.DescriptionRequired
-
-
class
fints.formals.
TwoStepParameters4
(*args, **kwargs)[source]¶ -
-
allowed_format
¶ Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
tan_time_dialog_association
¶ TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
tan_list_number_required
¶ TAN-Listennummer erforderlich
Type: fints.formals.TANListNumberRequired
-
initialization_mode
¶ Initialisierungsmodus
Type: fints.formals.InitializationMode
-
description_required
¶ Bezeichnung des TAN-Medium erforderlich
Type: fints.formals.DescriptionRequired
-
-
class
fints.formals.
TwoStepParameters5
(*args, **kwargs)[source]¶ -
-
allowed_format
¶ Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
tan_time_dialog_association
¶ TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
tan_list_number_required
¶ TAN-Listennummer erforderlich
Type: fints.formals.TANListNumberRequired
-
sms_charge_account_required
¶ SMS-Abbuchungskonto erforderlich
Type: fints.formals.SMSChargeAccountRequired
-
principal_account_required
¶ Auftraggeberkonto erforderlich
Type: fints.formals.PrincipalAccountRequired
-
initialization_mode
¶ Initialisierungsmodus
Type: fints.formals.InitializationMode
-
description_required
¶ Bezeichnung des TAN-Medium erforderlich
Type: fints.formals.DescriptionRequired
-
-
class
fints.formals.
TwoStepParameters6
(*args, **kwargs)[source]¶ -
-
allowed_format
¶ Erlaubtes Format im Zwei-Schritt-Verfahren
Type: fints.formals.AllowedFormat
-
tan_time_dialog_association
¶ TAN Zeit- und Dialogbezug
Type: fints.formals.TANTimeDialogAssociation
-
sms_charge_account_required
¶ SMS-Abbuchungskonto erforderlich
Type: fints.formals.SMSChargeAccountRequired
-
principal_account_required
¶ Auftraggeberkonto erforderlich
Type: fints.formals.PrincipalAccountRequired
-
initialization_mode
¶ Initialisierungsmodus
Type: fints.formals.InitializationMode
-
description_required
¶ Bezeichnung des TAN-Medium erforderlich
Type: fints.formals.DescriptionRequired
-
-
class
fints.formals.
ParameterTwostepCommon
(*args, **kwargs)[source]¶ -
-
task_hash_algorithm
¶ Auftrags-Hashwertverfahren
Type: fints.formals.TaskHashAlgorithm
-
-
class
fints.formals.
ParameterTwostepTAN1
(*args, **kwargs)[source]¶ -
-
twostep_parameters
¶ Type: fints.formals.TwoStepParameters1
-
-
class
fints.formals.
ParameterTwostepTAN2
(*args, **kwargs)[source]¶ -
twostep_parameters
¶ Type: fints.formals.TwoStepParameters2
-
-
class
fints.formals.
ParameterTwostepTAN3
(*args, **kwargs)[source]¶ -
twostep_parameters
¶ Type: fints.formals.TwoStepParameters3
-
-
class
fints.formals.
ParameterTwostepTAN4
(*args, **kwargs)[source]¶ -
twostep_parameters
¶ Type: fints.formals.TwoStepParameters4
-
-
class
fints.formals.
ParameterTwostepTAN5
(*args, **kwargs)[source]¶ -
twostep_parameters
¶ Type: fints.formals.TwoStepParameters5
-
-
class
fints.formals.
ParameterTwostepTAN6
(*args, **kwargs)[source]¶ -
twostep_parameters
¶ Type: fints.formals.TwoStepParameters6
-
-
class
fints.formals.
ParameterPinTan
(*args, **kwargs)[source]¶ -
-
transaction_tans_required
¶ Type: fints.formals.TransactionTanRequired
-
-
class
fints.formals.
Language2
(*args, **kwargs)[source]¶ Dialogsprache
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
DEFAULT
= '0'¶ Standard
-
DE
= '1'¶ Deutsch, ‘de’, Subset Deutsch, Codeset 1 (Latin 1)
-
EN
= '2'¶ Englisch, ‘en’, Subset Englisch, Codeset 1 (Latin 1)
-
FR
= '3'¶ Französisch, ‘fr’, Subset Französisch, Codeset 1 (Latin 1)
-
-
class
fints.formals.
SupportedLanguages2
(*args, **kwargs)[source]¶ -
languages
¶ Type: fints.formals.Language2
-
-
class
fints.formals.
KTZ1
(*args, **kwargs)[source]¶ Kontoverbindung ZV international, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
bank_identifier
¶ Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
-
class
fints.formals.
KTI1
(*args, **kwargs)[source]¶ Kontoverbindung international, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
bank_identifier
¶ Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
-
class
fints.formals.
Account2
(*args, **kwargs)[source]¶ Kontoverbindung, version 2
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
class
fints.formals.
Account3
(*args, **kwargs)[source]¶ Kontoverbindung, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
bank_identifier
¶ Kreditinstitutskennung
Type: fints.formals.BankIdentifier
-
-
class
fints.formals.
SecurityRole
(*args, **kwargs)[source]¶ Rolle des Sicherheitslieferanten, kodiert, version 2
Kodierte Information über das Verhältnis desjenigen, der bezüglich der zu si-chernden Nachricht die Sicherheit gewährleistet. Die Wahl ist von der bankfachlichen Auslegung der Signatur, respektive vom vertraglichen Zustand zwischen Kunde und Kreditinstitut abhängig.
Source: FinTS Financial Transaction Services, Sicherheitsverfahren HBCI
-
ISS
= '1'¶ Erfasser, Erstsignatur
-
CON
= '3'¶ Unterstützer, Zweitsignatur
-
WIT
= '4'¶ Zeuge/Übermittler, nicht Erfasser
-
-
class
fints.formals.
CompressionFunction
(*args, **kwargs)[source]¶ Komprimierungsfunktion, version 2
Source: FinTS Financial Transaction Services, Sicherheitsverfahren HBCI
-
NULL
= '0'¶ Keine Kompression
-
LZW
= '1'¶ Lempel, Ziv, Welch
-
COM
= '2'¶ Optimized LZW
-
LZSS
= '3'¶ Lempel, Ziv
-
LZHuf
= '4'¶ LZ + Huffman Coding
-
ZIP
= '5'¶ PKZIP
-
GZIP
= '6'¶ deflate (http://www.gzip.org/zlib)
-
BZIP2
= '7'¶
-
ZZZ
= '999'¶ Gegenseitig vereinbart
-
-
class
fints.formals.
SecurityApplicationArea
(*args, **kwargs)[source]¶ Bereich der Sicherheitsapplikation, kodiert, version 2
Informationen darüber, welche Daten vom kryptographischen Prozess verarbeitet werden.
Source: FinTS Financial Transaction Services, Sicherheitsverfahren HBCI
-
SHM
= '1'¶ Signaturkopf und HBCI-Nutzdaten
-
SHT
= '2'¶ Von Signaturkopf bis Signaturabschluss
-
-
class
fints.formals.
SecurityClass
(*args, **kwargs)[source]¶ Sicherheitsklasse, version 1
Die Sicherheitsklasse gibt für jede Signatur den erforderlichen Sicherheitsdienst an.
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
NONE
= 0¶ Kein Sicherheitsdienst erforderlich
-
AUTH
= 1¶ Sicherheitsdienst ‘Authentikation’
-
AUTH_ADV
= 2¶ Sicherheitsdienst ‘Authentikation’ mit fortgeschrittener elektronischer Signatur, optionaler Zertifikatsprüfung
-
NON_REPUD
= 3¶ Sicherheitsdienst ‘Non-Repudiation’ mit fortgeschrittener elektronischer Signatur, optionaler Zertifikatsprüfung
-
NON_REPUD_QUAL
= 4¶ Sicherheitsdienst ‘Non-Repudiation’ mit fortgeschrittener bzw. qualifizierter elektronischer Signatur, zwingende Zertifikatsprüfung
-
-
class
fints.formals.
UPDUsage
(*args, **kwargs)[source]¶ UPD-Verwendung, version 2
Kennzeichen dafür, wie diejenigen Geschäftsvorfälle zu interpretieren sind, die bei der Beschreibung der Kontoinformationen nicht unter den erlaubten Geschäftsvorfällen aufgeführt sind.
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
UPD_CONCLUSIVE
= '0'¶ Die nicht aufgeführten Geschäftsvorfälle sind gesperrt
-
UPD_INCONCLUSIVE
= '1'¶ Bei nicht aufgeführten Geschäftsvorfällen ist keine Aussage möglich, ob diese erlaubt oder gesperrt sind
-
-
class
fints.formals.
SystemIDStatus
(*args, **kwargs)[source]¶ Kundensystem-Status, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
ID_UNNECESSARY
= '0'¶ Kundensystem-ID wird nicht benötigt
-
ID_NECESSARY
= '1'¶ Kundensystem-ID wird benötigt
-
-
class
fints.formals.
SynchronizationMode
(*args, **kwargs)[source]¶ Synchronisierungsmodus, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
NEW_SYSTEM_ID
= '0'¶ Neue Kundensystem-ID zurückmelden
-
LAST_MESSAGE
= '1'¶ Letzte verarbeitete Nachrichtennummer zurückmelden
-
SIGNATURE_ID
= '2'¶ Signatur-ID zurückmelden
-
-
class
fints.formals.
CreditDebit2
(*args, **kwargs)[source]¶ Soll-Haben-Kennzeichen, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
CREDIT
= 'C'¶ Haben
-
DEBIT
= 'D'¶ Soll
-
-
class
fints.formals.
Balance1
(*args, **kwargs)[source]¶ Saldo, version 1
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation
-
credit_debit
¶ Soll-Haben-Kennzeichen
Type: fints.formals.CreditDebit2
-
amount
¶ Wert
Type: decimal.Decimal
-
date
¶ Datum
Type: datetime.date
-
time
¶ Uhrzeit
Type: datetime.time
-
-
class
fints.formals.
Balance2
(*args, **kwargs)[source]¶ Saldo, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
credit_debit
¶ Soll-Haben-Kennzeichen
Type: fints.formals.CreditDebit2
-
amount
¶ Betrag
Type: fints.formals.Amount1
-
date
¶ Datum
Type: datetime.date
-
time
¶ Uhrzeit
Type: datetime.time
-
-
class
fints.formals.
Timestamp1
(*args, **kwargs)[source]¶ Zeitstempel
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
date
¶ Datum
Type: datetime.date
-
time
¶ Uhrzeit
Type: datetime.time
-
-
class
fints.formals.
TANMediaType2
(*args, **kwargs)[source]¶ TAN-Medium-Art
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
ALL
= '0'¶ Alle
-
ACTIVE
= '1'¶ Aktiv
-
AVAILABLE
= '2'¶ Verfügbar
-
-
class
fints.formals.
TANMediaClass3
(*args, **kwargs)[source]¶ TAN-Medium-Klasse, version 3
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
ALL
= 'A'¶ Alle Medien
-
LIST
= 'L'¶ Liste
-
GENERATOR
= 'G'¶ TAN-Generator
-
MOBILE
= 'M'¶ Mobiltelefon mit mobileTAN
-
SECODER
= 'S'¶ Secoder
-
-
class
fints.formals.
TANMediaClass4
(*args, **kwargs)[source]¶ TAN-Medium-Klasse, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
ALL
= 'A'¶ Alle Medien
-
LIST
= 'L'¶ Liste
-
GENERATOR
= 'G'¶ TAN-Generator
-
MOBILE
= 'M'¶ Mobiltelefon mit mobileTAN
-
SECODER
= 'S'¶ Secoder
-
BILATERAL
= 'B'¶ Bilateral vereinbart
-
-
class
fints.formals.
TANMediumStatus
(*args, **kwargs)[source]¶ Status
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
ACTIVE
= '1'¶ Aktiv
-
AVAILABLE
= '2'¶ Verfügbar
-
ACTIVE_SUCCESSOR
= '3'¶ Aktiv Folgekarte
-
AVAILABLE_SUCCESSOR
= '4'¶ Verfügbar Folgekarte
-
-
class
fints.formals.
TANMedia4
(*args, **kwargs)[source]¶ TAN-Medium-Liste, version 4
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
tan_medium_class
¶ TAN-Medium-Klasse
Type: fints.formals.TANMediaClass3
-
status
¶ Status
Type: fints.formals.TANMediumStatus
-
account
¶ Kontonummer Auftraggeber
Type: fints.formals.Account3
-
valid_from
¶ Gültig ab
Type: datetime.date
-
valid_until
¶ Gültig bis
Type: datetime.date
-
sms_charge_account
¶ SMS-Abbuchungskonto
Type: fints.formals.KTI1
-
last_use
¶ Letzte Benutzung
Type: datetime.date
-
active_since
¶ Freigeschaltet am
Type: datetime.date
-
-
class
fints.formals.
TANMedia5
(*args, **kwargs)[source]¶ TAN-Medium-Liste, version 5
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
tan_medium_class
¶ TAN-Medium-Klasse
Type: fints.formals.TANMediaClass4
-
status
¶ Status
Type: fints.formals.TANMediumStatus
-
account
¶ Kontonummer Auftraggeber
Type: fints.formals.Account3
-
valid_from
¶ Gültig ab
Type: datetime.date
-
valid_until
¶ Gültig bis
Type: datetime.date
-
sms_charge_account
¶ SMS-Abbuchungskonto
Type: fints.formals.KTI1
-
last_use
¶ Letzte Benutzung
Type: datetime.date
-
active_since
¶ Freigeschaltet am
Type: datetime.date
-
-
class
fints.formals.
TANUsageOption
(*args, **kwargs)[source]¶ TAN-Einsatzoption
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
ALL_ACTIVE
= '0'¶ Kunde kann alle “aktiven” Medien parallel nutzen
-
EXACTLY_ONE
= '1'¶ Kunde kann genau ein Medium zu einer Zeit nutzen
-
MOBILE_AND_GENERATOR
= '2'¶ Kunde kann ein Mobiltelefon und einen TAN-Generator parallel nutzen
-
-
class
fints.formals.
ParameterChallengeClass
(*args, **kwargs)[source]¶ Parameter Challenge-Klasse
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
class
fints.formals.
ResponseHHDUC
(*args, **kwargs)[source]¶ Antwort HHD_UC
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
class
fints.formals.
ChallengeValidUntil
(*args, **kwargs)[source]¶ Gültigkeitsdatum und -uhrzeit für Challenge
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN
-
date
¶ Datum
Type: datetime.date
-
time
¶ Uhrzeit
Type: datetime.time
-
-
class
fints.formals.
BatchTransferParameter1
(*args, **kwargs)[source]¶ Parameter SEPA-Sammelüberweisung, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
ServiceType2
(*args, **kwargs)[source]¶ An enumeration.
-
T_ONLINE
= 1¶ T-Online
-
TCP_IP
= 2¶ TCP/IP (Protokollstack SLIP/PPP)
-
HTTPS
= 3¶ https
-
-
class
fints.formals.
CommunicationParameter2
(*args, **kwargs)[source]¶ Kommunikationsparameter, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals
-
service_type
¶ Kommunikationsdienst
Type: fints.formals.ServiceType2
-
-
class
fints.formals.
ScheduledDebitParameter1
(*args, **kwargs)[source]¶ Parameter terminierte SEPA-Einzellastschrift einreichen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
ScheduledDebitParameter2
(*args, **kwargs)[source]¶ Parameter terminierte SEPA-Einzellastschrift einreichen, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
ScheduledBatchDebitParameter1
(*args, **kwargs)[source]¶ Parameter terminierte SEPA-Sammellastschrift einreichen, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
ScheduledBatchDebitParameter2
(*args, **kwargs)[source]¶ Parameter terminierte SEPA-Sammellastschrift einreichen, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
ScheduledCOR1DebitParameter1
(*args, **kwargs)[source]¶ Parameter terminierte SEPA-COR1-Einzellastschrift, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
ScheduledCOR1BatchDebitParameter1
(*args, **kwargs)[source]¶ Parameter terminierte SEPA-COR1-Sammellastschrift, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
SupportedSEPAPainMessages1
(*args, **kwargs)[source]¶ Unterstützte SEPA pain messages, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
QueryScheduledDebitParameter1
(*args, **kwargs)[source]¶ Parameter Bestand terminierter SEPA-Einzellastschriften, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
QueryScheduledDebitParameter2
(*args, **kwargs)[source]¶ Parameter Bestand terminierter SEPA-Einzellastschriften, version 2
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
QueryScheduledBatchDebitParameter1
(*args, **kwargs)[source]¶ Parameter Bestand terminierter SEPA-Sammellastschriften, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle
-
class
fints.formals.
QueryCreditCardStatements2
(*args, **kwargs)[source]¶ Parameter Kreditkartenumsätze anfordern, version 2
Source: reverse engineered
-
class
fints.formals.
SEPACCode1
(*args, **kwargs)[source]¶ An enumeration.
-
REVERSAL
= '1'¶ Reversal
-
REVOCATION
= '2'¶ Revocation
-
DELETION
= '3'¶ Delete
-
-
class
fints.formals.
StatusSEPATask1
(*args, **kwargs)[source]¶ An enumeration.
-
PENDING
= '1'¶ In Terminierung
-
DECLINED
= '2'¶ Abgelehnt von erster Inkassostelle
-
IN_PROGRESS
= '3'¶ in Bearbeitung
-
PROCESSED
= '4'¶ Creditoren-seitig verarbeitet, Buchung veranlasst
-
REVOKED
= '5'¶ R-Transaktion wurde veranlasst
-
-
class
fints.formals.
GetSEPAAccountParameter1
(*args, **kwargs)[source]¶ Parameter SEPA-Kontoverbindung anfordern, version 1
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages – Multibankfähige Geschäftsvorfälle