forked from mfiedler/CsvToSepaDD
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
292 lines (202 loc) · 8.61 KB
/
README.txt
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
______________________________________________________
CSVTOSEPADD -- A SIMPLE CSV TO SEPA XML
CONVERTER
Michael Fiedler <dev %AT% michael-fiedler %DOT% net>
Peter Simon - latest Modifications
______________________________________________________
Table of Contents
_________________
1 German
.. 1.1 Kurzbeschreibung
.. 1.2 Einrichtung
.. 1.3 Verwendung
.. 1.4 Lizenz
.. 1.5 Kontakt
.. 1.6 Änderungshinweise
2 English
.. 2.0 Version Information
.. 2.1 Description
.. 2.2 Setup
.. 2.3 Usage
.. 2.4 License
.. 2.5 Contact
.. 2.6 Modifications
1 German
========
1.1 Kurzbeschreibung
~~~~~~~~~~~~~~~~~~~~
`CsvToSepaDD' erzeugt aus einer CSV-Datei eine SEPA-XML-Datei nach dem
Standard `pain.008.003.02' für SEPA-Basislastschriften. Die Datei
kann dann zum Beispiel im Online-Banking deutscher Banken hochgeladen
werden, um einen Lastschrifteinzug zu tätigen.
Hinweis: Vor dem endgültigem Absenden der erzeugten Datei an die Bank
sollten die Angaben darin nochmal auf Korrektheit überprüft werden, da
das Skript auf eigene Gefahr benutzt wird.
1.2 Einrichtung
~~~~~~~~~~~~~~~
`CsvToSepaDD' erfordert das Vorhandensein von [`PySepaDD'] im
`PYTHONPATH':
,----
| export PYTHONPATH=.:/pfad/zu/PySepaDD
`----
`PySepaDD' kann entweder von der Projektseite heruntergeladen werden
oder bei Verwendung der Git-Version von `CsvToSepaDD' als
Git-Teilmodul bezogen werden:
,----
| git clone https://github.com/mfiedler/CsvToSepaDD.git
| cd CsvToSepaDD
| git submodule init
| git submodule update
| export PYTHONPATH=.:PySepaDD
`----
[`PySepaDD'] https://github.com/mfiedler/PySepaDD
1.3 Verwendung
~~~~~~~~~~~~~~
Als Eingabedaten wird eine CSV-Datei verwendet. In ihrer ersten Zeile
muss sie die Feldnamen enthalten, ab der zweiten Zeile folgen die
eigentlichen Nutzdaten. Erforderliche Feldnamen sind:
- `first_name' und `last_name' für den Vor- und Nachnamen des Inhabers
des zu belastenden Kontos
- `IBAN' und `BIC' als Angabe des zu belastenden Kontos
- `amount' als abzubuchender Betrag in Euro (erlaubte Formate: `42',
`42.0', `42.00', `42,0', `42,00')
- `type' als Angabe, ob es sich bei der Lastschrift um eine erstmalige
(Wert `FRST'), eine nachfolgende (`RCUR') oder letztmalige (`FNAL')
innerhalb einer ganzen Reihe von wiederkehrenden Lastschriften oder
aber um eine einmalige (`OOFF') Lastschrift handelt. Bei `OOFF' ist
das Mandat nur für die eine Abbuchung gültig.
- `collection_date' als Datum der Belastung (erlaubte Formate:
`2014-12-27', `27.12.2014', `27.12.14')
- `mandate_id' und `mandate_date' als Mandatsreferenz und Datum der
Ausstellung des Mandats (Datumsformat wie bei `collection_date')
- `description' als Verwendungszweck
Zusätzlich vorhandene Felder in der CSV-Datei werden ignoriert.
Zum Aufruf des Skripts wird zunächst eine Konfigurationsdatei mit den
Informationen zum Einziehenden erstellt. Hierbei werden der Name des
Gläubigers sowie seine IBAN, BIC und Gläubiger-ID abgefragt. Außerdem
wird das Format der CSV-Datei mit den Eingabedaten benötigt
(z. B. `calc-default' für das von LibreOffice/OpenOffice mit den
Standardeinstellungen erzeugte Format). Für Details zu möglichen
Formaten hilft ein Blick in die Datei `CsvToSepaDD.py' weiter, wo am
Anfang die CSV-Dialekte registriert werden. Analog kann auch ein
eigener hier eingetragen werden, vgl. dazu die [Python-Dokumentation
zu CSV-Dialekten]. Die Konfigurationsdatei kann bei Bedarf
nachträglich mit einem Texteditor verändert werden.
,----
| ./CsvToSepaDD.py genconfig config.py
`----
Unter Angabe der Konfigurationsdatei werden dann die Eingabedateien in
eine SEPA-XML-Datei umgewandelt:
,----
| ./CsvToSepaDD.py convert config.py input.csv output.xml
`----
[Python-Dokumentation zu CSV-Dialekten]
https://docs.python.org/2/library/csv.html#dialects-and-formatting-parameters
1.4 Lizenz
~~~~~~~~~~
(C) 2014 Michael Fiedler <dev %AT% michael-fiedler %DOT% net>
Diese Software darf unter den Bedingungen der geänderten BSD-Lizenz
verwendet werden. Der vollständige Lizenztext ist in der Datei
`LICENCE.BSD' zu finden.
1.5 Kontakt
~~~~~~~~~~~
Siehe die [Projektseite] für das System zum Einreichen von
Fehlermeldungen und weitere Kontaktinformationen.
[Projektseite] https://github.com/mfiedler/CsvToSepaDD
1.6 Änderungshinweise
~~~~~~~~~~~~~~~~~~~~~
In diesem Fork wurden folgende Änderungen durchgeführt:
- Python3 ist erforderlich für die Ausführung
- input.csv kann in UTF-8 codiert sein
- Unterstüzung von Zeichen außerhalb ASCII
- Verbessertes Fehlerhandlung bei fehlerhaften Argumenten
- Leerzeichen in der IBAN werden automatisch
- IBAN wird automatisch nach Großbuchstaben konvertiert
- IBAN wird nach interner Prüfsumme geprüft
2 English
=========
2.1 Description
~~~~~~~~~~~~~~~
`CsvToSepaDD' is a very simple converter from CSV to SEPA XML: It
takes CSV input data representing SEPA Core Direct Debit instructions
and creates a SEPA XML file conforming to `pain.008.003.02' standard.
That XML file can then be uploaded to the online banking application
of German banks in order to carry out the transactions.
Notice: Before sending the generated file to your bank, verify it for
correctness once again, as use is at your own risk.
2.2 Setup
~~~~~~~~~
`CsvToSepaDD' depends on a version of [`PySepaDD'] in `PYTHONPATH':
,----
| export PYTHONPATH=.:/path/to/PySepaDD
`----
`PySepaDD' can either be downloaded from its project page or, if
`CsvToSepaDD' is used from the Git repository, be obtained as a Git
submodule:
,----
| git clone https://github.com/mfiedler/CsvToSepaDD.git
| cd CsvToSepaDD
| git submodule init
| git submodule update
| export PYTHONPATH=.:PySepaDD
`----
[`PySepaDD'] https://github.com/mfiedler/PySepaDD
2.3 Usage
~~~~~~~~~
The `CsvToSepaDD.py' script uses a CSV file for input data. The first
row must contain the available fields, the second and further rows
represent the actual data. The following fields are required:
- `first_name' and `last_name' as first and last name of the debtor
- `IBAN' and `BIC' of the debtor's bank account
- `amount' in Euro to be transfered (valid formats: `42', `42.0',
`42.00', `42,0', `42,00')
- `type' of the direct debit: `FRST' for the first transaction, `RCUR'
a follow-up or `FNAL' as the last one in a sequence of transactions;
or `OOFF' for a only-once transaction (the mandate is only valid for
that transaction)
- `collection_date' as the debit's transaction date (valid formats:
`2014-12-27', `27.12.2014', `27.12.14')
- `mandate_id' and `mandate_date' as the identifier for the mandate
and the date the mandate was signed (date format as above)
- `description' of the transaction
Additional fields in the CSV file are ignored.
When using the script, you first need to create a configuration file
containing the creditor's data. These are the creditor's name, his
account's IBAN and BIC and his creditor identifier. Moreover, the
format of the input CSV data must be specified (e. g. `calc-default'
for the default export settings of LibreOffice/OpenOffice Calc). See
`CsvToSepaDD.py' source for details of the available formats. If you
need another format than already there, just specify you own one in
that file; see [Python's documentation on CSV dialects] for more
information. You can change the configuration file after creating it
using a texteditor of your choice.
,----
| ./CsvToSepaDD.py genconfig config.py
`----
Now convert the input data to SEPA XML, referring to the created
configuration file:
,----
| ./CsvToSepaDD.py convert config.py input.csv output.xml
`----
[Python's documentation on CSV dialects]
https://docs.python.org/2/library/csv.html#dialects-and-formatting-parameters
2.4 License
~~~~~~~~~~~
(C) 2014 Michael Fiedler <dev %AT% michael-fiedler %DOT% net>
You can use this project under the terms of the modified BSD license,
see the file `LICENSE.BSD' for the full license text.
2.5 Contact
~~~~~~~~~~~
See the [project page] for an issue tracker and further contact
information.
[project page] https://github.com/mfiedler/CsvToSepaDD
2.6 Modifications
~~~~~~~~~~~~~~~~~
In this fork following changes have been performed:
- Python3 is needed for executions
- input.csv can be encoded in UTF-8
- support of characters outside ASCII
- improved error handling when wrong arguments are used
- blanks inside IBAN will be removed automatically
- IBAN will be automatically converted to uppercase
- IBAN is checked with checksum information