Buchungsjournal als CSV – die Spezifikation

myControlling – Spezifikation für den Datei-Eingang

Diese Spezifikation gilt für alle Buchhaltungssysteme ohne eigenen Export-Weg – also für alles außer Scopevisio (Live-URL), DATEV (Schnittstelle), RZL (eigener Export) und BMD (BuErf-Export). Im Admin heißt diese Auswahl „Anderes System (Datei-Eingang)“. BMD hat dort einen eigenen Eintrag – „BMD-CSV (Upload)“ –, obwohl es denselben Weg nimmt: Datei-Eingang statt Abruf.

Wer eine Datei nach dieser Spezifikation liefert, braucht kein manuelles Spalten-Mapping mehr: die Datei wird beim Eingang erkannt und direkt eingelesen.

Ein BMD-Kunde liefert weiterhin seinen BuErf-Export. Der wird unverändert erkannt und eingelesen – die Datei muss nicht auf diese Spezifikation umgebaut werden.

Diese Seite ist die verbindliche Fassung. Sie wird bei jeder Änderung der Spezifikation neu erzeugt – was hier steht, gilt.

1. Dateiformat

EigenschaftVorgabe
TrennzeichenSemikolon ;
ZeichensatzUTF-8 (BOM erlaubt)
ZeilenendeCRLF oder LF
Zahlenformatdeutsch: Punkt als Tausender-, Komma als Dezimaltrennzeichen – 1.234,56
DatumsformatTT.MM.JJJJ – 31.01.2026, vierstelliges Jahr
Erste ZeileKopfzeile mit den Spaltennamen
AnführungszeichenNur nötig, wenn ein Feld ein Semikolon enthält – dann das ganze Feld einschließen
Dateiendung.csv

Zusätzliche Spalten, die hier nicht aufgeführt sind, sind erlaubt. Sie werden ignoriert. Ein Export muss also nicht extra beschnitten werden.

Die Reihenfolge der Spalten ist frei – wir lesen sie über die Kopfzeile. Wenn Sie es sich aussuchen können, stellen Sie Sachkonto, Belegdatum, Soll und Haben nach vorn. Das ist die Reihenfolge unserer Beispieldatei.

2. Pflichtspalten

Fehlt eine dieser Spalten, gilt die Datei nicht als spezifikationskonform und muss über den Buchungsjournal-Import von Hand eingelesen werden.

SpalteBedeutungBeispiel
SachkontoNummer des Sachkontos, auf das gebucht wurde.4100
BelegdatumDatum der Buchung im Format TT.MM.JJJJ.31.01.2026
SollSollbetrag der Zeile. Leer oder 0, wenn im Haben gebucht wurde.1.070,00
HabenHabenbetrag der Zeile. Leer oder 0, wenn im Soll gebucht wurde.0,00

3. Optionale Spalten

Jede davon kann fehlen. Was fehlt, fehlt dann aber auch in der Auswertung – die Hinweise in der Spalte „Bedeutung“ sagen, was konkret.

SpalteBedeutungBeispiel
SachkontobezeichnungKlarname des Sachkontos. Ohne ihn zeigen die Auswertungen nur die Kontonummer.Umsatzerlöse Beherbergung 7 %
BuchungstextFreitext zur Buchung. Erscheint im Journal und im Drilldown.Zimmererlös Januar
PersonenkontoNummer des Debitoren- oder Kreditorenkontos. Basis für Offene Posten. Gehört auf die Gegenbuchung – die Forderungs- oder Verbindlichkeitszeile –, nicht auf die Erlös- oder Aufwandszeile. Debitoren erwarten wir im Bereich 10000 bis 69999, Kreditoren im Bereich 70000 bis 99999. Nur Ziffern, ohne Präfix und ohne Punkt.70015
BelegnummerRechnungs- oder Belegnummer. Verknüpft Buchung und Beleg.ER-2026-0031
SteuersatzUmsatzsteuersatz als Prozentwert. Rein informativ – die Steuer wird daraus nicht berechnet. Der Steuerbetrag gehört als eigene Buchungszeile in die Datei. Fehlt die Spalte ganz, meldet das Datenprofil, dass Netto und Brutto nicht sicher unterscheidbar sind – geliefert werden sollte sie deshalb trotzdem.7
KostenstelleKostenstelle oder Abteilung. Basis für den USALI-Abteilungs-Split. Welche Kostenstellen-Codes Sie verwenden, stimmen wir einmalig ab – nennen Sie sie uns vor der ersten Lieferung. Danach müssen sie in jeder Lieferung genau so geschrieben sein, Groß- und Kleinschreibung eingeschlossen. Ein unbekannter Code führt nicht zu einer Fehlermeldung: die Buchung fällt still aus der Abteilungs-Auswertung heraus, und die Abteilung zeigt zu wenig Kosten.LOGIS

Die Beispielwerte LOGIS und KUECHE sind Platzhalter, kein Standard – verwendet wird der Code, der mit uns abgestimmt ist.

4. Erlaubte Schreibweisen der Spaltennamen

Groß- und Kleinschreibung spielt keine Rolle. Führende und abschließende Leerzeichen sowie Anführungszeichen werden entfernt. Darüber hinaus sind je Spalte diese Schreibweisen erlaubt:

SpalteErlaubte Schreibweisen
SachkontoSachkonto, Konto, Kontonummer, Konto-Nr, KontoNr
BelegdatumBelegdatum, Buchungsdatum, Datum, Belegdat, Buchdat
SollSoll, Sollbetrag, Debit
HabenHaben, Habenbetrag, Credit
SachkontobezeichnungSachkontobezeichnung, Kontobezeichnung, Kontoname, Bezeichnung
BuchungstextBuchungstext, Buchungs-Text, Beschreibung, Verwendungszweck
PersonenkontoPersonenkonto, Debitor, Kreditor, Debitorenkonto, Kreditorenkonto
BelegnummerBelegnummer, Belegnr, Beleg-Nr, Rechnungsnummer, Referenz
SteuersatzSteuersatz, USt-Satz, MwSt-Satz, Steuerschlüssel, Steuerschluessel
KostenstelleKostenstelle, Kostenstellen, Kost1, KST

Eine Schreibweise, die hier nicht steht, wird nicht erkannt. Das ist Absicht: geraten wird nach dem Eingang nicht mehr.

Das gilt auch für naheliegende Kurzformen. Eine Spalte namens Text etwa wird nicht als Buchungstext gelesen – dafür heißt sie Buchungstext, Beschreibung oder Verwendungszweck. Der Grund: als exakter Spaltenname ist Text in einer fremden Datei nicht eindeutig. Wird eine Pflichtspalte in einer unbekannten Schreibweise geliefert, ist die Datei nicht spezifikationskonform und läuft über den Administrator. Bei einer optionalen Spalte bleibt der Inhalt einfach leer – das Import-Protokoll weist darauf hin.

5. Regeln je Zeile

Buchungsjournal, keine Saldenliste

Eine Summen-/Saldenliste trägt dieselben vier Pflichtspalten wie ein Journal und wird deshalb auch eingelesen. Nur stünde dann je Konto ein Monatssaldo als einzelne Buchung in der Auswertung – Drilldown, Kostenstellen und jede Tagesbetrachtung wären wertlos.

Sieht eine Datei danach aus – jedes Konto kommt nur einmal vor, und alle Buchungen tragen dasselbe Datum –, weist das Import-Protokoll darauf hin. Abgelehnt wird sie nicht: ein kleines Haus, das einen einzelnen Tag mit wenigen Zeilen liefert, sieht genauso aus.

Was diese Spezifikation nicht abdeckt

6. Was passiert mit fehlerhaften Zeilen

Eine Zeile wird übersprungen, wenn eines davon zutrifft:

FallMeldung im Import-Protokoll
Sachkonto leerZeile N übersprungen – Spalte „Sachkonto“: Sachkonto fehlt.
Sachkonto ohne ZiffernZeile N übersprungen – Spalte „Sachkonto“: Sachkonto enthält keine Kontonummer.
Belegdatum nicht lesbarZeile N übersprungen – Spalte „Belegdatum“: Datum nicht lesbar.
Soll und Haben beide leer oder 0Zeile N übersprungen – Spalten „Soll“ / „Haben“: weder Soll- noch Habenbetrag gefüllt.

Die Meldungen nennen Zeilennummer und Spaltenname, nie den Zellinhalt. Der Grund ist Datenschutz: die Meldungen werden gespeichert und im Admin angezeigt, Buchungsinhalte gehören dort nicht hinein. Wer die Zeilennummer hat, sieht in seiner eigenen Datei selbst nach.

Einzeln aufgeführt werden höchstens 20 Zeilen. Die Gesamtzahl der übersprungenen Zeilen steht immer dabei, auch wenn es mehr waren.

Davon zu unterscheiden sind vier Fälle, in denen nicht die Zeile übersprungen, sondern die ganze Datei abgelehnt wird. In allen vieren würde stillschweigend eine falsche Zahl ankommen – wir raten dann nicht, sondern sagen es:

FallWas passiert
Ein Betrag entspricht nicht der festen SchreibweiseDie Datei wird abgelehnt, mit Zeilennummer und Spaltenname.
Soll und Haben tragen beide einen Betrag und einer davon ein MinusDie Datei wird abgelehnt, mit Zeilennummer und beiden Spaltennamen.
Eine Zeile hat mehr oder weniger Felder als die KopfzeileDie Datei wird abgelehnt, mit Zeilennummer sowie Ist- und Soll-Feldzahl.
Ein Personenkonto trägt etwas anderes als ZiffernDie Datei wird abgelehnt, mit Zeilennummer und Spaltenname.

7. Beispieldatei

Die Beispieldatei zum Herunterladen – neun Zeilen, drei vollständige Buchungssätze (Logis-Erlös gegen Forderung, F&B-Wareneinsatz gegen Verbindlichkeit, F&B-Erlös gegen Forderung). Soll- und Habensumme sind gleich.

Jeder Buchungssatz hat drei Zeilen: den Netto-Betrag auf dem Erfolgskonto, die Steuer auf ihrem eigenen Konto und den Brutto-Betrag auf der Forderung beziehungsweise Verbindlichkeit. 1.000,00 auf 4010 plus 70,00 auf 3510 ergeben die Forderung von 1.070,00 auf 1100.

Die Datei zeigt auch, wo das Personenkonto steht: auf der Gegenbuchung – 1100 für die Forderung, 3000 für die Verbindlichkeit –, während die Erlös-, Aufwands- und Steuerzeilen keines tragen. Die Belegnummer steht auf allen Zeilen eines Satzes; sie ist die Klammer zwischen ihnen.

Die Kostenstellen LOGIS und KUECHE sind Platzhalter, kein Standard – sie zeigen nur, wohin der Code gehört. Verwendet wird der Code, der mit uns abgestimmt ist.

Die Datei ist ein Generat aus der Spezifikation im Code, keine zweite, von Hand gepflegte Fassung.

8. Wie die Datei zu uns kommt

Über den Datei-Eingang – dafür gibt es zwei Wege: den E-Mail-Eingang (die Datei als Anhang an die Eingangsadresse) oder den Upload-Link. Beide enden in derselben Verarbeitung. Welchen Weg ein Kunde nutzt, steht im Admin unter „Dateneingang“.

Zum Zeitraum einer Lieferung. Bitte liefern Sie immer den ganzen Zeitraum seit Beginn des Wirtschaftsjahres, nicht nur den letzten Monat. Grund: nachträgliche Buchungen in einen bereits gelieferten Monat kommen sonst nicht bei uns an, und dieser Monat bleibt in der Auswertung auf dem alten Stand.

Eine kumulative Lieferung löst die vorige ab – eine Korrektur für einen früheren Monat reist dabei automatisch mit. Bei reinen Monatslieferungen kann genau diese Korrektur einen bereits gelieferten Monat aus der Auswertung nehmen: Er fehlt dann vollständig, ohne Fehlermeldung und ohne Warnung.

Passt die Datei nicht zum eingestellten Buchhaltungssystem – zum Beispiel ein Scopevisio-Export bei einem Kunden, der auf „Anderes System“ steht –, wird sie abgelehnt und der Grund im Admin angezeigt. Ein stiller Import mit 0 Buchungen ist damit ausgeschlossen.

9. Die Beispieldatei zum Kopieren

Neun Zeilen, drei vollständige Buchungssätze. Soll- und Habensumme sind gleich. Wenn Sie die Datei in Excel öffnen, prüfen Sie die Betragsspalten: Excel formatiert sie beim Öffnen gern um, und dann steht dort genau die Schreibweise, die wir ablehnen.

Sachkonto;Belegdatum;Soll;Haben;Sachkontobezeichnung;Buchungstext;Personenkonto;Belegnummer;Steuersatz;Kostenstelle
4010;31.01.2026;;1.000,00;Umsatzerlöse Beherbergung 7 %;Zimmererlös Januar;;AR-2026-0007;7;LOGIS
3510;31.01.2026;;70,00;Umsatzsteuer 7 %;Zimmererlös Januar;;AR-2026-0007;7;
1100;31.01.2026;1.070,00;;Debitoren (Forderungen aus Lieferungen/Leistungen);Zimmererlös Januar;10001;AR-2026-0007;;
5000;15.01.2026;800,00;;Wareneinsatz Speisen;Wareneingang Metzgerei;;ER-2026-0031;7;KUECHE
1320;15.01.2026;56,00;;Vorsteuer 7 %;Wareneingang Metzgerei;;ER-2026-0031;7;
3000;15.01.2026;;856,00;Verbindlichkeiten aus Lieferungen und Leistungen;Wareneingang Metzgerei;70015;ER-2026-0031;;
4100;31.01.2026;;2.000,00;Umsatzerlöse Speisen 19 %;Restaurantumsatz Januar;;AR-2026-0012;19;KUECHE
3500;31.01.2026;;380,00;Umsatzsteuer 19 %;Restaurantumsatz Januar;;AR-2026-0012;19;
1100;31.01.2026;2.380,00;;Debitoren (Forderungen aus Lieferungen/Leistungen);Restaurantumsatz Januar;10001;AR-2026-0012;;