  $Id: dtaus.txt,v 1.4 1998/07/07 23:49:45 joey Exp $

  Datentrgeraustausch
  ====================

  Beim Datentrgeraustausch (DTA) werden Zahlungsverkehrsdaten - also
  berweisungen und Lastschriften - nicht mehr auf Papier, sondern
  beleglos auf Disketten an das jeweilige Geldinstitut gegeben.  

  Die Diskette, die zur Datentrgeraustauschdiskette benutzt wird, mu
  formatiert und leer sein. Beschriften Sie die Diskette exakt!  Die
  *einzige* Datei auf der Diskette mu DTAUS0.TXT heien.  Zustzlich
  mu ein Begleitzettel begelegt werden.

  Auf einer Diskette mit 360 KByte werden etwa max. 300 Datenstze
  gespeichert.  Pro Zahlung werden zwischen 512 Bytes fr die Datei
  gespeichert.  Hinzukommen min. 256 Bytes pro Datensatz C.  Dies
  bedeutet, da ungefhr 1000 Zahlungen auf eine 360 KByte Diskette
  bergeben werden knnen. 

  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
  Binrformate.

  Aufbau Datensatz A
  ------------------

   1   0   4 Zeichen	Lnge des Datensatzes, immer 128 Bytes, also immer "0128"
   2   4   1 Zeichen	Datensatz-Typ, immer 'A'
   3   5   2 Zeichen	Art der Transaktionen
                        "LB" fr Lastschriften Bankseitig
                        "LK" fr Lastschriften Kundenseitig
                        "GB" fr Gutschriften Bankseitig
                        "GK" fr Gutschriften Kundenseitig
   4   7   8 Zeichen	Bankleitzahl des Auftraggebers
   5  15   8 Zeichen	CST, "00000000", nur belegt, wenn Diskettenabsender Kreditinstitut
   6  23  27 Zeichen	Name des Auftraggebers
   7  50   6 Zeichen	aktuelles Datum im Format DDMMJJ
   8  56   4 Zeichen	CST, "   " (Blanks)
   9  60  10 Zeichen	Kontonummer des Auftraggebers
  10  70  10 Zeichen	Optionale Referenznummer
  11  80  47 Zeichen	Reserviert, 47 Blanks
  12 127   1 Zeichen	Whrungskennzeichen
                        " " = DM
                        "1" = Euro
	   -- 128 Zeichen

  Aufbau Datensatz C
  ------------------

   1    0   4 Zeichen	Lnge des Datensatzes, 187 + x * 29 (x..Anzahl Erweiterungsteile)
   2    4   1 Zeichen	Datensatz-Typ, immer 'C'
   3    5   8 Zeichen	Bankleitzahl des Auftraggebers (optional)
   4   13   8 Zeichen	Bankleitzahl des Kunden
   5   21  10 Zeichen	Kontonummer des Kunden
   6   31  13 Zeichen	1. Zeichen        "0"
                        2. - 12. Zeichen  interne Kundennummer oder Nullen
                        13. Zeichen       "0"
                        Die interne Nummer wird vom erstbeauftragten
                        Institut zum endbegnstigten Institut
                        weitergeleitet.  Die Weitergabe der internenen
                        Nummer an den berweisungsempfnger ist der
                        Zahlstelle freigestellt.
   7a  44   2 Zeichen	Art der Transaktion
   7b  46   3 Zeichen	------- "----------
                        "04000" Lastschrift des Abbuchungsauftragsverfahren
                        "05000" Lastschrift des Einzugsermchtigungsverfahren
                        "05005" Lastschrift aus Verfgung im elec. Cash-System
                        "05006" Wie 05005 mit auslndischen Karten
                        "51000" berweisungs-Gutschrift
                        "53000" berweisung Lohn/Gehalt/Rente
                        "5400J" Vermgenswirksame Leistung (VL) ohne Sparzulage
                        "5400J" Vermgenswirksame Leistung (VL) mit Sparzulage
                        "56000" berweisung ffentlicher Kassen
                                Die im Textschlssel mit J bezeichnete Stelle,
                                wird bei bernahme in eine Zahlung automatisch
                                mit der jeweils aktuellen Jahresendziffer (7,
                                wenn 97) ersetzt.
   8   49   1 Zeichen	Reserviert, " " (Blank)
   9   50  11 Zeichen	Betrag
  10   61   8 Zeichen	Bankleitzahl des Auftraggebers
  11   69  10 Zeichen	Kontonummer des Auftraggebers
  12   79  11 Zeichen	Betrag in Euro einschlielich
                        Nachkommastellen, nur belegt, wenn Euro als
                        Whrung angegeben wurde (A12, C17a)
  13   90   3 Zeichen	Reserviert, "   " (Blanks)
  14a  93  27 Zeichen	Name des Kunden
  14b 120   8 Zeichen	Reserviert, "        " (Blanks)
	   -- 128 Zeichen
  15  128   27 Zeichen	Name des Auftraggebers
  16  155   27 Zeichen	Verwendungszweck
  17a 182    1 Zeichen	Whrungskennzeichen
                        " " = DM
                        "1" = Euro
  17b 183    2 Zeichen	Reserviert, "  " (Blanks)
  18  185    2 Zeichen	Anzahl der Erweiterungsdatenstze, "00" bis "15"
  19  187    2 Zeichen	Typ
                        "01" Name des Kunden
                        "02" Verwendungszweck
                        "03" Name des Auftraggebers
  20  189   27 Zeichen	Beschreibung gem Typ
  21  216    2 Zeichen	wie C19, oder Blanks
  22  218   27 Zeichen	wie C20, oder Blanks
  23  245   11 Zeichen	11 Blanks
	   -- Ende des ersten Erweiterungsdatensatzes
	   -- 256 Zeichen

  So knnen weitere Datensaetze angehngt werden.  Sie mssen im
  Gesamten jedoch 128 Zeichen lang sein.  Also vier 29-Zeichen Blcke
  und anschlieend mit 12 Blanks auffllen.

  Aufbau Datensatz E
  ------------------

    0   4 Zeichen	Lnge des Datensatzes, immer 128 Bytes, also immer "0128"
    4   1 Zeichen	Datensatz-Typ, immer 'E'
    5   5 Zeichen	"     " (Blanks)
   10   7 Zeichen	Anzahl der Datenstze (wahrscheinlich vom Typ C)
   17  13 Zeichen	Kontrollsumme Betrge
   30  17 Zeichen	Kontrollsumme Kontonummern
   47  17 Zeichen	Kontrollsumme Bankleitzahlen
   64  13 Zeichen	Kontrollsumme Euro, nur belegt, wenn Euro als
                        Whrung angegeben wurde (A12, C17a)
   77  51 Zeichen	51 Blanks

  Begleitzettel
  -------------

  Jede dem Geldinstitut gelieferte Diskette mu einen Begleitzettel
  mit folgenden Mindestangaben enthalten.  Bei mehreren Disketten ist
  fr jede Diskette ein Begleitzettel auszuschreiben.

    Begleitzettel

    Belegloser Datentrgeraustausch

    Sammel-berweisung-/-einziehungsauftrag

    Vol-Nummer der Diskette

    Erstellungsdatum

    Anzahl der Datenstze C (Stckzahl)

    Summe DM der Datenstze C

    Kontrollsumme der Kontonummern der

    berweisungsempfnger/Zahlungspflichtigen

    Kontrollsumme der Bankleitzahlen der endbegnstigten

    Kreditinstitute/Zahlungsstellen

    Bankleitzahl/Kontonummer des Absenders

    Name, Bankleitzahl/Kontonummer des Empfngers

    Ort, Datum

    Firma,Unterschrift

  Sie haben die Pflicht, die Disketten zustzlich 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 fr die Kontrolldatei sind dtaus0.ctl
    und DTAUS0.CTL, fuer die Ausgabe dtaus0.txt.  Es werden zustzlich
    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 fr die Akten in einer
    Tabelle ausgedruckt.

  Weitere API-Funktionen, die es ermoeglichen, direkt die dtaus0.txt
  Datei zu schreiben werden in Zukunft folgen.
