11from fints .fields import CodeField , DataElementField , DataElementGroupField
22from fints .formals import (
3+ DataElementGroup ,
34 KTI1 , BankIdentifier , ChallengeValidUntil , Language2 ,
45 ParameterChallengeClass , ParameterPinTan , ParameterTwostepTAN1 ,
56 ParameterTwostepTAN2 , ParameterTwostepTAN3 , ParameterTwostepTAN4 ,
@@ -104,15 +105,18 @@ class PSRD1(DataElementGroup):
104105 psrd = DataElementField (type = 'an' , max_length = 256 , required = True , _d = "Payment Status Report Descriptor" , max_count = 99 )
105106 # urn:iso:std:iso:20022:tech:xsd:pain.002.001.14
106107
107- class HKVPP (FinTS3Segment ):
108+ class HKVPP1 (FinTS3Segment ):
108109 """Namensabgleich Prüfauftrag, version 1
109110 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee"""
110- supported_reports = DataElementField (type = PSRD1 , required = True , _d = "Unterstützte Payment Status Reports" )
111+ supported_reports = DataElementGroupField (type = PSRD1 , required = True , _d = "Unterstützte Payment Status Reports" )
111112 polling_id = DataElementField (type = 'bin' , required = False , _d = "Polling-ID" )
112113 max_queries = DataElementField (type = 'num' , max_length = 4 , required = False , _d = "Maximale Anzahl Einträge" )
113114 aufsetzpunkt = DataElementField (type = 'an' , max_length = 35 , required = False , _d = "Aufsetzpunkt" )
114115
115116
117+ a = HKVPP1 (polling_id = b"fdf" )
118+ HKVPP1 (polling_id = a .polling_id , aufsetzpunkt = "sas" )
119+
116120class EVPE (DataElementGroup ):
117121 """Ergebnis VOP-Prüfung Einzeltransaktion
118122
@@ -126,16 +130,16 @@ class EVPE(DataElementGroup):
126130 na_reason = DataElementField (type = 'an' , max_length = 256 , required = False , _d = "Grund RVNA" )
127131
128132
129- class HIVPP (FinTS3Segment ):
133+ class HIVPP1 (FinTS3Segment ):
130134 """Namensabgleich Namensabgleich Prüfergebnis, version 1
131135 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee"""
132136 vop_id = DataElementField (type = 'bin' , required = False , _d = "VOP-ID" )
133- vop_id_valid_until = DataElementField (type = 'tsp' , required = False , _d = "VOP-ID gültig bis" )
137+ vop_id_valid_until = DataElementGroupField (type = ChallengeValidUntil , required = False , _d = "VOP-ID gültig bis" )
134138 polling_id = DataElementField (type = 'bin' , required = False , _d = "Polling-ID" )
135139 payment_status_report_descriptor = DataElementField (type = 'an' , max_length = 256 , required = False , _d = "Payment Status Report Descriptor" )
136140 payment_status_report = DataElementField (type = 'bin' , required = False , _d = "Payment Status Report" )
137141 # Only for a single transaction. Mutually exclusive with payment status report.
138- vop_single_result = DataElementField (type = EVPE , required = False , _d = "Ergebnis VOP-Prüfung Einzeltransaktion" )
142+ vop_single_result = DataElementGroupField (type = EVPE , required = False , _d = "Ergebnis VOP-Prüfung Einzeltransaktion" )
139143 manual_authorization_notice = DataElementField (type = 'an' , max_length = 65535 , required = False , _d = "Aufklärungstext Autorisierung trotz Abweichung" )
140144 wait_for_seconds = DataElementField (type = 'num' , length = 1 , required = False , _d = "Wartezeit vor nächster Abfrage" )
141145
@@ -144,20 +148,24 @@ class ParameterVoP(DataElementGroup):
144148 notice_is_structured = DataElementField (type = 'jn' , required = False , _d = "Aufklärungstext strukturiert" )
145149 # complete: V, piecemeal: S
146150 report_complete = DataElementField (type = 'code' , length = 1 , required = False , _d = "Art der Lieferung Payment Status Report" )
147- batch_payment - allowed = DataElementField (type = 'jn' , required = False , _d = "Sammelzahlungen mit einem Auftrag erlaubt" )
151+ batch_payment_allowed = DataElementField (type = 'jn' , required = False , _d = "Sammelzahlungen mit einem Auftrag erlaubt" )
148152 multiple_allowed = DataElementField (type = 'jn' , required = False , _d = "Eingabe Anzahl Einträge erlaubt" )
149153 supported_report_formats = DataElementField (type = 'an' , max_length = 1024 , required = False , _d = "Unterstützte Payment Status Report Daten-formate" )
150- # FIXME: count is "n"
151- payment_order_segment = DataElementField (type = 'an' , max_length = 6 , required = False , _d = "VOP-pflichtiger Zahlungsverkehrsauftrag" )
154+ payment_order_segment = DataElementField (type = 'an' , min_count = 1 , max_length = 6 , required = False , _d = "VOP-pflichtiger Zahlungsverkehrsauftrag" )
152155
153156
154- class HIVPPS (ParameterSegment ):
157+ class HIVPPS1 (ParameterSegment ):
155158 """Namensabgleich Prüfauftrag Parameter, version 1
156159
157160 Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee"""
158161 parameter = DataElementGroupField (type = ParameterVoP , _d = "Parameter Namensabgleich Prüfauftrag" )
159162
160163
164+ class HKVPA1 (FinTS3Segment ):
165+ """Namensabgleich Namensabgleich Ausführungsauftrag, version 1
166+ Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Verification of Payee"""
167+ vop_id = DataElementField (type = 'bin' , required = False , _d = "VOP-ID" )
168+
161169
162170class HKTAN7 (FinTS3Segment ):
163171 """Zwei-Schritt-TAN-Einreichung, version 7
@@ -252,7 +260,6 @@ class HKTAB4(FinTS3Segment):
252260 tan_media_type = CodeField (enum = TANMediaType2 , _d = "TAN-Medium-Art" )
253261 tan_media_class = CodeField (enum = TANMediaClass3 , _d = "TAN-Medium-Klasse" )
254262
255-
256263class HITAB4 (FinTS3Segment ):
257264 """TAN-Generator/Liste anzeigen Bestand Rückmeldung, version 4
258265
0 commit comments