Die beinahe einzigen beiden Datensätze, welche zwischen TSE und Kassensystem ausgetauscht werden, die überhaupt durch den Kassenhersteller veränderbar sind. Zum Glück sind diese für Geschäftsvorfälle eindeutig durch eine Anlage zur DSFinV-K festgelegt, sodass wir uns auch darüber keine Gedanken machen müssen.
Wie unter "Bestellung oder nicht" zu lesen gibt es zwei wesentliche ProcessTypes und dazugehörige ProcessData:
ProcessType "Kassenbeleg-V1"
Wird eine Transaktion mit dem ProcessType Beleg an der TSE eröffnet, so müssen in den ProcessData bei Aufruf der finish() Funktion die folgenden Daten in exakt diesem Format enthalten sein:
processType: Kassenbeleg-V1
processData: <Transaktionstyp>^<Brutto-Steuerumsätze>^<Zahlungen>
Trennzeichen: ^ (Unicode U+005E)
<Transaktionstyp>:
Der Transaktionstyp laut DSFinV-K kann folgende Werte annehmen:
Beleg
AVTransfer
AVBestellung
AVTraining
AVBelegstorno
AVBelegabbruch
AVSachbezug
AVSonstige
AVRechnung
<Brutto-Steuerumsätze>:
Für jeden Steuersatz werden hier die Bruttoumsätze aller Steuerklassen getrennt durch das Zeichen “_” (Unterstrich, Unicode U+005F) aufgelistet. Die Umsätze sind mit exakt 2 Nachkommastellen anzugeben, alle anderen Nachkommastellen werden ggf. abgeschnitten. Die Bruttobeträge müssen exakt denen auf dem gedruckten Beleg entsprechen. Auch für nicht verwendete Steuersätze ist der Betrag mit 0.00 in den processData anzugeben. Es gilt folgende Reihenfolge der Steuerklassen:
Regelsteuersatz (19%)
Ermäßigter Steuersatz (7%)
Durchschnittsatz (§24(1)Nr.3 UStG) (10.7%)
Durchschnittsatz (§24(1)Nr.1 UStG) (5.5%)
0%
<Zahlungen>:
Bei den Zahlungen wird nur zwischen “Bar” und “Unbar” unterschieden. Bei mehreren Zahlungsarten sind diese entsprechend zu akkumulieren. Die Zahlungen werden durch das Zeichen “_” (Unterstrich, Unicode U+005F) verkettet. Jede Zahlung wird wie folgt dargestellt:
<Betrag>:<Zahlungsart>:<Währung>
Trennzeichen ist der Doppelpunkt (Unicode U+003A). Der Zahlungsbetrag wird immer mit exakt zwei Nachkommastellen angegeben, alle anderen Nachkommastellen werden ggf. abgeschnitten. Die Zahlungsart kann entweder “Bar” oder “Unbar” sein. Eine Währung wird nur verwendet, wenn diese nicht EUR ist. Die Währung muss dem dreistelligen Währungscode nach ISO 4217 entsprechen.
Damit ergeben sich z.B. folgende Darstellungsmöglichkeiten:
Betrag | Zahlungsform | Währung | Darstellung |
1 | Bar | EUR | 1.00:Bar |
1.99 | Unbar | EUR | 1.99:Unbar |
-2 | Bar | EUR | -2.00:Bar |
3.5 | Bar | CHF | 3.59:Bar:CHF |
4 | Unbar | USF | 4.00:Unbar:USD |
Die Reihenfolge der Zahlungen ist wie folgt festgelegt:
Bar-Zahlung in EUR steht immer an erster Stelle
Bar-Zahlungen in Fremdwährung folgen in der alphabetischen Reihenfolge des Währungscodes
Den Bar-Zahlungen folgt die Unbare Zahlung in EUR
Der Unbare Zahlung in EUR folgen unbare Zahlungen in Fremdwährung in der alphabetischen Reihenfolge des Währungscodes
Beispiele:
Brutto 19%: 75.33 EUR Brutto 7% : 7.99 EUR Zahlung CHF Bar 5.00 Zahlung USD Bar 5.00 Zahlung EUR Bar 10.00 Zahlung EUR Unbar 64.30 | Beleg^75.33_7.99_0.00_0.00_0.00^ 10.00:Bar_5.00:Bar:CHF_5.00:Bar:USD_64.30:Unbar |
ProcessType "Bestellung"
processType: Bestellung-V1
processData:
<Menge>;”<Bezeichnung>”;<Preis>
<Menge>;”<Bezeichnung>”;<Preis>
In den processData der Bestellung werden die einzelnen Bestellpositionen in CSV-Darstellung mit den Spalten Menge, Bezeichnung und Preis abgebildet.
Als Zeilentrennzeichen ist “\n” (Waagenrücklauf, Unicode U+000D) und als Spaltentrennzeichen “;” (Semikolon, Unicode U+003B) zu verwenden.
<Menge>
Die Menge wird immer mit der minimal möglichen Menge von Nachkommastellen angegeben. z.B. Ein Stück als “1”, ½ als “0.5” oder 0.451 kg als “0.451”. Die Mengeneinheit wird nicht mit übergeben, muss aber mit der Mengeneinheit in den aufgezeichneten Daten und in der DSFinV-K-Datenbereitstellung übereinstimmen.
<Bezeichnung>
Die Bezeichnung ist immer in Anführungszeichen (Unicode U+0022) zu setzen. Jedes Anführungszeichen in der Beschreibung selbst, ist durch zwei Anführungszeichen zu ersetzen.
z.B.: Schnitzel “Wiener Art” : ”Schnitzel ””Wiener Art”””
<Preis>
Der Preis entspricht dem Brutto-Einzelpreis der Bestellzeile. Der Preis wird immer mit zwei Nachkommastellen angegeben, alle anderen Nachkommastellen werden ggf. abgeschnitten.
Beispiele:
Bestellungen von 2 x Eisbecher “Himbeere” zu je 3.99 und 1 x Eiskaffee zu 2.99: | 2;”Eisbecher ““Himbeere“““;3.99 1;”Eiskaffee“;2.99 |
ProcessType "Sonstiger Vorgang"
Neben den beiden oben beschriebenen, genau festgelegten Vorgängen gibt es noch den ProcessType "sonstiger Vorgang". Dieser Dient als Sammelbecken für alle Vorgänge, die nicht durch die oben beschriebenen ProcessTypes abgebildet werden können. Wichtig dabei ist, dass alle Vorgänge,, die durch "Kassenbeleg" oder "Bestellung" abgebildet werden können, auch durch diese abgebildet werden müssen.
processType: SonstigerVorgang
processData: <FREI>
Der processType: “SonstigerVorgang” ist für alle Vorgänge zu verwenden, die nicht einem Kassenbeleg oder eine Bestellung entsprechen. Der Inhalt von processData kann vom Aufzeichnungssystem frei gewählt werden. Für ggf. relevante Vorgänge sollte aber nach Möglichkeit ein lesbares Textformat gewählt werden.