Source code for fints.segments.auth

from fints.fields import CodeField, DataElementField, DataElementGroupField
from fints.formals import (
    DataElementGroup,
    KTI1, BankIdentifier, ChallengeValidUntil, Language2,
    ParameterChallengeClass, ParameterPinTan, ParameterTwostepTAN1,
    ParameterTwostepTAN2, ParameterTwostepTAN3, ParameterTwostepTAN4,
    ParameterTwostepTAN5, ParameterTwostepTAN6, ResponseHHDUC,
    SystemIDStatus, TANMedia4, TANMedia5, TANMediaClass3,
    TANMediaClass4, TANMediaType2, TANUsageOption, ParameterTwostepTAN7,
)

from .base import FinTS3Segment, ParameterSegment


[docs] class HKIDN2(FinTS3Segment): """Identifikation, version 2 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals""" bank_identifier = DataElementGroupField(type=BankIdentifier, _d="Kreditinstitutskennung") customer_id = DataElementField(type='id', _d="Kunden-ID") system_id = DataElementField(type='id', _d="Kundensystem-ID") system_id_status = CodeField(enum=SystemIDStatus, length=1, _d="Kundensystem-Status")
[docs] class HKVVB3(FinTS3Segment): """Verarbeitungsvorbereitung, version 3 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Formals""" bpd_version = DataElementField(type='num', max_length=3, _d="BPD-Version") upd_version = DataElementField(type='num', max_length=3, _d="UPD-Version") language = CodeField(enum=Language2, max_length=3, _d="Dialogsprache") product_name = DataElementField(type='an', max_length=25, _d="Produktbezeichnung") product_version = DataElementField(type='an', max_length=5, _d="Produktversion")
[docs] class HKTAN2(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung, version 2 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") tan_list_number = DataElementField(type='an', max_length=20, required=False, _d="TAN-Listennummer") further_tan_follows = DataElementField(type='jn', length=1, required=False, _d="Weitere TAN folgt") cancel_task = DataElementField(type='jn', length=1, required=False, _d="Auftrag stornieren") challenge_class = DataElementField(type='num', max_length=2, required=False, _d="Challenge-Klasse") parameter_challenge_class = DataElementGroupField(type=ParameterChallengeClass, required=False, _d="Parameter Challenge-Klasse")
[docs] class HKTAN3(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung, version 3 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") tan_list_number = DataElementField(type='an', max_length=20, required=False, _d="TAN-Listennummer") further_tan_follows = DataElementField(type='jn', length=1, required=False, _d="Weitere TAN folgt") cancel_task = DataElementField(type='jn', length=1, required=False, _d="Auftrag stornieren") challenge_class = DataElementField(type='num', max_length=2, required=False, _d="Challenge-Klasse") parameter_challenge_class = DataElementGroupField(type=ParameterChallengeClass, required=False, _d="Parameter Challenge-Klasse") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums")
[docs] class HKTAN5(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung, version 5 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") segment_type = DataElementField(type='an', max_length=6, required=False, _d="Segmentkennung") account = DataElementGroupField(type=KTI1, required=False, _d="Kontoverbindung international Auftraggeber") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") tan_list_number = DataElementField(type='an', max_length=20, required=False, _d="TAN-Listennummer") further_tan_follows = DataElementField(type='jn', length=1, required=False, _d="Weitere TAN folgt") cancel_task = DataElementField(type='jn', length=1, required=False, _d="Auftrag stornieren") sms_charge_account = DataElementGroupField(type=KTI1, required=False, _d="SMS-Abbuchungskonto") challenge_class = DataElementField(type='num', max_length=2, required=False, _d="Challenge-Klasse") parameter_challenge_class = DataElementGroupField(type=ParameterChallengeClass, required=False, _d="Parameter Challenge-Klasse") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums")
[docs] class HKTAN6(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung, version 6 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") segment_type = DataElementField(type='an', max_length=6, required=False, _d="Segmentkennung") account = DataElementGroupField(type=KTI1, required=False, _d="Kontoverbindung international Auftraggeber") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") further_tan_follows = DataElementField(type='jn', length=1, required=False, _d="Weitere TAN folgt") cancel_task = DataElementField(type='jn', length=1, required=False, _d="Auftrag stornieren") sms_charge_account = DataElementGroupField(type=KTI1, required=False, _d="SMS-Abbuchungskonto") challenge_class = DataElementField(type='num', max_length=2, required=False, _d="Challenge-Klasse") parameter_challenge_class = DataElementGroupField(type=ParameterChallengeClass, required=False, _d="Parameter Challenge-Klasse") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums") response_hhd_uc = DataElementGroupField(type=ResponseHHDUC, required=False, _d="Antwort HHD_UC")
[docs] class PSRD1(DataElementGroup): """Unterstütze Payment Status Reports Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages -- Multibankfähige Geschäftsvorfälle, version 3.0 Rel 2022, FV """ psrd = DataElementField(type='an', max_length=256, required=True, _d="Payment Status Report Descriptor", max_count=99)
# urn:iso:std:iso:20022:tech:xsd:pain.002.001.14
[docs] class HKVPP1(FinTS3Segment): """Namensabgleich Prüfauftrag, version 1 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee""" supported_reports = DataElementGroupField(type=PSRD1, required=True, _d="Unterstützte Payment Status Reports") polling_id = DataElementField(type='bin', required=False, _d="Polling-ID") max_queries = DataElementField(type='num', max_length=4, required=False, _d="Maximale Anzahl Einträge") aufsetzpunkt = DataElementField(type='an', max_length=35, required=False, _d="Aufsetzpunkt")
[docs] class EVPE(DataElementGroup): """Ergebnis VOP-Prüfung Einzeltransaktion Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee""" recipient_IBAN = DataElementField(type='an', max_length=34, required=False, _d="IBAN Empfänger") info_IBAN = DataElementField(type='an', max_length=140, required=False, _d="IBAN-Zusatzinformationen") close_match_name = DataElementField(type='an', max_length=140, required=False, _d="Abweichender Empfängername") other_identification = DataElementField(type='an', max_length=256, required=False, _d="Anderes Identifikationmerkmal") # RVMC, RCVC, RVNM, RVNA, PDNG result = DataElementField(type='code', length=4, required=False, _d="VOP-Prüfergebnis") na_reason = DataElementField(type='an', max_length=256, required=False, _d="Grund RVNA")
[docs] class HIVPP1(FinTS3Segment): """Namensabgleich Namensabgleich Prüfergebnis, version 1 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee""" vop_id = DataElementField(type='bin', required=False, _d="VOP-ID") vop_id_valid_until = DataElementGroupField(type=ChallengeValidUntil, required=False, _d="VOP-ID gültig bis") polling_id = DataElementField(type='bin', required=False, _d="Polling-ID") payment_status_report_descriptor = DataElementField(type='an', max_length=256, required=False, _d="Payment Status Report Descriptor") payment_status_report = DataElementField(type='bin', required=False, _d="Payment Status Report") # Only for a single transaction. Mutually exclusive with payment status report. vop_single_result = DataElementGroupField(type=EVPE, required=False, _d="Ergebnis VOP-Prüfung Einzeltransaktion") manual_authorization_notice = DataElementField(type='an', max_length=65535, required=False, _d="Aufklärungstext Autorisierung trotz Abweichung") wait_for_seconds = DataElementField(type='num', length=1, required=False, _d="Wartezeit vor nächster Abfrage")
[docs] class ParameterVoP(DataElementGroup): max_trans = DataElementField(type='num', max_length=7, required=False, _d="Maximale Anzahl CreditTransferTransactionInformation OptIn") notice_is_structured = DataElementField(type='jn', required=False, _d="Aufklärungstext strukturiert") # complete: V, piecemeal: S report_complete = DataElementField(type='code', length=1, required=False, _d="Art der Lieferung Payment Status Report") batch_payment_allowed = DataElementField(type='jn', required=False, _d="Sammelzahlungen mit einem Auftrag erlaubt") multiple_allowed = DataElementField(type='jn', required=False, _d="Eingabe Anzahl Einträge erlaubt") supported_report_formats = DataElementField(type='an', max_length=1024, required=False, _d="Unterstützte Payment Status Report Daten-formate") payment_order_segment = DataElementField(type='an', min_count=1, max_length=6, required=False, _d="VOP-pflichtiger Zahlungsverkehrsauftrag")
[docs] class HIVPPS1(ParameterSegment): """Namensabgleich Prüfauftrag Parameter, version 1 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee""" parameter = DataElementGroupField(type=ParameterVoP, _d="Parameter Namensabgleich Prüfauftrag")
[docs] class HKVPA1(FinTS3Segment): """Namensabgleich Namensabgleich Ausführungsauftrag, version 1 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee""" vop_id = DataElementField(type='bin', required=False, _d="VOP-ID")
[docs] class HKTAN7(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung, version 7 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") segment_type = DataElementField(type='an', max_length=6, required=False, _d="Segmentkennung") account = DataElementGroupField(type=KTI1, required=False, _d="Kontoverbindung international Auftraggeber") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") further_tan_follows = DataElementField(type='jn', length=1, required=False, _d="Weitere TAN folgt") cancel_task = DataElementField(type='jn', length=1, required=False, _d="Auftrag stornieren") sms_charge_account = DataElementGroupField(type=KTI1, required=False, _d="SMS-Abbuchungskonto") challenge_class = DataElementField(type='num', max_length=2, required=False, _d="Challenge-Klasse") parameter_challenge_class = DataElementGroupField(type=ParameterChallengeClass, required=False, _d="Parameter Challenge-Klasse") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums") response_hhd_uc = DataElementGroupField(type=ResponseHHDUC, required=False, _d="Antwort HHD_UC")
[docs] class HITAN2(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung Rückmeldung, version 2 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") challenge = DataElementField(type='an', max_length=2048, required=False, _d="Challenge") challenge_valid_until = DataElementGroupField(type=ChallengeValidUntil, required=False, _d="Gültigkeitsdatum und -uhrzeit für Challenge") tan_list_number = DataElementField(type='an', max_length=20, required=False, _d="TAN-Listennummer") ben = DataElementField(type='an', max_length=99, required=False, _d="BEN")
[docs] class HITAN3(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung Rückmeldung, version 3 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") challenge = DataElementField(type='an', max_length=2048, required=False, _d="Challenge") challenge_valid_until = DataElementGroupField(type=ChallengeValidUntil, required=False, _d="Gültigkeitsdatum und -uhrzeit für Challenge") tan_list_number = DataElementField(type='an', max_length=20, required=False, _d="TAN-Listennummer") ben = DataElementField(type='an', max_length=99, required=False, _d="BEN") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums")
[docs] class HITAN5(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung Rückmeldung, version 5 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") challenge = DataElementField(type='an', max_length=2048, required=False, _d="Challenge") challenge_hhduc = DataElementField(type='bin', required=False, _d="Challenge HHD_UC") challenge_valid_until = DataElementGroupField(type=ChallengeValidUntil, required=False, _d="Gültigkeitsdatum und -uhrzeit für Challenge") tan_list_number = DataElementField(type='an', max_length=20, required=False, _d="TAN-Listennummer") ben = DataElementField(type='an', max_length=99, required=False, _d="BEN") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums")
[docs] class HITAN6(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung Rückmeldung, version 6 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") challenge = DataElementField(type='an', max_length=2048, required=False, _d="Challenge") challenge_hhduc = DataElementField(type='bin', required=False, _d="Challenge HHD_UC") challenge_valid_until = DataElementGroupField(type=ChallengeValidUntil, required=False, _d="Gültigkeitsdatum und -uhrzeit für Challenge") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums")
[docs] class HITAN7(FinTS3Segment): """Zwei-Schritt-TAN-Einreichung Rückmeldung, version 7 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_process = DataElementField(type='code', length=1, _d="TAN-Prozess") task_hash_value = DataElementField(type='bin', max_length=256, required=False, _d="Auftrags-Hashwert") task_reference = DataElementField(type='an', max_length=35, required=False, _d="Auftragsreferenz") challenge = DataElementField(type='an', max_length=2048, required=False, _d="Challenge") challenge_hhduc = DataElementField(type='bin', required=False, _d="Challenge HHD_UC") challenge_valid_until = DataElementGroupField(type=ChallengeValidUntil, required=False, _d="Gültigkeitsdatum und -uhrzeit für Challenge") tan_medium_name = DataElementField(type='an', max_length=32, required=False, _d="Bezeichnung des TAN-Mediums")
[docs] class HKTAB4(FinTS3Segment): """TAN-Generator/Liste anzeigen Bestand, version 4 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_media_type = CodeField(enum=TANMediaType2, _d="TAN-Medium-Art") tan_media_class = CodeField(enum=TANMediaClass3, _d="TAN-Medium-Klasse")
[docs] class HITAB4(FinTS3Segment): """TAN-Generator/Liste anzeigen Bestand Rückmeldung, version 4 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_usage_option = CodeField(enum=TANUsageOption, _d="TAN_Einsatzoption") tan_media_list = DataElementGroupField(type=TANMedia4, max_count=99, required=False, _d="TAN-Medium-Liste")
[docs] class HKTAB5(FinTS3Segment): """TAN-Generator/Liste anzeigen Bestand, version 5 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_media_type = CodeField(enum=TANMediaType2, _d="TAN-Medium-Art") tan_media_class = CodeField(enum=TANMediaClass4, _d="TAN-Medium-Klasse")
[docs] class HITAB5(FinTS3Segment): """TAN-Generator/Liste anzeigen Bestand Rückmeldung, version 5 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN""" tan_usage_option = CodeField(enum=TANUsageOption, _d="TAN_Einsatzoption") tan_media_list = DataElementGroupField(type=TANMedia5, max_count=99, required=False, _d="TAN-Medium-Liste")
[docs] class HITANSBase(ParameterSegment): pass
[docs] class HITANS1(HITANSBase): parameter = DataElementGroupField(type=ParameterTwostepTAN1)
[docs] class HITANS2(HITANSBase): parameter = DataElementGroupField(type=ParameterTwostepTAN2)
[docs] class HITANS3(HITANSBase): parameter = DataElementGroupField(type=ParameterTwostepTAN3)
[docs] class HITANS4(HITANSBase): parameter = DataElementGroupField(type=ParameterTwostepTAN4)
[docs] class HITANS5(HITANSBase): parameter = DataElementGroupField(type=ParameterTwostepTAN5)
[docs] class HITANS6(HITANSBase): parameter = DataElementGroupField(type=ParameterTwostepTAN6)
[docs] class HITANS7(HITANSBase): parameter = DataElementGroupField(type=ParameterTwostepTAN7)
[docs] class HIPINS1(ParameterSegment): """PIN/TAN-spezifische Informationen, version 1 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Sicherheitsverfahren PIN/TAN """ parameter = DataElementGroupField(type=ParameterPinTan, _d="Parameter PIN/TAN-spezifische Informationen")