]> git.ipfire.org Git - thirdparty/python-fints.git/commitdiff
Implement HIUPA4 and HIUPD6
authorHenryk Plötz <henryk@ploetzli.ch>
Wed, 8 Aug 2018 17:53:29 +0000 (19:53 +0200)
committerRaphael Michel <mail@raphaelmichel.de>
Mon, 3 Dec 2018 18:34:17 +0000 (19:34 +0100)
fints/formals.py
fints/segments/__init__.py

index 1b2884eeaf457490100a4e620b1f6f93236c2229..a3fa818730cb51850c17d97f642d034e821c3aee 100644 (file)
@@ -513,3 +513,20 @@ class Response(DataElementGroup):
     reference_element = DataElementField(type='an', max_length=7)
     response_text = DataElementField(type='an', max_length=80)
     parameters = DataElementField(type='an', max_length=35, max_count=10, required=False)
+
+class AccountInformation(DataElementGroup):
+    account_number = DataElementField(type='id')
+    subaccount_number = DataElementField(type='id')
+    bank_identifier = DataElementGroupField(type=BankIdentifier)
+
+class AccountLimit(DataElementGroup):
+    limit_type = DataElementField(type='code', length=1)
+    limit_amount = DataElementField(type='btg', required=False)
+    limit_days = DataElementField(type='num', max_length=3, required=False)
+
+class AllowedTransaction(DataElementGroup):
+    transaction = DataElementField(type='an', max_length=6)
+    required_signatures = DataElementField(type='num', max_length=2)
+    limit_type = DataElementField(type='code', length=1, required=False)
+    limit_amount = DataElementField(type='btg', required=False)
+    limit_days = DataElementField(type='num', max_length=3, required=False)
index a3a44cce51db3f537857be1bfd409dcdcab6c25a..1b9a41ea82d3541f5aee80c3cf060540b94b67b0 100644 (file)
@@ -1,6 +1,6 @@
 import re
 
-from fints.formals import Container, ContainerMeta, SegmentHeader, DataElementGroupField, DataElementField, ReferenceMessage, SegmentSequenceField, SecurityProfile, SecurityIdentificationDetails, SecurityDateTime, EncryptionAlgorithm, KeyName, Certificate, HashAlgorithm, SignatureAlgorithm, UserDefinedSignature, Response
+from fints.formals import Container, ContainerMeta, SegmentHeader, DataElementGroupField, DataElementField, ReferenceMessage, SegmentSequenceField, SecurityProfile, SecurityIdentificationDetails, SecurityDateTime, EncryptionAlgorithm, KeyName, Certificate, HashAlgorithm, SignatureAlgorithm, UserDefinedSignature, Response, AccountInformation, AccountLimit, AllowedTransaction
 
 from fints.utils import classproperty, SubclassesMixin
 
@@ -106,3 +106,23 @@ class HIRMG2(FinTS3Segment):
 
 class HIRMS2(FinTS3Segment):
     response = DataElementGroupField(type=Response, min_count=1, max_count=99)
+
+class HIUPA4(FinTS3Segment):
+    user_identifier = DataElementField(type='id')
+    upd_version = DataElementField(type='num', max_length=3)
+    upd_usage = DataElementField(type='code', length=1)
+    username = DataElementField(type='an', max_length=35, required=False)
+    extension = DataElementField(type='an', max_length=2048, required=False)
+
+class HIUPD6(FinTS3Segment):
+    account_information = DataElementGroupField(type=AccountInformation)
+    iban = DataElementField(type='an', max_length=34)
+    customer_id = DataElementField(type='id')
+    account_type = DataElementField(type='num', max_length=2)
+    account_currency = DataElementField(type='cur')
+    name_account_owner_1 = DataElementField(type='an', max_length=27)
+    name_account_owner_2 = DataElementField(type='an', max_length=27, required=False)
+    account_product_name = DataElementField(type='an', max_length=30, required=False)
+    account_limit = DataElementGroupField(type=AccountLimit, required=False)
+    allowed_transactions = DataElementGroupField(type=AllowedTransaction, max_count=999, required=False)
+    extension = DataElementField(type='an', max_length=2048, required=False)