python-fints
python-fints copied to clipboard
DKB: Error during dialog initialization, could not fetch BPD
Describe the bug
Execution of the test script fails with this error:
fints.exceptions.FinTSClientError: Error during dialog initialization, could not fetch BPD. Please check that you passed the correct bank identifier to the HBCI URL of the correct bank.
*Bank I tested this with Name of the bank: DKB FinTS URL: https://banking-dkb.s-fints-pt-dkb.de/fints30
Expected behavior Test script should execute without error.
Code required to reproduce See test script With these parameters:
client_args = (
'12030000', # BLZ
'********', # USER
getpass.getpass('PIN: '),
'https://banking-dkb.s-fints-pt-dkb.de/fints30' # ENDPOINT
)
Log output / error message
Log
WARNING:fints.client:You should register your program with the ZKA and pass your own product_id as a parameter.
DEBUG:fints.connection:Sending >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
fints.message.FinTSCustomerMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 383, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '0', # Dialog-ID
message_number = 1, # Nachrichtennummer
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = '0',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 40, 799136),
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '999', # Sicherheitsfunktion, kodiert
security_reference = '7613855', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = '0',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 40, 798518),
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.auth.HKIDN2( # Identifikation, version 2
header = fints.formals.SegmentHeader('HKIDN', 3, 2), # Segmentkopf
bank_identifier = fints.formals.BankIdentifier( # Kreditinstitutskennung
country_identifier = '280',
bank_code = '12030000',
),
customer_id = '********', # Kunden-ID
system_id = '0', # Kundensystem-ID
system_id_status = fints.formals.SystemIDStatus.ID_NECESSARY, # Kundensystem-Status: Kundensystem-ID wird benötigt
),
fints.segments.auth.HKVVB3( # Verarbeitungsvorbereitung, version 3
header = fints.formals.SegmentHeader('HKVVB', 4, 3), # Segmentkopf
bpd_version = 0, # BPD-Version
upd_version = 0, # UPD-Version
language = fints.formals.Language2.DE, # Dialogsprache: Deutsch, 'de', Subset Deutsch, Codeset 1 (Latin 1)
product_name = 'DC333D745719C4BD6A6F9DB6A', # Produktbezeichnung
product_version = '3.0.0', # Produktversion
),
fints.segments.dialog.HKSYN3( # Synchronisierung, version 3
header = fints.formals.SegmentHeader('HKSYN', 5, 3), # Segmentkopf
synchronization_mode = fints.formals.SynchronizationMode.NEW_SYSTEM_ID, # Neue Kundensystem-ID zurückmelden
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 6, 2), # Segmentkopf
security_reference = '7613855', # Sicherheitskontrollreferenz
user_defined_signature = fints.formals.UserDefinedSignature( # Benutzerdefinierte Signatur
pin = '***',
),
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 7, 1), # Segmentkopf
message_number = 1, # Nachrichtennummer
),
])
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): banking-dkb.s-fints-pt-dkb.de:443
DEBUG:urllib3.connectionpool:https://banking-dkb.s-fints-pt-dkb.de:443 "POST /fints30 HTTP/1.1" 200 15850
DEBUG:fints.connection:Received <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ fints.message.FinTSInstituteMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 11583, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '189206386060=898044428522BLDS=', # Dialog-ID
message_number = 1, # Nachrichtennummer
reference_message = fints.formals.ReferenceMessage( # Bezugsnachricht
dialog_id = '189206386060=898044428522BLDS=',
message_number = 1,
),
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = '0',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 40),
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '999', # Sicherheitsfunktion, kodiert
security_reference = '7613855', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = '0',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 40),
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.dialog.HIRMG2( # Rückmeldungen zur Gesamtnachricht
header = fints.formals.SegmentHeader('HIRMG', 3, 2), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '3060',
reference_element = None,
text = 'Bitte beachten Sie die enthaltenen Warnungen/Hinweise.',
),
],
),
fints.segments.dialog.HIRMS2( # Rückmeldungen zu Segmenten
header = fints.formals.SegmentHeader('HIRMS', 4, 2, 5), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '0020',
reference_element = None,
text = 'Auftrag ausgeführt.',
),
],
),
fints.segments.dialog.HIRMS2( # Rückmeldungen zu Segmenten
header = fints.formals.SegmentHeader('HIRMS', 5, 2, 4), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '3050',
reference_element = None,
text = 'BPD nicht mehr aktuell, aktuelle Version enthalten.',
),
fints.formals.Response( # Rückmeldung
code = '3920',
reference_element = None,
text = 'Zugelassene Zwei-Schritt-Verfahren für den Benutzer.',
parameters = [
'921',
],
),
fints.formals.Response( # Rückmeldung
code = '0020',
reference_element = None,
text = 'Der Auftrag wurde ausgeführt.',
),
],
),
fints.segments.bank.HIBPA3( # Bankparameter allgemein, version 3
header = fints.formals.SegmentHeader('HIBPA', 6, 3, 4), # Segmentkopf
bpd_version = 7, # BPD-Version
bank_identifier = fints.formals.BankIdentifier( # Kreditinstitutskennung
country_identifier = '280',
bank_code = '12030000',
),
bank_name = 'Deutsche Kreditbank Aktiengesellschaft', # Kreditinstitutsbezeichnung
number_tasks = 3, # Anzahl Geschäftsvorfallarten pro Nachricht
supported_languages = fints.formals.SupportedLanguages2( # Unterstützte Sprachen
languages = [
fints.formals.Language2.DE, # Deutsch, 'de', Subset Deutsch, Codeset 1 (Latin 1)
],
),
supported_hbci_version = fints.formals.SupportedHBCIVersions2( # Unterstützte HBCI-Versionen
versions = [
'300',
],
),
),
fints.segments.bank.HIKOM4( # Kommunikationszugang rückmelden, version 4
header = fints.formals.SegmentHeader('HIKOM', 7, 4, 4), # Segmentkopf
bank_identifier = fints.formals.BankIdentifier( # Kreditinstitutskennung
country_identifier = '280',
bank_code = '12030000',
),
default_language = fints.formals.Language2.DE, # Standardsprache: Deutsch, 'de', Subset Deutsch, Codeset 1 (Latin 1)
communication_parameters = [ # Kommunikationsparameter
fints.formals.CommunicationParameter2( # Kommunikationsparameter
service_type = fints.formals.ServiceType2.HTTPS, # Kommunikationsdienst: https
address = 'banking-dkb.s-fints-pt-dkb.de/fints30', # Kommunikationsadresse
),
fints.formals.CommunicationParameter2( # Kommunikationsparameter
service_type = fints.formals.ServiceType2.TCP_IP, # Kommunikationsdienst: TCP/IP (Protokollstack SLIP/PPP)
address = 'banking.s-fints-pt-dkb.de', # Kommunikationsadresse
filter_function = 'MIM', # Filterfunktion
filter_function_version = 1, # Version der Filterfunktion
),
],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HISHV', 8, 3, 4), # Segmentkopf
_additional_data = ['N', ['DDV', '1'], ['PIN', '1']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICSUS', 9, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['INTC;CORT', 'urn:iso:std:iso:20022:tech:xsd:pain.001.003.03', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPKBS', 10, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPKAS', 11, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPCRS', 12, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPWES', 13, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPWLS', 14, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'J', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPWBS', 15, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPWAS', 16, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIIPZS', 17, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', [';', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIIPSS', 18, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['10', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWOKS', 19, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['9999999,99', 'EUR']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWDHS', 20, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'N', '730']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVES', 21, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'E'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIPTZS', 22, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'J'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIEEAS', 23, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['DKPTZ', '1', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIALES', 24, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['V-EC-KARTE', 'V-S-CARD', 'V-WERTKARTE']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIALLS', 25, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIALNS', 26, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['V-EC-KARTE', 'V-S-CARD', 'V-WERTKARTE']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIANAS', 27, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['1', '15']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIANLS', 28, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBAZS', 29, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBKDS', 30, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBKDS', 31, 4, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBKUS', 32, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBUMS', 33, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVAS', 34, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVBS', 35, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVDS', 36, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVKS', 37, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'V-EC-KARTE', 'V-S-CARD', 'V-WERTKARTE']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVPS', 38, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['8', '20']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVRS', 39, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['8', '20', None, 'N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVSS', 40, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIBVSS', 41, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFAS', 42, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFBS', 43, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFCS', 44, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFDS', 45, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFLS', 46, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFUS', 47, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFUS', 48, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDIHS', 49, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFSS', 50, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', '1;DekaBank-Konzern;5;Swisscanto;7;JPMorgan Fleming;8;Lombard Odier;10;Franklin Templeton;11;Gartmore;12;Goldman Sachs;13;Black Rock Merrill;14;Threadneedle;15;UBS;16;Schroders', '10_10', 'Aktienfonds Asien - Pazifik ohne Japan', '10_20', 'Aktienfonds Branche', '10_30', 'Aktienfonds Deutschland', '10_40', 'Aktienfonds Emerging Markets', '10_50', 'Aktienfonds Euroland', '10_60', 'Aktienfonds Europa Länder', '10_70', 'Aktienfonds Europa', '10_80', 'Aktienfonds Japan', '10_90', 'Aktienfonds Lateinamerika', '10_100', 'Aktienfonds Nordamerika', '10_110', 'Aktienfonds Osteuropa', '10_120', 'Aktienfonds Welt', '10_400', 'Aktienfonds Afrika', '10_410', 'Aktienfonds Mittlerer Osten', '10_420', 'Aktienfonds Nordeuropa', '20_130', 'Dachfonds Chance Plus', '20_140', 'Dachfonds Chance', '20_150', 'Dachfonds Ertrag Plus', '20_160', 'Dachfonds Ertrag', '20_170', 'Dachfonds Wachstum', '20_180', 'Dachfonds laufzeitbegrenzt', '30_430', 'Garantiefonds', '40_200', 'Geldmarktfonds', '40_210', 'Geldmarktnahe Fonds', '50_220', 'Alternative Investmentfonds Hedgefonds', '50_230', 'Alternative Investmentfonds Private Equity', '50_240', 'Alternative Investmentfonds Rohstofffonds', '60_250', 'Sonderkonzepte Absolute-/Total-Returnstrategiefonds', '60_260', 'Sonderkonzepte Altersvorsorgefonds', '60_270', 'Sonderkonzepte Institutionelle Fondskonzepte', '60_280', 'Sonderkonzepte Steuerorientierte Fonds', '70_30', 'Immobilienfonds Deutschland', '70_70', 'Immobilienfonds Europa', '70_120', 'Immobilienfonds Welt', '80_50', 'Mischfonds Euroland', '80_290', 'Mischfonds ausgewogen', '80_300', 'Mischfonds dynamisch', '80_310', 'Mischfonds flexibel', '80_320', 'Mischfonds konservativ', '90_330', 'Rentenfonds Inflationsindexierte Anleihen', '90_340', 'Rentenfonds Laufzeitfonds', '90_350', 'Rentenfonds MBS', '90_360', 'Rentenfonds Nachranganleihen', '90_370', 'Rentenfonds Staatsanleihen', '90_380', 'Rentenfonds Unternehmensanleihen', '90_390', 'Rentenfonds Wandelanleihen']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDDIS', 51, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['DKDOF;2', 'DKDFO;2']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFOS', 52, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFPS', 53, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDPFS', 54, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDFES', 55, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDEFS', 56, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIDOFS', 57, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIFAFS', 58, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIGBAS', 59, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIGBSS', 60, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'J'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIKSBS', 61, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', 'J'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIKSPS', 62, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', [';', 'sepade.pain.001.001.02.xsd', 'sepade.pain.001.002.02.xsd', 'sepade.pain.001.002.03.xsd', 'urn:iso:std:iso:20022:tech:xsd:pain.001.003.03', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIPAES', 63, 1, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIPSAS', 64, 1, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIPSPS', 65, 1, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIQUOS', 66, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIQUTS', 67, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DITLAS', 68, 1, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DITLFS', 69, 1, 4), # Segmentkopf
_additional_data = ['1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DITLFS', 70, 2, 4), # Segmentkopf
_additional_data = ['1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DITSPS', 71, 1, 4), # Segmentkopf
_additional_data = ['1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIVVDS', 72, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIVVUS', 73, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWAPS', 74, 1, 4), # Segmentkopf
_additional_data = ['1', '1', ['J', 'STOP;SLOS;LMTO;MAKT', 'J', 'J', 'GDAY;GTMO;GTHD', 'J', '1', 'N', 'N', 'N', '9999999,99', 'EUR']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWAPS', 75, 4, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'STOP;STLI;LMTO;MAKT;OCOO;TRST', 'J', 'J', 'J', 'J', 'J', 'GDAY;GTMO;GTHD', 'J', '1', 'N', 'N', 'N', '9999999,99', 'EUR']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWDGS', 76, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWGVS', 77, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', '730', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWLVS', 78, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', '365', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DINZPS', 79, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N', '4', 'N', 'N', None, None, 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIFOPS', 80, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', '4', 'N', 'N', 'N', None, None, None, 'MAKT', 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIFPOS', 81, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', '4', 'N', 'N', None, None, 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWOPS', 82, 5, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['0', 'N', '4', 'N', 'N', None, None, None, '9999999,99', 'EUR', 'STOP;STLI;LMTO;MAKT;OCOO;TRST', 'BUYI;SELL;AUCT;CONT;ALNO;DIHA', 'GDAY;GTMO;GTHD;GTCA;IOCA;OPEN;CLOS;FIKI', 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIWVBS', 83, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIZDFS', 84, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('DIZDLS', 85, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIAUBS', 86, 5, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIBMES', 87, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['2', '28', '2', '28', '1000', 'J', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIBSES', 88, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['2', '28', '2', '28']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICAZS', 89, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['450', 'N', 'N', 'urn:iso:std:iso:20022:tech:xsd:camt.052.001.02']],
),
fints.segments.transfer.HICCMS1( # SEPA-Sammelüberweisung Parameter, version 1
header = fints.formals.SegmentHeader('HICCMS', 90, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.BatchTransferParameter1( # Parameter SEPA-Sammelüberweisung
max_transfer_count = 1000, # Maximale Anzahl CreditTransferTransactionInformation
sum_amount_required = True, # Summenfeld benötigt
single_booking_allowed = False, # Einzelbuchung erlaubt
),
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICCSS', 91, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICDBS', 92, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICDES', 93, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['4', '0', '9999', '0102030612', '01020304050607080910111213141516171819202122232425262728293099']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICDLS', 94, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['0', '9999', 'J', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICDNS', 95, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['0', '0', '9999', 'J', 'J', 'J', 'J', 'J', 'N', 'J', 'J', 'J', '0102030612', '01020304050607080910111213141516171819202122232425262728293099']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICDUS', 96, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['1', '0', '9999', '1', 'N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICMBS', 97, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICMES', 98, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['1', '360', '1000', 'J', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICMLS', 99, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICSAS', 100, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['1', '360']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICSBS', 101, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICSES', 102, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['1', '360']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICSLS', 103, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'J'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICUBS', 104, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', 'J'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HICUMS', 105, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', [';', 'sepade.pain.001.001.02.xsd', 'sepade.pain.001.002.02.xsd', 'sepade.pain.001.002.03.xsd', 'urn:iso:std:iso:20022:tech:xsd:pain.001.003.03', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03']],
),
fints.segments.debit.HIDMCS1( # Terminierte SEPA-COR1-Sammellastschrift Parameter, version 1
header = fints.formals.SegmentHeader('HIDMCS', 106, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.ScheduledCOR1BatchDebitParameter1( # Parameter terminierte SEPA-COR1-Sammellastschrift
max_debit_count = 1000, # Maximale Anzahl DirectDebitTransfer TransactionInformation
sum_amount_required = True, # Summenfeld benötigt
single_booking_allowed = False, # Einzelbuchung erlaubt
min_advance_notice_FNAL_RCUR = 2, # Minimale Vorlaufzeit FNAL/RCUR
max_advance_notice_FNAL_RCUR = 28, # Maximale Vorlaufzeit FNAL/RCUR
min_advance_notice_FRST_OOFF = 2, # Minimale Vorlaufzeit FRST/OOFF
max_advance_notice_FRST_OOFF = 28, # Maximale Vorlaufzeit FRST/OOFF
supported_sepa_formats = [ # Unterstützte SEPA-Datenformate
'urn:iso:std:iso:20022:tech:xsd:pain.008.003.02', # Unterstützte SEPA-Datenformate
],
),
),
fints.segments.debit.HIDMES1( # Terminierte SEPA-Sammellastschrift einreichen Parameter, version 1
header = fints.formals.SegmentHeader('HIDMES', 107, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.ScheduledBatchDebitParameter1( # Parameter terminierte SEPA-Sammellastschrift einreichen
min_advance_notice_FNAL_RCUR = 2, # Minimale Vorlaufzeit FNAL/RCUR
max_advance_notice_FNAL_RCUR = 28, # Maximale Vorlaufzeit FNAL/RCUR
min_advance_notice_FRST_OOFF = 2, # Minimale Vorlaufzeit FRST/OOFF
max_advance_notice_FRST_OOFF = 28, # Maximale Vorlaufzeit FRST/OOFF
max_debit_count = 1000, # Maximale Anzahl DirectDebitTransfer TransactionInformation
sum_amount_required = True, # Summenfeld benötigt
single_booking_allowed = False, # Einzelbuchung erlaubt
),
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIDSBS', 108, 1, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['J', 'J', '56']],
),
fints.segments.debit.HIDSCS1( # Terminierte SEPA-COR1-Einzellastschrift Parameter, version 1
header = fints.formals.SegmentHeader('HIDSCS', 109, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.ScheduledCOR1DebitParameter1( # Parameter terminierte SEPA-COR1-Einzellastschrift
min_advance_notice_FNAL_RCUR = 2, # Minimale Vorlaufzeit FNAL/RCUR
max_advance_notice_FNAL_RCUR = 28, # Maximale Vorlaufzeit FNAL/RCUR
min_advance_notice_FRST_OOFF = 2, # Minimale Vorlaufzeit FRST/OOFF
max_advance_notice_FRST_OOFF = 28, # Maximale Vorlaufzeit FRST/OOFF
supported_sepa_formats = [ # Unterstützte SEPA-Datenformate
'urn:iso:std:iso:20022:tech:xsd:pain.008.003.02', # Unterstützte SEPA-Datenformate
],
),
),
fints.segments.debit.HIDSES1( # Terminierte SEPA-Einzellastschrift einreichen Parameter, version 1
header = fints.formals.SegmentHeader('HIDSES', 110, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.ScheduledDebitParameter1( # Parameter terminierte SEPA-Sammellastschrift einreichen
min_advance_notice_FNAL_RCUR = 2, # Minimale Vorlaufzeit FNAL/RCUR
max_advance_notice_FNAL_RCUR = 28, # Maximale Vorlaufzeit FNAL/RCUR
min_advance_notice_FRST_OOFF = 2, # Minimale Vorlaufzeit FRST/OOFF
max_advance_notice_FRST_OOFF = 28, # Maximale Vorlaufzeit FRST/OOFF
),
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIDSWS', 111, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIEKAS', 112, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'N', 'N', '1']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIEKAS', 113, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'N', 'N', '1']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIEKPS', 114, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'J', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIFGBS', 115, 2, 4), # Segmentkopf
_additional_data = ['3', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIFGBS', 116, 3, 4), # Segmentkopf
_additional_data = ['3', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIFRDS', 117, 1, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIFRDS', 118, 4, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'J', 'N', '0', 'Kreditinstitut', '1', 'DekaBank']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKAZS', 119, 4, 4), # Segmentkopf
_additional_data = ['1', '1', ['360', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKAZS', 120, 5, 4), # Segmentkopf
_additional_data = ['1', '1', ['360', 'J', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKDMS', 121, 2, 4), # Segmentkopf
_additional_data = ['3', '0', '2048'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKDMS', 122, 3, 4), # Segmentkopf
_additional_data = ['3', '0', '2048'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKDMS', 123, 4, 4), # Segmentkopf
_additional_data = ['3', '0', '2048'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKIFS', 124, 1, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKIFS', 125, 4, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKIFS', 126, 5, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIKIFS', 127, 6, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIMTAS', 128, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIMTAS', 129, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIMTFS', 130, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIMTRS', 131, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', 'N'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIMTRS', 132, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HINEAS', 133, 1, 4), # Segmentkopf
_additional_data = ['1', '1', ['1', '2', '3', '4']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HINEZS', 134, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N', '4', 'N', 'N', None, None, 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWFOS', 135, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', '4', 'N', 'N', 'N', None, None, None, 'MAKT', 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWPOS', 136, 5, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['0', 'N', '4', 'N', 'N', None, None, None, '9999999,99', 'EUR', 'STOP;STLI;LMTO;MAKT;OCOO;TRST', 'BUYI;SELL;AUCT;CONT;ALNO;DIHA', 'GDAY;GTMO;GTHD;GTCA;IOCA;OPEN;CLOS;FIKI', 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWSDS', 137, 5, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['J', 'A;Inland DAX', 'B;Inland Sonstige', 'C;Ausland Europa', 'D;Ausland Sonstige']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIFPOS', 138, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', '4', 'N', 'N', None, None, 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPAES', 139, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIPPDS', 140, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['1', 'Telekom', 'Xtra-Card', 'N', None, None, '15;30;50', '2', 'Vodafone', 'CallYa', 'N', None, None, '15;25;50', '3', 'E-Plus', 'Free and easy', 'N', None, None, '15;20;30', '4', 'O2', 'Loop', 'N', None, None, '15;20;30', '5', 'congstar', 'congstar', 'N', None, None, '15;30;50', '6', 'blau', 'blau', 'N', None, None, '15;20;30', '8', 'o.tel.o', 'o.tel.o', 'N', None, None, '9;19;29', '9', 'SIM Guthaben', 'SIM Guthaben', 'N', None, None, '15;30;50']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HISALS', 141, 3, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HISALS', 142, 4, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HISALS', 143, 5, 4), # Segmentkopf
_additional_data = ['1', '1'],
),
fints.segments.accounts.HISPAS1( # SEPA-Kontoverbindung anfordern, Parameter, version 1
header = fints.formals.SegmentHeader('HISPAS', 144, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.GetSEPAAccountParameter1( # Parameter SEPA-Kontoverbindung anfordern
single_account_query_allowed = True, # Einzelkontenabruf erlaubt
national_account_allowed = False, # Nationale Kontoverbindung erlaubt
structured_purpose_allowed = False, # Strukturierter Verwendungszweck erlaubt
supported_sepa_formats = [ # Unterstützte SEPA-Datenformate
'sepade.pain.001.001.02.xsd', # Unterstützte SEPA-Datenformate
'sepade.pain.001.002.02.xsd', # Unterstützte SEPA-Datenformate
'sepade.pain.001.002.03.xsd', # Unterstützte SEPA-Datenformate
'sepade.pain.008.002.02.xsd', # Unterstützte SEPA-Datenformate
'urn:iso:std:iso:20022:tech:xsd:pain.001.003.03', # Unterstützte SEPA-Datenformate
'urn:iso:std:iso:20022:tech:xsd:pain.008.003.02', # Unterstützte SEPA-Datenformate
'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03', # Unterstützte SEPA-Datenformate
'urn:iso:std:iso:20022:tech:xsd:pain.008.001.02', # Unterstützte SEPA-Datenformate
],
),
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HISPAS', 145, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'N', 'N', 'N', 'sepade.pain.001.001.02.xsd', 'sepade.pain.001.002.02.xsd', 'sepade.pain.001.002.03.xsd', 'sepade.pain.008.002.02.xsd', 'urn:iso:std:iso:20022:tech:xsd:pain.001.003.03', 'urn:iso:std:iso:20022:tech:xsd:pain.008.003.02', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03', 'urn:iso:std:iso:20022:tech:xsd:pain.008.001.02']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITABS', 146, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITABS', 147, 3, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITABS', 148, 4, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITAUS', 149, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N', 'J']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITAZS', 150, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITAZS', 151, 2, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITMLS', 152, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HITSYS', 153, 1, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWDUS', 154, 4, 4), # Segmentkopf
_additional_data = ['3', '1', '999'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWFPS', 155, 2, 4), # Segmentkopf
_additional_data = ['3', '1', ['RENTEN', 'INVESTMENTFONDS', 'GENUSSSCHEINE', 'SPARBRIEFE', 'UNTERNEHMENSANLEIHEN', 'EMERGING MARKET ANLEIHEN', 'STRUKTURIERTE ANLEIHEN', 'ZERTIFIKATE', 'AKTIEN', 'OPTIONSSCHEINE', 'ALLE ANGEBOTE EIGENES INSTITUT', 'ALLE ANGEBOTE UEBERGEORD. INSTITUTE']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWOAS', 156, 2, 4), # Segmentkopf
_additional_data = ['1', '1', ['J', 'STOP;SLOS;LMTO;MAKT', 'J', 'J', 'GDAY;GTMO;GTHD', 'J', '1', 'N', 'N', 'N', '9999999,99', 'EUR']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWOAS', 157, 4, 4), # Segmentkopf
_additional_data = ['1', '1', '1', ['J', 'STOP;STLI;LMTO;MAKT;OCOO;TRST', 'J', 'J', 'J', 'J', 'J', 'GDAY;GTMO;GTHD', 'J', '1', 'N', 'N', 'N', '9999999,99', 'EUR']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWPDS', 158, 3, 4), # Segmentkopf
_additional_data = ['3', '1', 'J'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWPDS', 159, 5, 4), # Segmentkopf
_additional_data = ['1', '1', ['J', 'N', 'N']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWPKS', 160, 1, 4), # Segmentkopf
_additional_data = ['3', '0'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWPRS', 161, 1, 4), # Segmentkopf
_additional_data = ['3', '1', ['J', 'J', 'N', 'N', None, 'Aktien', 'Festverzinsliche Wertpapiere', 'Fonds', 'Fremdwährungsanleihen', 'Genussscheine', 'Indexzertifikate', 'Optionsscheine', 'Wandel- und Optionsanleihen cum']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWPSS', 162, 1, 4), # Segmentkopf
_additional_data = ['3', '1', 'J'],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWSOS', 163, 4, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['J', 'J', '90', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']],
),
fints.segments.base.FinTS3Segment(
header = fints.formals.SegmentHeader('HIWSOS', 164, 5, 4), # Segmentkopf
_additional_data = ['3', '1', '1', ['J', 'J', '90', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17']],
),
fints.segments.auth.HITANS1(
header = fints.formals.SegmentHeader('HITANS', 165, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.ParameterTwostepTAN1(
onestep_method_allowed = True,
multiple_tasks_allowed = False,
task_hash_algorithm = fints.formals.TaskHashAlgorithm.NONE, # Auftrags-Hashwertverfahren: Auftrags-Hashwert nicht unterstützt
security_profile_bank_signature = '0',
twostep_parameters = [
fints.formals.TwoStepParameters1(
security_function = '920', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'smsTAN', # Technische Identifikation TAN-Verfahren
name = 'smsTAN', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_delayed_allowed = True, # TAN zeitversetzt/dialogübergreifend erlaubt
),
fints.formals.TwoStepParameters1(
security_function = '900', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'iTAN', # Technische Identifikation TAN-Verfahren
name = 'iTAN', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_delayed_allowed = True, # TAN zeitversetzt/dialogübergreifend erlaubt
),
],
),
),
fints.segments.auth.HITANS3(
header = fints.formals.SegmentHeader('HITANS', 166, 3, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.ParameterTwostepTAN3(
onestep_method_allowed = True,
multiple_tasks_allowed = False,
task_hash_algorithm = fints.formals.TaskHashAlgorithm.NONE, # Auftrags-Hashwertverfahren: Auftrags-Hashwert nicht unterstützt
twostep_parameters = [
fints.formals.TwoStepParameters3(
security_function = '910', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'HHD1.3.0', # Technische Identifikation TAN-Verfahren
name = 'chipTAN manuell', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
tan_list_number_required = fints.formals.TANListNumberRequired.NO, # TAN-Listennummer erforderlich: Nein
cancel_allowed = False, # Auftragsstorno erlaubt
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_value_required = False, # Challenge-Betrag erforderlich
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters3(
security_function = '911', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'HHD1.3.2OPT', # Technische Identifikation TAN-Verfahren
name = 'chipTAN optisch', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
tan_list_number_required = fints.formals.TANListNumberRequired.NO, # TAN-Listennummer erforderlich: Nein
cancel_allowed = False, # Auftragsstorno erlaubt
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_value_required = False, # Challenge-Betrag erforderlich
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters3(
security_function = '912', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'HHD1.3.2USB', # Technische Identifikation TAN-Verfahren
name = 'chipTAN-USB', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
tan_list_number_required = fints.formals.TANListNumberRequired.NO, # TAN-Listennummer erforderlich: Nein
cancel_allowed = False, # Auftragsstorno erlaubt
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_value_required = False, # Challenge-Betrag erforderlich
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters3(
security_function = '913', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'Q1S', # Technische Identifikation TAN-Verfahren
name = 'chipTAN-QR', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
tan_list_number_required = fints.formals.TANListNumberRequired.NO, # TAN-Listennummer erforderlich: Nein
cancel_allowed = False, # Auftragsstorno erlaubt
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_value_required = False, # Challenge-Betrag erforderlich
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters3(
security_function = '920', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'smsTAN', # Technische Identifikation TAN-Verfahren
name = 'smsTAN', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
tan_list_number_required = fints.formals.TANListNumberRequired.NO, # TAN-Listennummer erforderlich: Nein
cancel_allowed = False, # Auftragsstorno erlaubt
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_value_required = False, # Challenge-Betrag erforderlich
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums muss angegeben werden
supported_media_number = 5, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters3(
security_function = '921', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'TAN2go', # Technische Identifikation TAN-Verfahren
name = 'TAN2go', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
tan_list_number_required = fints.formals.TANListNumberRequired.NO, # TAN-Listennummer erforderlich: Nein
cancel_allowed = False, # Auftragsstorno erlaubt
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_value_required = False, # Challenge-Betrag erforderlich
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums muss angegeben werden
supported_media_number = 2, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters3(
security_function = '900', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'iTAN', # Technische Identifikation TAN-Verfahren
name = 'iTAN', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
number_of_supported_lists = 1, # Anzahl unterstützter aktiver TAN-Listen
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
tan_list_number_required = fints.formals.TANListNumberRequired.NO, # TAN-Listennummer erforderlich: Nein
cancel_allowed = False, # Auftragsstorno erlaubt
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_value_required = False, # Challenge-Betrag erforderlich
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
supported_media_number = 0, # Anzahl unterstützter aktiver TAN-Medien
),
],
),
),
fints.segments.auth.HITANS6(
header = fints.formals.SegmentHeader('HITANS', 167, 6, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.AUTH, # Sicherheitsklasse: Sicherheitsdienst 'Authentikation'
parameter = fints.formals.ParameterTwostepTAN6(
onestep_method_allowed = True,
multiple_tasks_allowed = False,
task_hash_algorithm = fints.formals.TaskHashAlgorithm.NONE, # Auftrags-Hashwertverfahren: Auftrags-Hashwert nicht unterstützt
twostep_parameters = [
fints.formals.TwoStepParameters6(
security_function = '910', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'HHD1.3.0', # Technische Identifikation TAN-Verfahren
zka_id = None, # ZKA TAN-Verfahren
zka_version = None, # Version ZKA TAN-Verfahren
name = 'chipTAN manuell', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
cancel_allowed = False, # Auftragsstorno erlaubt
sms_charge_account_required = fints.formals.SMSChargeAccountRequired.MUST_NOT, # SMS-Abbuchungskonto erforderlich: SMS-Abbuchungskonto darf nicht angegeben werden
principal_account_required = fints.formals.PrincipalAccountRequired.MUST_NOT, # Auftraggeberkonto erforderlich: Auftraggeberkonto darf nicht angegeben werden
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_structured = False, # Challenge strukturiert
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
response_hhd_uc_required = False, # Antwort HHD_UC erforderlich
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters6(
security_function = '911', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'HHD1.3.2OPT', # Technische Identifikation TAN-Verfahren
zka_id = 'HHDOPT1', # ZKA TAN-Verfahren
zka_version = '1.3.2', # Version ZKA TAN-Verfahren
name = 'chipTAN optisch', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
cancel_allowed = False, # Auftragsstorno erlaubt
sms_charge_account_required = fints.formals.SMSChargeAccountRequired.MUST_NOT, # SMS-Abbuchungskonto erforderlich: SMS-Abbuchungskonto darf nicht angegeben werden
principal_account_required = fints.formals.PrincipalAccountRequired.MUST_NOT, # Auftraggeberkonto erforderlich: Auftraggeberkonto darf nicht angegeben werden
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_structured = False, # Challenge strukturiert
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
response_hhd_uc_required = False, # Antwort HHD_UC erforderlich
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters6(
security_function = '912', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'HHD1.3.2USB', # Technische Identifikation TAN-Verfahren
zka_id = 'HHDUSB1', # ZKA TAN-Verfahren
zka_version = '1.3.2', # Version ZKA TAN-Verfahren
name = 'chipTAN-USB', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
cancel_allowed = False, # Auftragsstorno erlaubt
sms_charge_account_required = fints.formals.SMSChargeAccountRequired.MUST_NOT, # SMS-Abbuchungskonto erforderlich: SMS-Abbuchungskonto darf nicht angegeben werden
principal_account_required = fints.formals.PrincipalAccountRequired.MUST_NOT, # Auftraggeberkonto erforderlich: Auftraggeberkonto darf nicht angegeben werden
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_structured = False, # Challenge strukturiert
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
response_hhd_uc_required = False, # Antwort HHD_UC erforderlich
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters6(
security_function = '913', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'Q1S', # Technische Identifikation TAN-Verfahren
zka_id = 'Secoder_UC', # ZKA TAN-Verfahren
zka_version = '1.2.0', # Version ZKA TAN-Verfahren
name = 'chipTAN-QR', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
cancel_allowed = False, # Auftragsstorno erlaubt
sms_charge_account_required = fints.formals.SMSChargeAccountRequired.MUST_NOT, # SMS-Abbuchungskonto erforderlich: SMS-Abbuchungskonto darf nicht angegeben werden
principal_account_required = fints.formals.PrincipalAccountRequired.MUST_NOT, # Auftraggeberkonto erforderlich: Auftraggeberkonto darf nicht angegeben werden
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_structured = False, # Challenge strukturiert
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
response_hhd_uc_required = False, # Antwort HHD_UC erforderlich
supported_media_number = 1, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters6(
security_function = '920', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'smsTAN', # Technische Identifikation TAN-Verfahren
zka_id = None, # ZKA TAN-Verfahren
zka_version = None, # Version ZKA TAN-Verfahren
name = 'smsTAN', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
cancel_allowed = False, # Auftragsstorno erlaubt
sms_charge_account_required = fints.formals.SMSChargeAccountRequired.MUST_NOT, # SMS-Abbuchungskonto erforderlich: SMS-Abbuchungskonto darf nicht angegeben werden
principal_account_required = fints.formals.PrincipalAccountRequired.MUST_NOT, # Auftraggeberkonto erforderlich: Auftraggeberkonto darf nicht angegeben werden
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_structured = False, # Challenge strukturiert
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums muss angegeben werden
response_hhd_uc_required = False, # Antwort HHD_UC erforderlich
supported_media_number = 5, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters6(
security_function = '921', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'TAN2go', # Technische Identifikation TAN-Verfahren
zka_id = None, # ZKA TAN-Verfahren
zka_version = None, # Version ZKA TAN-Verfahren
name = 'TAN2go', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
cancel_allowed = False, # Auftragsstorno erlaubt
sms_charge_account_required = fints.formals.SMSChargeAccountRequired.MUST_NOT, # SMS-Abbuchungskonto erforderlich: SMS-Abbuchungskonto darf nicht angegeben werden
principal_account_required = fints.formals.PrincipalAccountRequired.MUST_NOT, # Auftraggeberkonto erforderlich: Auftraggeberkonto darf nicht angegeben werden
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_structured = False, # Challenge strukturiert
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums muss angegeben werden
response_hhd_uc_required = False, # Antwort HHD_UC erforderlich
supported_media_number = 2, # Anzahl unterstützter aktiver TAN-Medien
),
fints.formals.TwoStepParameters6(
security_function = '900', # Sicherheitsfunktion kodiert
tan_process = '2', # TAN-Prozess
tech_id = 'iTAN', # Technische Identifikation TAN-Verfahren
zka_id = None, # ZKA TAN-Verfahren
zka_version = None, # Version ZKA TAN-Verfahren
name = 'iTAN', # Name des Zwei-Schritt-Verfahrens
max_length_input = 6, # Maximale Länge des Eingabewertes im Zwei-Schritt-Verfahren
allowed_format = fints.formals.AllowedFormat.NUMERIC, # Erlaubtes Format im Zwei-Schritt-Verfahren: numerisch
text_return_value = 'TAN-Nummer', # Text zur Belegung des Rückgabewertes im Zwei-Schritt-Verfahren
max_length_return_value = 3, # Maximale Länge des Rückgabewertes im Zwei-Schritt-Verfahren
multiple_tans_allowed = True, # Mehrfach-TAN erlaubt
tan_time_dialog_association = fints.formals.TANTimeDialogAssociation.ALLOWED, # TAN Zeit- und Dialogbezug: TAN zeitversetzt / dialogübergreifend erlaubt
cancel_allowed = False, # Auftragsstorno erlaubt
sms_charge_account_required = fints.formals.SMSChargeAccountRequired.MUST_NOT, # SMS-Abbuchungskonto erforderlich: SMS-Abbuchungskonto darf nicht angegeben werden
principal_account_required = fints.formals.PrincipalAccountRequired.MUST_NOT, # Auftraggeberkonto erforderlich: Auftraggeberkonto darf nicht angegeben werden
challenge_class_required = False, # Challenge-Klasse erforderlich
challenge_structured = False, # Challenge strukturiert
initialization_mode = fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN, # Initialisierungsmodus: Initialisierungsverfahren mit Klartext-PIN und ohne TAN
description_required = fints.formals.DescriptionRequired.MUST_NOT, # Bezeichnung des TAN-Medium erforderlich: Bezeichnung des TAN-Mediums darf nicht angegeben werden
response_hhd_uc_required = False, # Antwort HHD_UC erforderlich
supported_media_number = 0, # Anzahl unterstützter aktiver TAN-Medien
),
],
),
),
fints.segments.auth.HIPINS1( # PIN/TAN-spezifische Informationen, version 1
header = fints.formals.SegmentHeader('HIPINS', 168, 1, 4), # Segmentkopf
max_number_tasks = 1, # Maximale Anzahl Aufträge
min_number_signatures = 1, # Anzahl Signaturen mindestens
security_class = fints.formals.SecurityClass.NONE, # Sicherheitsklasse: Kein Sicherheitsdienst erforderlich
parameter = fints.formals.ParameterPinTan( # Parameter PIN/TAN-spezifische Informationen
min_pin_length = 5,
max_pin_length = 38,
max_tan_length = 6,
user_id_field_text = 'USERID',
customer_id_field_text = 'CUSTID',
transaction_tans_required = [
fints.formals.TransactionTanRequired(
transaction = 'HKAUB',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKBME',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKBSE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCAZ',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCCM',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCCS',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCDB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCDE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCDL',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCDN',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCDU',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCMB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCME',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCML',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCSA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCSB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCSE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCSL',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCSU',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKIPZ',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKIPS',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPKB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPKA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPWE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPWL',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPWB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPWA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCUB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKCUM',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKDMC',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKDME',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKDSB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKDSC',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKDSE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKDSW',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKEKA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKEKP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKFGB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKFRD',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKKAZ',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKKDM',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKKIF',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKMTA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKMTF',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKMTR',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKNEA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKNEZ',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWFO',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWPO',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKFPO',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWSD',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPAE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKPPD',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKQTG',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKSAL',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKSPA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKTAB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKTAU',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKTAZ',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKTML',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKTSY',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKUTA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWDU',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWFP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWOA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWPD',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWPK',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWPR',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWPS',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'HKWSO',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'HKTAN',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBKD',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBKU',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBUM',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKFDA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKPAE',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKPSA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKPSP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKTLA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKTLF',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKTSP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWAP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKALE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKALL',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKALN',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKANA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKANL',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBAZ',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVB',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVD',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVK',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVP',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVR',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVS',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFC',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFD',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFL',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFU',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDIH',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFS',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDDI',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFO',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFP',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDPF',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDFE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDEF',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKDOF',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKFAF',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKGBA',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKGBS',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKKAU',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKKKA',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKKKS',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKKKU',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKKSB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKKSP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKQUO',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKQUT',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKVVD',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKVVU',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWDG',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWGV',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWLV',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKNZP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKFOP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKFPO',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWOP',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWVB',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKZDF',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKZDL',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWOK',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKWDH',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKBVE',
tan_required = True,
),
fints.formals.TransactionTanRequired(
transaction = 'DKPTZ',
tan_required = False,
),
fints.formals.TransactionTanRequired(
transaction = 'DKEEA',
tan_required = False,
),
],
),
),
fints.segments.dialog.HISYN4( # Synchronisierungsantwort
header = fints.formals.SegmentHeader('HISYN', 169, 4, 5), # Segmentkopf
system_id = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA', # Kundensystem-ID
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 170, 2), # Segmentkopf
security_reference = '7613855', # Sicherheitskontrollreferenz
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 171, 1), # Segmentkopf
message_number = 1, # Nachrichtennummer
),
])
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
DEBUG:fints.connection:Sending >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
fints.message.FinTSCustomerMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 411, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '189206386060=898044428522BLDS=', # Dialog-ID
message_number = 2, # Nachrichtennummer
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 244880),
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '999', # Sicherheitsfunktion, kodiert
security_reference = '4224698', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 244655),
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.dialog.HKEND1( # Dialogende, version 1
header = fints.formals.SegmentHeader('HKEND', 3, 1), # Segmentkopf
dialog_id = '189206386060=898044428522BLDS=', # Dialog-ID
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 4, 2), # Segmentkopf
security_reference = '4224698', # Sicherheitskontrollreferenz
user_defined_signature = fints.formals.UserDefinedSignature( # Benutzerdefinierte Signatur
pin = '***',
),
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 5, 1), # Segmentkopf
message_number = 2, # Nachrichtennummer
),
])
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): banking-dkb.s-fints-pt-dkb.de:443
DEBUG:urllib3.connectionpool:https://banking-dkb.s-fints-pt-dkb.de:443 "POST /fints30 HTTP/1.1" 200 590
DEBUG:fints.connection:Received <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ fints.message.FinTSInstituteMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 430, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '189206386060=898044428522BLDS=', # Dialog-ID
message_number = 2, # Nachrichtennummer
reference_message = fints.formals.ReferenceMessage( # Bezugsnachricht
dialog_id = '189206386060=898044428522BLDS=',
message_number = 2,
),
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '999', # Sicherheitsfunktion, kodiert
security_reference = '4224698', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.dialog.HIRMG2( # Rückmeldungen zur Gesamtnachricht
header = fints.formals.SegmentHeader('HIRMG', 3, 2), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '0010',
reference_element = None,
text = 'Nachricht entgegengenommen.',
),
fints.formals.Response( # Rückmeldung
code = '0100',
reference_element = None,
text = 'Dialog beendet.',
),
],
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 4, 2), # Segmentkopf
security_reference = '4224698', # Sicherheitskontrollreferenz
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 5, 1), # Segmentkopf
message_number = 2, # Nachrichtennummer
),
])
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
DEBUG:fints.connection:Sending >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
fints.message.FinTSCustomerMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 484, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '0', # Dialog-ID
message_number = 1, # Nachrichtennummer
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 2, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 432498),
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '921', # Sicherheitsfunktion, kodiert
security_reference = '7634723', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 432243),
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.auth.HKIDN2( # Identifikation, version 2
header = fints.formals.SegmentHeader('HKIDN', 3, 2), # Segmentkopf
bank_identifier = fints.formals.BankIdentifier( # Kreditinstitutskennung
country_identifier = '280',
bank_code = '12030000',
),
customer_id = '********', # Kunden-ID
system_id = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA', # Kundensystem-ID
system_id_status = fints.formals.SystemIDStatus.ID_NECESSARY, # Kundensystem-Status: Kundensystem-ID wird benötigt
),
fints.segments.auth.HKVVB3( # Verarbeitungsvorbereitung, version 3
header = fints.formals.SegmentHeader('HKVVB', 4, 3), # Segmentkopf
bpd_version = 7, # BPD-Version
upd_version = 0, # UPD-Version
language = fints.formals.Language2.DE, # Dialogsprache: Deutsch, 'de', Subset Deutsch, Codeset 1 (Latin 1)
product_name = 'DC333D745719C4BD6A6F9DB6A', # Produktbezeichnung
product_version = '3.0.0', # Produktversion
),
fints.segments.auth.HKTAN6( # Zwei-Schritt-TAN-Einreichung, version 6
header = fints.formals.SegmentHeader('HKTAN', 5, 6), # Segmentkopf
tan_process = '4', # TAN-Prozess
segment_type = 'HKIDN', # Segmentkennung
parameter_challenge_class = fints.formals.ParameterChallengeClass( # Parameter Challenge-Klasse
parameters = [
None,
# 8 empty items skipped
],
),
tan_medium_name = 'DUMMY', # Bezeichnung des TAN-Mediums
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 6, 2), # Segmentkopf
security_reference = '7634723', # Sicherheitskontrollreferenz
user_defined_signature = fints.formals.UserDefinedSignature( # Benutzerdefinierte Signatur
pin = '***',
),
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 7, 1), # Segmentkopf
message_number = 1, # Nachrichtennummer
),
])
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): banking-dkb.s-fints-pt-dkb.de:443
DEBUG:urllib3.connectionpool:https://banking-dkb.s-fints-pt-dkb.de:443 "POST /fints30 HTTP/1.1" 200 874
DEBUG:fints.connection:Received <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� fints.message.FinTSInstituteMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 637, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '902111186314=635144428522BLDV=', # Dialog-ID
message_number = 1, # Nachrichtennummer
reference_message = fints.formals.ReferenceMessage( # Bezugsnachricht
dialog_id = '902111186314=635144428522BLDV=',
message_number = 1,
),
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 2, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '921', # Sicherheitsfunktion, kodiert
security_reference = '7634723', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.dialog.HIRMG2( # Rückmeldungen zur Gesamtnachricht
header = fints.formals.SegmentHeader('HIRMG', 3, 2), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '9050',
reference_element = None,
text = 'Die Nachricht enthält Fehler.',
),
fints.formals.Response( # Rückmeldung
code = '3905',
reference_element = None,
text = 'Es wurde keine Challenge erzeugt.',
),
fints.formals.Response( # Rückmeldung
code = '9800',
reference_element = None,
text = 'Dialog abgebrochen',
),
],
),
fints.segments.dialog.HIRMS2( # Rückmeldungen zu Segmenten
header = fints.formals.SegmentHeader('HIRMS', 4, 2, 4), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '3920',
reference_element = None,
text = 'Zugelassene Zwei-Schritt-Verfahren für den Benutzer.',
parameters = [
'921',
],
),
fints.formals.Response( # Rückmeldung
code = '9955',
reference_element = None,
text = 'Auftrag nicht ausgeführt - Die Gerätebezeichnung ist unbekannt. (MBV07390100255)',
),
],
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 5, 2), # Segmentkopf
security_reference = '7634723', # Sicherheitskontrollreferenz
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 6, 1), # Segmentkopf
message_number = 1, # Nachrichtennummer
),
])
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
DEBUG:fints.connection:Sending >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
fints.message.FinTSCustomerMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 384, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '902111186314=635144428522BLDV=', # Dialog-ID
message_number = 2, # Nachrichtennummer
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 2, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 647428),
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '921', # Sicherheitsfunktion, kodiert
security_reference = '9431425', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 647099),
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.auth.HKTAB4( # TAN-Generator/Liste anzeigen Bestand, version 4
header = fints.formals.SegmentHeader('HKTAB', 3, 4), # Segmentkopf
tan_media_type = fints.formals.TANMediaType2.ALL, # TAN-Medium-Art: Alle
tan_media_class = fints.formals.TANMediaClass3.ALL, # TAN-Medium-Klasse: Alle Medien
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 4, 2), # Segmentkopf
security_reference = '9431425', # Sicherheitskontrollreferenz
user_defined_signature = fints.formals.UserDefinedSignature( # Benutzerdefinierte Signatur
pin = '***',
),
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 5, 1), # Segmentkopf
message_number = 2, # Nachrichtennummer
),
])
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): banking-dkb.s-fints-pt-dkb.de:443
DEBUG:urllib3.connectionpool:https://banking-dkb.s-fints-pt-dkb.de:443 "POST /fints30 HTTP/1.1" 200 804
DEBUG:fints.connection:Received <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� fints.message.FinTSInstituteMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 587, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '902111186314=635144428522BLDV=', # Dialog-ID
message_number = 2, # Nachrichtennummer
reference_message = fints.formals.ReferenceMessage( # Bezugsnachricht
dialog_id = '902111186314=635144428522BLDV=',
message_number = 2,
),
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 2, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '921', # Sicherheitsfunktion, kodiert
security_reference = '9431425', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.dialog.HIRMG2( # Rückmeldungen zur Gesamtnachricht
header = fints.formals.SegmentHeader('HIRMG', 3, 2), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '9050',
reference_element = None,
text = 'Die Nachricht enthält Fehler.',
),
fints.formals.Response( # Rückmeldung
code = '9800',
reference_element = None,
text = 'Dialog abgebrochen',
),
fints.formals.Response( # Rückmeldung
code = '9010',
reference_element = None,
text = 'Die angegebene Bankreferenz/Dialog-ID ist nicht gültig.',
),
],
),
fints.segments.dialog.HIRMS2( # Rückmeldungen zu Segmenten
header = fints.formals.SegmentHeader('HIRMS', 4, 2, 3), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '9010',
reference_element = None,
text = 'Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet.',
),
],
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 5, 2), # Segmentkopf
security_reference = '9431425', # Sicherheitskontrollreferenz
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 6, 1), # Segmentkopf
message_number = 2, # Nachrichtennummer
),
])
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ERROR:fints.client:Dialog response: 9050 - Die Nachricht enthält Fehler.
ERROR:fints.client:Dialog response: 9800 - Dialog abgebrochen
ERROR:fints.client:Dialog response: 9010 - Die angegebene Bankreferenz/Dialog-ID ist nicht gültig.
DEBUG:fints.connection:Sending >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
fints.message.FinTSCustomerMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 411, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '902111186314=635144428522BLDV=', # Dialog-ID
message_number = 3, # Nachrichtennummer
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 2, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 823745),
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '921', # Sicherheitsfunktion, kodiert
security_reference = '5349258', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MS, # Message Sender
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
date = datetime.date(2020, 2, 27),
time = datetime.time(17, 0, 41, 823424),
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.dialog.HKEND1( # Dialogende, version 1
header = fints.formals.SegmentHeader('HKEND', 3, 1), # Segmentkopf
dialog_id = '902111186314=635144428522BLDV=', # Dialog-ID
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 4, 2), # Segmentkopf
security_reference = '5349258', # Sicherheitskontrollreferenz
user_defined_signature = fints.formals.UserDefinedSignature( # Benutzerdefinierte Signatur
pin = '***',
),
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 5, 1), # Segmentkopf
message_number = 3, # Nachrichtennummer
),
])
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): banking-dkb.s-fints-pt-dkb.de:443
DEBUG:urllib3.connectionpool:https://banking-dkb.s-fints-pt-dkb.de:443 "POST /fints30 HTTP/1.1" 200 590
DEBUG:fints.connection:Received <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ fints.message.FinTSInstituteMessage([
fints.segments.message.HNHBK3( # Nachrichtenkopf
header = fints.formals.SegmentHeader('HNHBK', 1, 3), # Segmentkopf
message_size = 430, # Größe der Nachricht (nach Verschlüsselung und Komprimierung)
hbci_version = 300, # HBCI-Version
dialog_id = '902111186314=635144428522BLDV=', # Dialog-ID
message_number = 3, # Nachrichtennummer
reference_message = fints.formals.ReferenceMessage( # Bezugsnachricht
dialog_id = '902111186314=635144428522BLDV=',
message_number = 3,
),
),
fints.segments.message.HNVSK3( # Verschlüsselungskopf, version 3
header = fints.formals.SegmentHeader('HNVSK', 998, 3), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 2, # Version des Sicherheitsverfahrens
),
security_function = '998', # Sicherheitsfunktion, kodiert
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
encryption_algorithm = fints.formals.EncryptionAlgorithm( # Verschlüsselungsalgorithmus
usage_encryption = fints.formals.UsageEncryption.OSY, # Owner Symmetric
operation_mode = fints.formals.OperationMode.CBC, # Cipher Block Chaining
encryption_algorithm = fints.formals.EncryptionAlgorithmCoded.TWOKEY3DES, # 2-Key-Triple-DES
algorithm_parameter_value = b'\x00\x00\x00\x00\x00\x00\x00\x00',
algorithm_parameter_name = fints.formals.AlgorithmParameterName.KYE, # Symmetrischer Schlüssel, verschlüsselt mit symmetrischem Schlüssel
algorithm_parameter_iv_name = fints.formals.AlgorithmParameterIVName.IVC, # Initialization value, clear text
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.V, # Schlüsselart: Chiffrierschlüssel
key_number = 0,
key_version = 0,
),
compression_function = fints.formals.CompressionFunction.NULL, # Komprimierungsfunktion: Keine Kompression
),
fints.segments.message.HNVSD1( # Verschlüsselte Daten, version 1
header = fints.formals.SegmentHeader('HNVSD', 999, 1), # Segmentkopf
data = fints.types.SegmentSequence([ # Daten, verschlüsselt
fints.segments.message.HNSHK4( # Signaturkopf, version 4
header = fints.formals.SegmentHeader('HNSHK', 2, 4), # Segmentkopf
security_profile = fints.formals.SecurityProfile( # Sicherheitsprofil
security_method = fints.formals.SecurityMethod.PIN, # Sicherheitsverfahren
security_method_version = 1, # Version des Sicherheitsverfahrens
),
security_function = '921', # Sicherheitsfunktion, kodiert
security_reference = '5349258', # Sicherheitskontrollreferenz
security_application_area = fints.formals.SecurityApplicationArea.SHM, # Bereich der Sicherheitsapplikation, kodiert: Signaturkopf und HBCI-Nutzdaten
security_role = fints.formals.SecurityRole.ISS, # Rolle des Sicherheitslieferanten, kodiert: Erfasser, Erstsignatur
security_identification_details = fints.formals.SecurityIdentificationDetails( # Sicherheitsidentifikation, Details
identified_role = fints.formals.IdentifiedRole.MR, # Message Receiver
cid = None,
identifier = 'Xs7mCQ5Ph3ABAADaAVTn0FkXrAQA',
),
security_reference_number = 1, # Sicherheitsreferenznummer
security_datetime = fints.formals.SecurityDateTime( # Sicherheitsdatum und -uhrzeit
date_time_type = fints.formals.DateTimeType.STS, # Sicherheitszeitstempel
),
hash_algorithm = fints.formals.HashAlgorithm( # Hashalgorithmus
usage_hash = '1',
hash_algorithm = '999',
algorithm_parameter_name = '1',
),
signature_algorithm = fints.formals.SignatureAlgorithm( # Signaturalgorithmus
usage_signature = '6',
signature_algorithm = '10',
operation_mode = '16',
),
key_name = fints.formals.KeyName( # Schlüsselname
bank_identifier = fints.formals.BankIdentifier(
country_identifier = '280',
bank_code = '12030000',
),
user_id = '********',
key_type = fints.formals.KeyType.S, # Schlüsselart: Signierschlüssel
key_number = 0,
key_version = 0,
),
),
fints.segments.dialog.HIRMG2( # Rückmeldungen zur Gesamtnachricht
header = fints.formals.SegmentHeader('HIRMG', 3, 2), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '0010',
reference_element = None,
text = 'Nachricht entgegengenommen.',
),
fints.formals.Response( # Rückmeldung
code = '0100',
reference_element = None,
text = 'Dialog beendet.',
),
],
),
fints.segments.message.HNSHA2( # Signaturabschluss, version 2
header = fints.formals.SegmentHeader('HNSHA', 4, 2), # Segmentkopf
security_reference = '5349258', # Sicherheitskontrollreferenz
),
]),
),
fints.segments.message.HNHBS1( # Nachrichtenabschluss
header = fints.formals.SegmentHeader('HNHBS', 5, 1), # Segmentkopf
message_number = 3, # Nachrichtennummer
),
])
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
We need the name of the TAN medium, let's fetch them from the bank
Traceback (most recent call last):
File "test_fints_lib.py", line 25, in <module>
minimal_interactive_cli_bootstrap(f)
File "./python-fints/fints/utils.py", line 321, in minimal_interactive_cli_bootstrap
m = client.get_tan_media()
File "./python-fints/fints/client.py", line 1368, in get_tan_media
response = method(dialog)(seg, tan_seg=seg)
File "./python-fints/fints/dialog.py", line 156, in send
self.client.process_response_message(self, response, internal_send=internal_send)
File "./python-fints/fints/client.py", line 230, in process_response_message
self._process_response(dialog, None, response)
File "./python-fints/fints/client.py", line 1284, in _process_response
raise FinTSClientError("Error during dialog initialization, could not fetch BPD. Please check that you "
fints.exceptions.FinTSClientError: Error during dialog initialization, could not fetch BPD. Please check that you passed the correct bank identifier to the HBCI URL of the correct bank.
I am having the same issue.
@henning77 Were you able to resolve this bug? I was also asking myself, how the "legitimations_id" should be passed.
Any news on this? Sadly I am having the same error with DKB
I got the same error with Kasseler Sparkasse.
Same issue with DKB since last week. Any updates here?
I don't have a bank account with DKB, so I can't debug this.
The most suspicious thing in the log is the following line:
Auftrag nicht ausgeführt - Die Gerätebezeichnung ist unbekannt. (MBV07390100255)
Somehow, the whole thing fails while trying to fetch the list of available TAN media. You can try not using minimal_interactive_cli_bootstrap but copying its source code and manually passing a "correct" TAN media.
For debugging, you can also try if you can connect using Hibiscus, then do a FinTS trace there and look what TAN medium they are using.
I have added response.text to the log output in client.py:
if response.code == '9010':
raise FinTSClientError("Error during dialog initialization, could not fetch BPD. Please check that you "
"passed the correct bank identifier to the HBCI URL of the correct bank."+response.text)
File "./kontoni.py", line 347, in loadTransactions app.logger.info(f.get_tan_media()) File "/usr/local/lib/python3.6/dist-packages/fints/client.py", line 1360, in get_tan_media response = dialog.send(seg) File "/usr/local/lib/python3.6/dist-packages/fints/dialog.py", line 156, in send self.client.process_response_message(self, response, internal_send=internal_send) File "/usr/local/lib/python3.6/dist-packages/fints/client.py", line 230, in process_response_message self._process_response(dialog, None, response) File "/usr/local/lib/python3.6/dist-packages/fints/client.py", line 1285, in _process_response "passed the correct bank identifier to the HBCI URL of the correct bank."+response.text) fints.exceptions.FinTSClientError: Error during dialog initialization, could not fetch BPD. Please check that you passed the correct bank identifier to the HBCI URL of the correct bank.Die angegebene Bankreferenz/Dialog-ID ist nicht gültig.
This is the same message mentioned in #93 But I dont know why this worked for me in master branch until last week...
Hibiscus says:
07.10.2020 00:17:17] Dialog beendet [07.10.2020 00:17:17] dialog end failed: java.io.IOException: Server returned HTTP response code: 403 for URL: https://banking-dkb.s-fints-pt-dkb.de:443 [07.10.2020 00:17:17] Dialog-Ende fehlgeschlagen [07.10.2020 00:17:17] fetching BPD failed: java.io.IOException: Server returned HTTP response code: 403 for URL: https://banking-dkb.s-fints-pt-dkb.de:443 org.kapott.hbci.manager.HBCIInstitute.fetchBPD(HBCIInstitute.java:287) [07.10.2020 00:17:17] Abholen der BPD fehlgeschlagen [07.10.2020 00:17:17] FAILED! - maybe this institute does not support anonymous logins [07.10.2020 00:17:17] we will nevertheless go on [07.10.2020 00:17:17] can not check if requested parameters are supported [07.10.2020 00:17:17] hole neue System-ID [07.10.2020 00:17:17] Rufe neue System-ID ab [07.10.2020 00:17:17] Erzeuge HBCI-Nachricht Synch [07.10.2020 00:17:17] signiere HBCI-Nachricht [07.10.2020 00:17:19] the job with the code HNSHK seems not to be allowed with PIN/TAN [07.10.2020 00:17:19] the job with the code HKIDN seems not to be allowed with PIN/TAN [07.10.2020 00:17:19] the job with the code HKVVB seems not to be allowed with PIN/TAN [07.10.2020 00:17:19] the job with the code HKTAN seems not to be allowed with PIN/TAN [07.10.2020 00:17:19] the job with the code HKSYN seems not to be allowed with PIN/TAN [07.10.2020 00:17:19] Verschlüssele HBCI-Nachricht [07.10.2020 00:17:19] Fehler beim Testen des Sicherheits-Mediums: Fehler beim Ermitteln einer neuen System-ID [07.10.2020 00:17:19] Verbinde mit https://banking-dkb.s-fints-pt-dkb.de:443 und prüfe Zertifikat [07.10.2020 00:17:19] Aufgetretene Fehlermeldungen: [07.10.2020 00:17:19] ----------------------------- [07.10.2020 00:17:19] Versende HBCI-Nachricht [07.10.2020 00:17:19] error while opening pin/tan passport; nested exception is: [07.10.2020 00:17:19] Fehler beim Erzeugen eines HBCIHandler Objektes [07.10.2020 00:17:19] Warte auf Antwortdaten [07.10.2020 00:17:19] Fehler beim Erzeugen eines HBCIHandler Objektes [07.10.2020 00:17:19] Fehler beim Registrieren der Nutzerdaten [07.10.2020 00:17:19] Warte auf Antwortdaten [07.10.2020 00:17:19] Fehler beim Ermitteln einer neuen System-ID [07.10.2020 00:17:19] Fehler beim Ermitteln einer neuen System-ID [07.10.2020 00:17:19] Fehler beim Empfangen der Daten vom HBCI-Server [07.10.2020 00:17:19] ----------------------------- [07.10.2020 00:17:19] Server returned HTTP response code: 403 for URL: https://banking-dkb.s-fints-pt-dkb.de:443 [07.10.2020 00:17:19] Server returned HTTP response code: 403 for URL: https://banking-dkb.s-fints-pt-dkb.de:443 [07.10.2020 00:17:19] closing pin/tan passport [07.10.2020 00:17:19] pin/tan passport closed
I had the very same issue with DKB. Since yesterdays "Fix for Postbank issue" / v3.0.1, the issue is solved for me.
I just upgraded running pip3 install fints -U and the sample code from the docs worked.
I just upgraded running pip3 install fints -U and the sample code from the docs worked.
The sample codes from the docs do not work for me. Which sample did you try? For example this one: https://python-fints.readthedocs.io/en/latest/trouble.html
Which sample did you try?
I tried the example script from the troubleshooting page you linked. It was a bit tricky to find out which authentication information to provide, but it worked. For my bank I had to set an additional customer / legitimation ID like this:
client_args = (
'REPLACEME', # BLZ
'REPLACEME', # USER
getpass.getpass('PIN: '),
'REPLACEME', # ENDPOINT
'REPLACEME' # Customer / Legitimation ID
)
I found that id within the Service/HBCI and FinTS section of my online banking.
For my bank I had to set an additional customer / legitimation ID like this [...]
I just tried this, the problem persists in my instance (DKB bank).
[...]
raise FinTSClientError("Error during dialog initialization, could not fetch BPD. Please check that you "
fints.exceptions.FinTSClientError: Error during dialog initialization, could not fetch BPD. Please check that you passed the correct bank identifier to the HBCI URL of the correct bank.
I also get the same error as @raphaelm stated
[...]
fints.segments.dialog.HIRMS2( # Rückmeldungen zu Segmenten
header = fints.formals.SegmentHeader('HIRMS', 4, 2, 4), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '3920',
reference_element = None,
text = 'Zugelassene Zwei-Schritt-Verfahren für den Benutzer.',
parameters = [
'921',
],
),
fints.formals.Response( # Rückmeldung
code = '9955',
reference_element = None,
text = 'Auftrag nicht ausgeführt - Die Gerätebezeichnung ist unbekannt. (MBV07390100255)',
),
],
),
[...]
When it is fetching for the mechanism I get this list:
mechanisms = list(client.get_tan_mechanisms().items())
# RESULT:
[('921', fints.formals.TwoStepParameters6(security_function='921', tan_process='2',
tech_id='TAN2go', zka_id=None,
zka_version=None, name='TAN2go',
max_length_input=6,
allowed_format=fints.formals.AllowedFormat.NUMERIC,
text_return_value='TAN-Nummer',
max_length_return_value=3,
multiple_tans_allowed=True,
tan_time_dialog_association=fints.formals.TANTimeDialogAssociation.ALLOWED,
cancel_allowed=False,
sms_charge_account_required=fints.formals.SMSChargeAccountRequired.MUST_NOT,
principal_account_required=fints.formals.PrincipalAccountRequired.MUST_NOT,
challenge_class_required=False,
challenge_structured=False,
initialization_mode=fints.formals.InitializationMode.CLEARTEXT_PIN_NO_TAN,
description_required=fints.formals.DescriptionRequired.MUST,
response_hhd_uc_required=False,
supported_media_number=2))]
The exception is raised in minimal_interactive_cli_bootstrap through
m = client.get_tan_media()
To be more specific in
# seg = fints.segments.auth.HKTAB4(header=fints.formals.SegmentHeader('HKTAB', 3, 4), tan_media_type=fints.formals.TANMediaType2.ALL, tan_media_class=fints.formals.TANMediaClass3.ALL)
try:
self._bootstrap_mode = True
response = method(dialog)(seg)
Something seems of with the dialog_id - I am not quite sure.
ERROR:fints.client:Dialog response: 9050 - Die Nachricht enthält Fehler.
ERROR:fints.client:Dialog response: 9800 - Dialog abgebrochen
ERROR:fints.client:Dialog response: 9010 - Die angegebene Bankreferenz/Dialog-ID ist nicht gültig.
For my bank I had to set an additional customer / legitimation ID like this [...]
I just tried this, the problem persists in my instance (DKB bank).
I checked again. That error ("Error during dialog initialization, could not fetch BPD.") is reproducible, if I enter a wrong PIN. Also, the customer / legitimation id does not seem to be necessary, as it also works if I change / omit it. Beyond that, I don't feel capable to help you, sorry about that.
Hey, I found something new: I just ran into this issue with the troubleshooting script, and solved it (partially). The script seemed not to be able to complete the login process. So I checked, if Jamaica/Hibiscus were able to connect. That software asked for a TAN to authorize the login process, and in the DKB mobile TAN app it said, that the created connection would be invalidated after 90 days, and now the fints troubleshooting script works again.
So my assumption is, that the troubleshooting script (or fints itself) is not able to operate the DKB TAN based authorization process (correctly).
I have the same issue with Consorsbank. The also have an App based authentication mechanism called "Secure Plus". It is strange though, that Jameica/Hibiscus can connect to Consorsbank without any trouble. Any chance, that we will get a fix for this? Since I am Python Dev myself, I would also be willing to look into this myself and provide a PR. But I would need some pointers on how to best debug this.
So, the core issue here is this interaction:
fints.segments.auth.HKTAN6( # Zwei-Schritt-TAN-Einreichung, version 6
header = fints.formals.SegmentHeader('HKTAN', 5, 6), # Segmentkopf
tan_process = '4', # TAN-Prozess
segment_type = 'HKIDN', # Segmentkennung
parameter_challenge_class = fints.formals.ParameterChallengeClass( # Parameter Challenge-Klasse
parameters = [
None,
# 8 empty items skipped
],
),
tan_medium_name = 'DUMMY', # Bezeichnung des TAN-Mediums
),
...
fints.segments.dialog.HIRMS2( # Rückmeldungen zu Segmenten
header = fints.formals.SegmentHeader('HIRMS', 4, 2, 4), # Segmentkopf
responses = [ # Rückmeldung
fints.formals.Response( # Rückmeldung
code = '3920',
reference_element = None,
text = 'Zugelassene Zwei-Schritt-Verfahren für den Benutzer.',
parameters = [
'921',
],
),
fints.formals.Response( # Rückmeldung
code = '9955',
reference_element = None,
text = 'Auftrag nicht ausgeführt - Die Gerätebezeichnung ist unbekannt. (MBV07390100255)',
),
],
),
which is a problem with us sending a DUMMY HKTAN6 as part of dialog initialization, before sending HKTAB. The bank doesn't like it. Setting selected_tan_medium before get_tan_media() does work around this, but is kind of a problem if you don't already have the list of TAN media.
I have the same problem with DKB, see: https://github.com/raphaelm/python-fints/issues/121#issuecomment-1152147591
Setting selected_tan_medium before get_tan_media() does work around this, but is kind of a problem if you don't already have the list of TAN media.
@henryk - What do you mean by "setting selected_tan_medium before get_tab_media()" ? How exactly to do that?
I found that id within the Service/HBCI and FinTS section of my online banking.
@de-graeuler - I could not find this section in my online banking under Service.
Is this a separate section or part of another like Konto und Karten, Einstellungen, TAN-Verfahren ?
Check my comment under #121 and my PR in #146 for an explanation on how to hotfix this issue and where to find your TAN medium name in the DKB TAN2go app.
Check my comment under #121 and my PR in #146 for an explanation on how to hotfix this issue and where to find your TAN medium name in the DKB TAN2go app.
I sadly have the problem with and without your fix. Any Ideas?
I sadly have the problem with and without your fix. Any Ideas?
Are you sure that it's exactly the same problem you're seeing? Have you registered for a product key as described in the documentation? As far as I know the default key was removed, so this might be what you're seeing? Just a guess though.
I sadly have the problem with and without your fix. Any Ideas?
Are you sure that it's exactly the same problem you're seeing? Have you registered for a product key as described in the documentation? As far as I know the default key was removed, so this might be what you're seeing? Just a guess though.
yes I got a product key from ZKI. I get the same error for DKB. I also tried ING and Volksbank, allways get errors during minimal_interactive_cli_bootstrap.