Added COPYING
[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     0   4 Zeichen       Länge des Datensatzes, immer 128 Bytes, also immer "0128"
36     4   1 Zeichen       Datensatz-Typ, immer 'A'
37     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     7   8 Zeichen       Bankleitzahl des Auftraggebers
43    15   8 Zeichen       CST, "00000000"                [was auch immer das sein mag]
44    23  27 Zeichen       Name des Auftraggebers
45    50   6 Zeichen       aktuelles Datum im Format DDMMJJ
46    56   4 Zeichen       CST, "   " (Blanks)
47    60  10 Zeichen       Kontonummer des Auftraggebers
48    70  10 Zeichen       Optionale Referenznummer
49    80  48 Zeichen       Reserviert, 48 Blanks
50         -- 128 Zeichen
51
52   Aufbau Datensatz C
53   ------------------
54
55     0   4 Zeichen       Länge des Datensatzes, 187 + x * 29 (x..Anzahl Erweiterungsteile)
56     4   1 Zeichen       Datensatz-Typ, immer 'C'
57     5   8 Zeichen       Bankleitzahl des Auftraggebers (optional)
58    13   8 Zeichen       Bankleitzahl des Kunden
59    21  10 Zeichen       Kontonummer des Kunden
60    31  13 Zeichen       Reserviert, "0000000000000"
61    44   5 Zeichen       Art der Transaktion
62                         "04000" Lastschrift des Abbuchungsauftragsverfahren
63                         "05000" Lastschrift des Einzugsermächtigungsverfahren
64                         "05005" Lastschrift aus Verfügung im elec. Cash-System
65                         "05006" Wie 05005 mit ausländischen Karten
66                         "51000" Überweisungs-Gutschrift
67                         "53000" Überweisung Lohn/Gehalt/Rente
68                         "5400J" Vermögenswirksame Leistung (VL) ohne Sparzulage
69                         "5400J" Vermögenswirksame Leistung (VL) mit Sparzulage
70                         "56000" Überweisung öffentlicher Kassen
71                                 Die im Textschlüssel mit J bezeichnete Stelle,
72                                 wird bei Übernahme in eine Zahlung automatisch
73                                 mit der jeweils aktuellen Jahresendziffer (7,
74                                 wenn 97) ersetzt.
75    49   1 Zeichen       Reserviert, " " (Blank)
76    50  11 Zeichen       Betrag
77    61   8 Zeichen       Bankleitzahl des Auftraggebers
78    69  10 Zeichen       Kontonummer des Auftraggebers
79    79  11 Zeichen       Filler, "00000000000"
80    90   3 Zeichen       Reserviert, "   " (Blanks)
81    93  27 Zeichen       Name des Kunden
82   120   8 Zeichen       Reserviert, "        " (Blanks)
83         -- 128 Zeichen
84   128   27 Zeichen      Name des Auftraggebers
85   155   27 Zeichen      Verwendungszweck
86   182    3 Zeichen      Reserviert, "   " (Blanks)
87   185    2 Zeichen      Anzahl der Erweiterungsdatensätze, "00" bis "15"
88   187    2 Zeichen      Typ
89                         "01" Name des Kunden
90                         "02" Verwendungszweck
91                         "03" Name des Auftraggebers
92   189   27 Zeichen      Beschreibung gemäß Typ
93   216   29 Zeichen      wie die letzten 29 Zeichen oder 29 Blanks
94   245   11 Zeichen      11 Blanks
95         -- Ende des ersten Erweiterungsdatensatzes
96         -- 256 Zeichen
97
98   So können weitere Datensaetze angehängt werden.  Sie müssen im
99   Gesamten jedoch 128 Zeichen lang sein.  Also vier 29-Zeichen Blöcke
100   und anschließend mit 12 Blanks auffüllen.
101
102   Aufbau Datensatz E
103   ------------------
104
105     0   4 Zeichen       Länge des Datensatzes, immer 128 Bytes, also immer "0128"
106     4   1 Zeichen       Datensatz-Typ, immer 'E'
107     5   5 Zeichen       "     " (Blanks)
108    10   7 Zeichen       Anzahl der Datensätze (wahrscheinlich vom Typ C)
109    17  13 Zeichen       Kontrollsumme Beträge
110    30  17 Zeichen       Kontrollsumme Kontonummern
111    47  17 Zeichen       Kontrollsumme Bankleitzahlen
112    64  13 Zeichen       Reserviert, "0000000000000"
113    77  51 Zeichen       51 Blanks
114
115   Begleitzettel
116   -------------
117
118   Jede dem Geldinstitut gelieferte Diskette muß einen Begleitzettel
119   mit folgenden Mindestangaben enthalten.  Bei mehreren Disketten ist
120   für jede Diskette ein Begleitzettel auszuschreiben.
121
122     Begleitzettel
123
124     Belegloser Datenträgeraustausch
125
126     Sammel-Überweisung-/-einziehungsauftrag
127
128     Vol-Nummer der Diskette
129
130     Erstellungsdatum
131
132     Anzahl der Datensätze C(Stückzahl)
133
134     Summe DM der Datensätze C
135
136     Kontrollsumme der Kontonummern der
137
138     Überweisungsempfänger/Zahlungspflichtigen
139
140     Kontrollsumme der Bankleitzahlen der endbegünstigten
141
142     Kreditinstitute/Zahlungsstellen
143
144     Bankleitzahl/Kontonummer des Absenders
145
146     Name, Bankleitzahl/Kontonummer des Empfängers
147
148     Ort, Datum
149
150     Firma,Unterschrift
151
152   Sie haben die Pflicht, die Disketten zusätzlich durch Klebezettel
153   mit folgenden Angaben zu kennzeichnen.
154
155   Name und Bankleitzahll/Kontonummer des Diskettenabsenders.
156
157     Diskettennummer (VOL-Nummer).
158
159     Dateiname: DTAUS0.TXT 5.25 -und 3.5 Diskette.
160
161   API from dtaus.[ch]
162   -------------------
163
164   void
165   dtaus2control (char *cdtaus, char *ccontrol)
166
167     Diese Routine liest eine Datentraegerdatei aus und wandelt sie in
168     das eigene Kontrollformat zur weiteren Bearbeitung oder Kontrolle.
169
170     Wird als dtaus NULL angegeben, so wird DTAUS0.TXT und dtaus0.txt
171     probiert.  Ist das zweite Argument NULL, so wird auf stdout
172     geschrieben.
173
174   int
175   control2dtaus (char *ccontrol, char *cdtaus, char *cbeleg, char *ccheck)
176
177     Wandelt eine Datei im eigenen Kontrollformat in das genormte
178     Bankformat um.  Die Vorgaben für die Kontrolldatei sind dtaus0.ctl
179     und DTAUS0.CTL, fuer die Ausgabe dtaus0.txt.  Es werden zusätzlich
180     zwei Dateien erstellt.  Die Belegdatei muß unterschrieben mit der
181     Diskette zur Bank gebracht werden.  In der letzten Datei bzw. auf
182     stdout wird der Inhalt des Datentraegers für die Akten in einer
183     Tabelle ausgedruckt.
184
185   Weitere API-Funktionen, die es ermoeglichen, direkt die dtaus0.txt
186   Datei zu schreiben werden in Zukunft folgen.