Converter for dtaus files
The dtaus(1) program reads and writes German DTAUS files. DTAUS is an semi-acronym for DatenTr�gerAUStausch. It is used by German credit institutes in order to implement money exchanges between accounts and credit institutes. These files are always called DTAUS0.TXT.
Since they are shipped in a weird ascii format that is not quite readable and writable for human beings a special control format was invented. The dtaus(1) program reads and writes such a control file and generates a proper DTAUS file if requested or decodes one.
The control file implements a very simple format which was invented only for use with the dtaus(1) program. Like with many *nix configuration files empty lines and those beginning with a hash mark (``#'') are ignored. The remaining file is splitted into three major parts: one BEGIN record (representing the A record), several regular records (representing C records) and one optional END record (representing the E record), which is ignored when the control file is read but is extracted from the bank file if one is decoded.
Here's a short sample for a control file:
BEGIN { Art type Name Martin Schulze Konto 123545 BLZ 2004002 Ausfuehrung 23.12.2001 Euro }
{ Transaktion transaction Name Martha Schulze Konto 98832 BLZ 2004003 Betrag 20.00 Zweck Geb�hr Wohnheimnetz Text Anschlu� u. 11+12.97 }
...
Please note that several field names are used in both the BEGIN and the regular record. When used in the BEGIN record they denote your name and your bank account. When used in a regular record they are affiliated with your customers data.
You may use up to 15 fields entitled as Text. They will be recorded one by one and stored into additional data records using the same order. This way you could add a detailed description of the type of money transfer if you like. The contents of the field Zweck are most probably what the customer will see on their bank statements.
The field Ausfuehrung is optional and denotes the day when the entire transaction should be processed. The date has to be given as DD.MM.YYYY and will be translated into the resulting bank file literally. It may not be younger than the creation date of the file which will automatically be inserted by dtaus(1). The processing date also may not be more than 15 years later than the creation date.
One of the following:
LK
Lastschrift Kundenseitig
GK
Gutschrift Kundenseitig
LB
Lastschrift Bankseitig
GB
Gutschrift Bankseitig
One of the following:
Einzug
Bankeinzug
Gutschrift
�berweisung
Verm�gen [JJJJ]
Verm�genswirksame Leistung mit Sparzulage. Als Argument kann das Jahr angegeben werden, f�r das diese Leistung gilt. Wenn es weggelassen, wird, verwendet dtaus das aktuelle Jahr. Vom Jahr wird nur die letzte Ziffer verwendet, es mu� daher auch nicht vollst�ndig angegeben werden.
Vermoegen [JJJJ]
Wie Verm�gen, jedoch ohne Umlaut.
E-Cash
Lastschrift aus Verf�gung im elecctronic Cash-System
E-Cash-A
Lastschrift aus Verf�gung im elecctronic Cash-System mit ausl�ndischer Karte.
You may only use one of these for the entire file. You are not allowed to switch between Einzug and Gutschrift within the same file. If you require the credit institute to process both types, you'll have to provide two separate diskettes.
From January 1st 2002 the currency in many European countries, Germany is among these, changes to Euro. Hence, money transfer changes from DM (formerly known as ``Deutsche Mark'') to Euro. The format specification of DTAUS was meant for DM but was modified in 2001 to support Euro as well. The current version of dtaus(1) supports both currencies. It defaults to using Euro, however. To switch to DM, simply add the keyword DM (or Euro respectively if this version was compiled without Euro support as default) to the BEGIN record. If no currency keyword is given, the compiled in decides (upstream source defaults to Euro).
German Umlauts are converted into two 7-bit characters on the fly so you don't need to care about them. Since the DTAUS0.TXT file only uses uppercase letters every text is also converted to uppercase.
Except for the way records are delimited the format should be self explanatory.