From: Henryk Plötz Date: Wed, 8 Aug 2018 17:53:29 +0000 (+0200) Subject: Implement HIUPA4 and HIUPD6 X-Git-Tag: v2.0.0~1^2~146 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c5fb1b03cfade5eb596428978ac027f93ef3fc9;p=thirdparty%2Fpython-fints.git Implement HIUPA4 and HIUPD6 --- diff --git a/fints/formals.py b/fints/formals.py index 1b2884e..a3fa818 100644 --- a/fints/formals.py +++ b/fints/formals.py @@ -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) diff --git a/fints/segments/__init__.py b/fints/segments/__init__.py index a3a44cc..1b9a41e 100644 --- a/fints/segments/__init__.py +++ b/fints/segments/__init__.py @@ -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)