$Id$ Datenträgeraustausch ==================== Beim Datenträgeraustausch (DTA) werden Zahlungsverkehrsdaten - also Überweisungen und Lastschriften - nicht mehr auf Papier, sondern beleglos auf Disketten an das jeweilige Geldinstitut gegeben. Die Diskette, die zur Datenträgeraustauschdiskette benutzt wird, muß formatiert und leer sein. Beschriften Sie die Diskette exakt! Die *einzige* Datei auf der Diskette muß DTAUS0.TXT heißen. Zusätzlich muß ein Begleitzettel begelegt werden. Auf einer Diskette mit 360 KByte werden etwa max. 300 Datensätze gespeichert. Pro Zahlung werden zwischen 512 Bytes für die Datei gespeichert. Hinzukommen min. 256 Bytes pro Datensatz C. Dies bedeutet, daß ungefähr 1000 Zahlungen auf eine 360 KByte Diskette übergeben werden können. Die Datei besteht aus drei Teilen: Datensatz A - Header Datensatz C - Body Datensatz E - Footer Der Body kann dabei mehrfach auftreten - einmal pro Zahlungsverkehr. Alle Informationen liegen im ASCII-Format vor, keine wilden Binärformate. Aufbau Datensatz A ------------------ 0 4 Zeichen Länge des Datensatzes, immer 128 Bytes, also immer "0128" 4 1 Zeichen Datensatz-Typ, immer 'A' 5 2 Zeichen Art der Transaktionen "LB" für Lastschriften Bankseitig "LK" für Lastschriften Kundenseitig "GB" für Gutschriften Bankseitig "GK" für Gutschriften Kundenseitig 7 8 Zeichen Bankleitzahl des Auftraggebers 15 8 Zeichen CST, "00000000" [was auch immer das sein mag] 23 27 Zeichen Name des Auftraggebers 50 6 Zeichen aktuelles Datum im Format DDMMJJ 56 4 Zeichen CST, " " (Blanks) 60 10 Zeichen Kontonummer des Auftraggebers 70 10 Zeichen Optionale Referenznummer 80 48 Zeichen Reserviert, 48 Blanks -- 128 Zeichen Aufbau Datensatz C ------------------ 0 4 Zeichen Länge des Datensatzes, 187 + x * 29 (x..Anzahl Erweiterungsteile) 4 1 Zeichen Datensatz-Typ, immer 'C' 5 8 Zeichen Bankleitzahl des Auftraggebers (optional) 13 8 Zeichen Bankleitzahl des Kunden 21 10 Zeichen Kontonummer des Kunden 31 13 Zeichen Reserviert, "0000000000000" 44 5 Zeichen Art der Transaktion "04000" Lastschrift des Abbuchungsauftragsverfahren "05000" Lastschrift des Einzugsermächtigungsverfahren "05005" Lastschrift aus Verfügung im elec. Cash-System "05006" Wie 05005 mit ausländischen Karten "51000" Überweisungs-Gutschrift "53000" Überweisung Lohn/Gehalt/Rente "5400J" Vermögenswirksame Leistung (VL) ohne Sparzulage "5400J" Vermögenswirksame Leistung (VL) mit Sparzulage "56000" Überweisung öffentlicher Kassen Die im Textschlüssel mit J bezeichnete Stelle, wird bei Übernahme in eine Zahlung automatisch mit der jeweils aktuellen Jahresendziffer (7, wenn 97) ersetzt. 49 1 Zeichen Reserviert, " " (Blank) 50 11 Zeichen Betrag 61 8 Zeichen Bankleitzahl des Auftraggebers 69 10 Zeichen Kontonummer des Auftraggebers 79 11 Zeichen Filler, "00000000000" 90 3 Zeichen Reserviert, " " (Blanks) 93 27 Zeichen Name des Kunden 120 8 Zeichen Reserviert, " " (Blanks) -- 128 Zeichen 128 27 Zeichen Name des Auftraggebers 155 27 Zeichen Verwendungszweck 182 3 Zeichen Reserviert, " " (Blanks) 185 2 Zeichen Anzahl der Erweiterungsdatensätze, "00" bis "15" 187 2 Zeichen Typ "01" Name des Kunden "02" Verwendungszweck "03" Name des Auftraggebers 189 27 Zeichen Beschreibung gemäß Typ 216 29 Zeichen wie die letzten 29 Zeichen oder 29 Blanks 245 11 Zeichen 11 Blanks -- Ende des ersten Erweiterungsdatensatzes -- 256 Zeichen So können weitere Datensaetze angehängt werden. Sie müssen im Gesamten jedoch 128 Zeichen lang sein. Also vier 29-Zeichen Blöcke und anschließend mit 12 Blanks auffüllen. Aufbau Datensatz E ------------------ 0 4 Zeichen Länge des Datensatzes, immer 128 Bytes, also immer "0128" 4 1 Zeichen Datensatz-Typ, immer 'E' 5 5 Zeichen " " (Blanks) 10 7 Zeichen Anzahl der Datensätze (wahrscheinlich vom Typ C) 17 13 Zeichen Kontrollsumme Beträge 30 17 Zeichen Kontrollsumme Kontonummern 47 17 Zeichen Kontrollsumme Bankleitzahlen 64 13 Zeichen Reserviert, "0000000000000" 77 51 Zeichen 51 Blanks Begleitzettel ------------- Jede dem Geldinstitut gelieferte Diskette muß einen Begleitzettel mit folgenden Mindestangaben enthalten. Bei mehreren Disketten ist für jede Diskette ein Begleitzettel auszuschreiben. Begleitzettel Belegloser Datenträgeraustausch Sammel-Überweisung-/-einziehungsauftrag Vol-Nummer der Diskette Erstellungsdatum Anzahl der Datensätze C(Stückzahl) Summe DM der Datensätze C Kontrollsumme der Kontonummern der Überweisungsempfänger/Zahlungspflichtigen Kontrollsumme der Bankleitzahlen der endbegünstigten Kreditinstitute/Zahlungsstellen Bankleitzahl/Kontonummer des Absenders Name, Bankleitzahl/Kontonummer des Empfängers Ort, Datum Firma,Unterschrift Sie haben die Pflicht, die Disketten zusätzlich durch Klebezettel mit folgenden Angaben zu kennzeichnen. Name und Bankleitzahll/Kontonummer des Diskettenabsenders. Diskettennummer (VOL-Nummer). Dateiname: DTAUS0.TXT 5.25 -und 3.5 Diskette. API from dtaus.[ch] ------------------- void dtaus2control (char *cdtaus, char *ccontrol) Diese Routine liest eine Datentraegerdatei aus und wandelt sie in das eigene Kontrollformat zur weiteren Bearbeitung oder Kontrolle. Wird als dtaus NULL angegeben, so wird DTAUS0.TXT und dtaus0.txt probiert. Ist das zweite Argument NULL, so wird auf stdout geschrieben. int control2dtaus (char *ccontrol, char *cdtaus, char *cbeleg, char *ccheck) Wandelt eine Datei im eigenen Kontrollformat in das genormte Bankformat um. Die Vorgaben für die Kontrolldatei sind dtaus0.ctl und DTAUS0.CTL, fuer die Ausgabe dtaus0.txt. Es werden zusätzlich zwei Dateien erstellt. Die Belegdatei muß unterschrieben mit der Diskette zur Bank gebracht werden. In der letzten Datei bzw. auf stdout wird der Inhalt des Datentraegers für die Akten in einer Tabelle ausgedruckt.