-
Notifications
You must be signed in to change notification settings - Fork 82
/
Copy pathstatement.py
122 lines (88 loc) · 6.33 KB
/
statement.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
from fints.fields import DataElementField, DataElementGroupField
from fints.formals import KTI1, Account2, Account3, QueryCreditCardStatements2, SupportedMessageTypes, Balance1,\
CreditCardTransaction1
from .base import FinTS3Segment, ParameterSegment
class HKKAZ5(FinTS3Segment):
"""Kontoumsätze anfordern/Zeitraum, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation"""
account = DataElementGroupField(type=Account2, _d="Kontoverbindung Auftraggeber")
all_accounts = DataElementField(type='jn', _d="Alle Konten")
date_start = DataElementField(type='dat', required=False, _d="Von Datum")
date_end = DataElementField(type='dat', required=False, _d="Bis Datum")
max_number_responses = DataElementField(type='num', max_length=4, required=False, _d="Maximale Anzahl Einträge")
touchdown_point = DataElementField(type='an', max_length=35, required=False, _d="Aufsetzpunkt")
class HIKAZ5(FinTS3Segment):
"""Kontoumsätze rückmelden/Zeitraum, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation"""
statement_booked = DataElementField(type='bin', _d="Gebuchte Umsätze")
statement_pending = DataElementField(type='bin', required=False, _d="Nicht gebuchte Umsätze")
class HKKAZ6(FinTS3Segment):
"""Kontoumsätze anfordern/Zeitraum, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages -- Multibankfähige Geschäftsvorfälle """
account = DataElementGroupField(type=Account3, _d="Kontoverbindung Auftraggeber")
all_accounts = DataElementField(type='jn', _d="Alle Konten")
date_start = DataElementField(type='dat', required=False, _d="Von Datum")
date_end = DataElementField(type='dat', required=False, _d="Bis Datum")
max_number_responses = DataElementField(type='num', max_length=4, required=False, _d="Maximale Anzahl Einträge")
touchdown_point = DataElementField(type='an', max_length=35, required=False, _d="Aufsetzpunkt")
class HIKAZ6(FinTS3Segment):
"""Kontoumsätze rückmelden/Zeitraum, version 6
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages -- Multibankfähige Geschäftsvorfälle """
statement_booked = DataElementField(type='bin', _d="Gebuchte Umsätze")
statement_pending = DataElementField(type='bin', required=False, _d="Nicht gebuchte Umsätze")
class HKKAZ7(FinTS3Segment):
"""Kontoumsätze anfordern/Zeitraum, version 7
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages -- Multibankfähige Geschäftsvorfälle """
account = DataElementGroupField(type=KTI1, _d="Kontoverbindung international")
all_accounts = DataElementField(type='jn', _d="Alle Konten")
date_start = DataElementField(type='dat', required=False, _d="Von Datum")
date_end = DataElementField(type='dat', required=False, _d="Bis Datum")
max_number_responses = DataElementField(type='num', max_length=4, required=False, _d="Maximale Anzahl Einträge")
touchdown_point = DataElementField(type='an', max_length=35, required=False, _d="Aufsetzpunkt")
class HIKAZ7(FinTS3Segment):
"""Kontoumsätze rückmelden/Zeitraum, version 7
Source: FinTS Financial Transaction Services, Schnittstellenspezifikation, Messages -- Multibankfähige Geschäftsvorfälle """
statement_booked = DataElementField(type='bin', _d="Gebuchte Umsätze")
statement_pending = DataElementField(type='bin', required=False, _d="Nicht gebuchte Umsätze")
class DKKKU2(FinTS3Segment):
"""Kreditkartenumsätze anfordern, version 2
Source: Reverse engineered"""
account = DataElementGroupField(type=Account2, _d="Kontoverbindung Auftraggeber")
credit_card_number = DataElementField(type='an', _d="Kreditkartennummer")
subaccount = DataElementField(type='an', required=False, _d="Subaccount?")
date_start = DataElementField(type='dat', required=False, _d="Von Datum")
date_end = DataElementField(type='dat', required=False, _d="Bis Datum")
max_number_responses = DataElementField(type='num', max_length=4, required=False, _d="Maximale Anzahl Einträge")
touchdown_point = DataElementField(type='an', max_length=35, required=False, _d="Aufsetzpunkt")
class DIKKU2(FinTS3Segment):
"""Kreditkartenumsätze rückmelden, version 2
Source: Reverse engineered"""
credit_card_number = DataElementField(type='an', _d="Kreditkartennummer")
_unknown_1 = DataElementField(type='an')
balance = DataElementGroupField(type=Balance1, _d="Saldo")
_unknown_2 = DataElementField(type='an')
_unknown_3 = DataElementField(type='an')
transactions = DataElementGroupField(type=CreditCardTransaction1, _d="Kreditkartenumsatz", min_count=1, required=False)
class DIKKUS2(ParameterSegment):
"""Kreditkartenumsätze anfordern Parameter, version 2
Source: Reverse engineered"""
parameter = DataElementGroupField(type=QueryCreditCardStatements2, _d="Parameter Kreditkartenumsätze anfordern")
class HKCAZ1(FinTS3Segment):
"""Kontoumsätze anfordern/Zeitraum, version 5
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation"""
account = DataElementGroupField(type=KTI1, _d="Kontoverbindung international")
supported_camt_messages = DataElementGroupField(type=SupportedMessageTypes, _d="Kontoverbindung international")
all_accounts = DataElementField(type='jn', _d="Alle Konten")
date_start = DataElementField(type='dat', required=False, _d="Von Datum")
date_end = DataElementField(type='dat', required=False, _d="Bis Datum")
max_number_responses = DataElementField(type='num', max_length=4, required=False, _d="Maximale Anzahl Einträge")
touchdown_point = DataElementField(type='an', max_length=35, required=False, _d="Aufsetzpunkt")
class HICAZ1(FinTS3Segment):
"""Kontoumsätze rückmelden/Zeitraum, version 1
Source: HBCI Homebanking-Computer-Interface, Schnittstellenspezifikation"""
account = DataElementGroupField(type=KTI1, _d="Kontoverbindung Auftraggeber")
camt_descriptor = DataElementField(type='an', _d="camt-Deskriptor")
# According to specification, statement_booked is a DEG with one binary XML *per day*. However, banks apparently
# send just one XML instead.
statement_booked = DataElementField(type='bin', _d="Gebuchte Umsätze")
statement_pending = DataElementField(type='bin', required=False, _d="Nicht gebuchte Umsätze")