Fix problems with unproperly recognized values like "10,03", "100.004"
[infodrom/dtaus] / dtaus.txt
1   $Id$
2
3   Datenträgeraustausch
4   ====================
5
6   Beim Datenträgeraustausch (DTA) werden Zahlungsverkehrsdaten - also
7   Überweisungen und Lastschriften - nicht mehr auf Papier, sondern
8   beleglos auf Disketten an das jeweilige Geldinstitut gegeben.  
9
10   Die Diskette, die zur Datenträgeraustauschdiskette benutzt wird, muß
11   formatiert und leer sein. Beschriften Sie die Diskette exakt!  Die
12   *einzige* Datei auf der Diskette muß DTAUS0.TXT heißen.  Zusätzlich
13   muß ein Begleitzettel begelegt werden.
14
15   Auf einer Diskette mit 360 KByte werden etwa max. 300 Datensätze
16   gespeichert.  Pro Zahlung werden zwischen 512 Bytes für die Datei
17   gespeichert.  Hinzukommen min. 256 Bytes pro Datensatz C.  Dies
18   bedeutet, daß ungefähr 1000 Zahlungen auf eine 360 KByte Diskette
19   übergeben werden können. 
20
21   Die Datei besteht aus drei Teilen:
22
23   Datensatz A - Header
24   Datensatz C - Body
25   Datensatz E - Footer
26
27   Der Body kann dabei mehrfach auftreten - einmal pro Zahlungsverkehr.
28
29   Alle Informationen liegen im ASCII-Format vor, keine wilden
30   Binärformate.
31
32   Aufbau Datensatz A
33   ------------------
34
35    1    0   4 Zeichen   Länge des Datensatzes, immer 128 Bytes, also immer "0128"
36    2    4   1 Zeichen   Datensatz-Typ, immer 'A'
37    3    5   2 Zeichen   Art der Transaktionen
38                         "LB" für Lastschriften Bankseitig
39                         "LK" für Lastschriften Kundenseitig
40                         "GB" für Gutschriften Bankseitig
41                         "GK" für Gutschriften Kundenseitig
42    4    7   8 Zeichen   Bankleitzahl des Auftraggebers
43    5   15   8 Zeichen   CST, "00000000", nur belegt, wenn Diskettenabsender Kreditinstitut
44    6   23  27 Zeichen   Name des Auftraggebers
45    7   50   6 Zeichen   aktuelles Datum im Format DDMMJJ
46    8   56   4 Zeichen   CST, "   " (Blanks)
47    9   60  10 Zeichen   Kontonummer des Auftraggebers
48   10   70  10 Zeichen   Optionale Referenznummer
49   11a  80  15 Zeichen   Reserviert, 15 Blanks
50   11b  95   8 Zeichen   Optionales Ausführungsdatum im Format DDMMJJJJ.
51                         Nicht jünger als Erstellungsdatum (A7), jedoch
52                         höchstens 15 Kalendertage später.  Sonst Blanks.
53   11c 103  24 Zeichen   Reserviert, 24 Blanks
54   12  127   1 Zeichen   Währungskennzeichen
55                         " " = DM
56                         "1" = Euro
57            -- 128 Zeichen
58
59   Aufbau Datensatz C
60   ------------------
61
62    1    0   4 Zeichen   Länge des Datensatzes, 187 + x * 29 (x..Anzahl Erweiterungsteile)
63    2    4   1 Zeichen   Datensatz-Typ, immer 'C'
64    3    5   8 Zeichen   Bankleitzahl des Auftraggebers (optional)
65    4   13   8 Zeichen   Bankleitzahl des Kunden
66    5   21  10 Zeichen   Kontonummer des Kunden
67    6   31  13 Zeichen   1. Zeichen        "0"
68                         2. - 12. Zeichen  interne Kundennummer oder Nullen
69                         13. Zeichen       "0"
70                         Die interne Nummer wird vom erstbeauftragten
71                         Institut zum endbegünstigten Institut
72                         weitergeleitet.  Die Weitergabe der internenen
73                         Nummer an den Überweisungsempfänger ist der
74                         Zahlstelle freigestellt.
75    7a  44   2 Zeichen   Art der Transaktion
76    7b  46   3 Zeichen   ------- "----------
77                         "04000" Lastschrift des Abbuchungsauftragsverfahren
78                         "05000" Lastschrift des Einzugsermächtigungsverfahren
79                         "05005" Lastschrift aus Verfügung im elec. Cash-System
80                         "05006" Wie 05005 mit ausländischen Karten
81                         "51000" Überweisungs-Gutschrift
82                         "53000" Überweisung Lohn/Gehalt/Rente
83                         "5400J" Vermögenswirksame Leistung (VL) ohne Sparzulage
84                         "5400J" Vermögenswirksame Leistung (VL) mit Sparzulage
85                         "56000" Überweisung öffentlicher Kassen
86                                 Die im Textschlüssel mit J bezeichnete Stelle,
87                                 wird bei Übernahme in eine Zahlung automatisch
88                                 mit der jeweils aktuellen Jahresendziffer (7,
89                                 wenn 97) ersetzt.
90    8   49   1 Zeichen   Reserviert, " " (Blank)
91    9   50  11 Zeichen   Betrag
92   10   61   8 Zeichen   Bankleitzahl des Auftraggebers
93   11   69  10 Zeichen   Kontonummer des Auftraggebers
94   12   79  11 Zeichen   Betrag in Euro einschließlich
95                         Nachkommastellen, nur belegt, wenn Euro als
96                         Währung angegeben wurde (A12, C17a), sonst Nullen
97   13   90   3 Zeichen   Reserviert, 3 Blanks
98   14a  93  27 Zeichen   Name des Kunden
99   14b 120   8 Zeichen   Reserviert, 8 Blanks
100            -- 128 Zeichen
101   15  128   27 Zeichen  Name des Auftraggebers
102   16  155   27 Zeichen  Verwendungszweck
103   17a 182    1 Zeichen  Währungskennzeichen
104                         " " = DM
105                         "1" = Euro
106   17b 183    2 Zeichen  Reserviert, 2 Blanks
107   18  185    2 Zeichen  Anzahl der Erweiterungsdatensätze, "00" bis "15"
108   19  187    2 Zeichen  Typ (1. Erweiterungsdatensatz)
109                         "01" Name des Kunden
110                         "02" Verwendungszweck
111                         "03" Name des Auftraggebers
112   20  189   27 Zeichen  Beschreibung gemäß Typ
113   21  216    2 Zeichen  wie C19, oder Blanks,  (2. Erweiterungsdatensatz)
114   22  218   27 Zeichen  wie C20, oder Blanks
115   23  245   11 Zeichen  11 Blanks
116            -- Ende des ersten Erweiterungsdatensatzes
117            -- 256 Zeichen
118
119   So können weitere Datensaetze angehängt werden.  Sie müssen im
120   Gesamten jedoch 128 Zeichen lang sein.  Also vier 29-Zeichen Blöcke
121   und anschließend mit 12 Blanks auffüllen.
122
123   Aufbau Datensatz E
124   ------------------
125
126    1   0   4 Zeichen    Länge des Datensatzes, immer 128 Bytes, also immer "0128"
127    2   4   1 Zeichen    Datensatz-Typ, immer 'E'
128    3   5   5 Zeichen    Reserviert, 5 Blanks
129    4  10   7 Zeichen    Anzahl der Datensätze vom Typ C
130    5  17  13 Zeichen    Kontrollsumme Beträge
131    6  30  17 Zeichen    Kontrollsumme Kontonummern
132    7  47  17 Zeichen    Kontrollsumme Bankleitzahlen
133    8  64  13 Zeichen    Kontrollsumme Euro, nur belegt, wenn Euro als
134                         Währung angegeben wurde (A12, C17a)
135    9  77  51 Zeichen    51 Blanks
136
137   Begleitzettel
138   -------------
139
140   Jede dem Geldinstitut gelieferte Diskette muß einen Begleitzettel
141   mit folgenden Mindestangaben enthalten.  Bei mehreren Disketten ist
142   für jede Diskette ein Begleitzettel auszuschreiben.
143
144     Begleitzettel
145
146     Belegloser Datenträgeraustausch
147
148     Sammel-Überweisung-/-einziehungsauftrag
149
150     Vol-Nummer der Diskette
151
152     Erstellungsdatum
153
154     Anzahl der Datensätze C (Stückzahl)
155
156     Summe DM der Datensätze C
157
158     Kontrollsumme der Kontonummern der
159
160     Überweisungsempfänger/Zahlungspflichtigen
161
162     Kontrollsumme der Bankleitzahlen der endbegünstigten
163
164     Kreditinstitute/Zahlungsstellen
165
166     Bankleitzahl/Kontonummer des Absenders
167
168     Name, Bankleitzahl/Kontonummer des Empfängers
169
170     Ort, Datum
171
172     Firma,Unterschrift
173
174   Sie haben die Pflicht, die Disketten zusätzlich durch Klebezettel
175   mit folgenden Angaben zu kennzeichnen.
176
177   Name und Bankleitzahll/Kontonummer des Diskettenabsenders.
178
179     Diskettennummer (VOL-Nummer).
180
181     Dateiname: DTAUS0.TXT 5.25 -und 3.5 Diskette.
182
183   API from dtaus.[ch]
184   -------------------
185
186   void
187   dtaus2control (char *cdtaus, char *ccontrol)
188
189     Diese Routine liest eine Datentraegerdatei aus und wandelt sie in
190     das eigene Kontrollformat zur weiteren Bearbeitung oder Kontrolle.
191
192     Wird als dtaus NULL angegeben, so wird DTAUS0.TXT und dtaus0.txt
193     probiert.  Ist das zweite Argument NULL, so wird auf stdout
194     geschrieben.
195
196   int
197   control2dtaus (char *ccontrol, char *cdtaus, char *cbeleg, char *ccheck)
198
199     Wandelt eine Datei im eigenen Kontrollformat in das genormte
200     Bankformat um.  Die Vorgaben für die Kontrolldatei sind dtaus0.ctl
201     und DTAUS0.CTL, fuer die Ausgabe dtaus0.txt.  Es werden zusätzlich
202     zwei Dateien erstellt.  Die Belegdatei muß unterschrieben mit der
203     Diskette zur Bank gebracht werden.  In der letzten Datei bzw. auf
204     stdout wird der Inhalt des Datentraegers für die Akten in einer
205     Tabelle ausgedruckt.
206
207   Weitere API-Funktionen, die es ermoeglichen, direkt die dtaus0.txt
208   Datei zu schreiben werden in Zukunft folgen.