Dokumentation
Wie aus einer Eingangsrechnung ein Buchungssatz wird, den man verantworten kann: welche Stammdaten es braucht, wie der Lieferant und das Gegenkonto gefunden werden, wann prekonto selbst entscheidet und wann nicht — und was beim Korrigieren gelernt wird. Geschrieben für Menschen, die die Buchung am Ende unterschreiben.
Der Ablauf im Überblick
1. Mandant und DATEV-Kopfdaten
Ein Mandant ist eine Firma, für die kontiert wird. In einer Kanzlei sind das die Mandanten, in einem Unternehmen mit eigener Buchhaltung meist genau einer. Alles ist mandantenbezogen: Stammdaten, Belege, Buchungssätze, Anweisungen, Exporte.
Beim Anlegen werden fünf Angaben verlangt, die alle im Kopf des DATEV-Buchungsstapels landen. Sie sind keine Formalität — mit falschen Kopfdaten importiert DATEV den Stapel entweder nicht oder in den falschen Mandanten.
| Angabe | Erlaubt | Wofür sie gebraucht wird |
|---|---|---|
| Beraternummer | 1001 bis 9999999 | Identifiziert die Kanzlei bzw. den DATEV-Zugang. Steht im Header und muss zum Ziel-Bestand passen. |
| Mandantennummer | 1 bis 99999 | Identifiziert den Mandanten innerhalb dieser Beraternummer. |
| Wirtschaftsjahresbeginn | Kalendertag | Grenze jedes Buchungsstapels. Das Belegdatum trägt im EXTF-Format kein Jahr — DATEV leitet es aus dem Kopf ab. |
| Sachkontenlänge | 4 bis 8 | Wie viele Stellen die Sachkonten haben. Bestimmt gleichzeitig die Länge der Personenkonten: die ist immer eine Stelle mehr. |
| Kontenrahmen | SKR03 oder SKR04 | SKR03 gliedert nach Prozessen, SKR04 nach dem Abschluss. Geht in den Kopf und in den Kontierungs-Prompt. |
Das Wirtschaftsjahr reicht vom hinterlegten Beginn ein Jahr minus einen Tag. Ein Stapel darf diese Grenze nicht überschreiten — deshalb wird pro Periode exportiert, nicht über den Jahreswechsel hinweg. Warum das so sein muss, steht in der Export-Dokumentation.
Ein Mandant wird in der Oberfläche angelegt, nicht über die API. Das ist Absicht: Die Kopfdaten stammen vom Steuerberater und sind keine Angabe, die eine Automatisierung erraten sollte. Wird eine KRExport_MNDT_…-Datei hochgeladen, entsteht daraus ein Vorschlag für die Maske — geschrieben wird er erst, wenn ein Mensch ihn bestätigt.
2. Stammdaten hochladen
Zwei Listen je Mandant. An ihnen hängt, wie gut die Vorschläge von Anfang an sind: Steht in der Kreditorenliste schon ein Standard-Gegenkonto, ist die Hauskontierung des Mandanten ab dem ersten Beleg bekannt und muss nicht erraten werden.
| Liste | Was drinsteht | Pflichtfelder |
|---|---|---|
| Kreditoren | Die Lieferanten als Personenkonten — mit USt-IdNr., IBAN und, wenn vorhanden, dem Standard-Gegenkonto (der Hauskontierung). | kontoNr, name |
| Gegenkonten | Die Sachkonten, auf die gebucht werden darf, mit Bezeichnung, erwartetem Steuersatz und dem Kennzeichen „Automatikkonto“. | kontoNr, bezeichnung |
Optional sind bei Kreditoren ustId, iban und defaultGegenkonto, bei Gegenkonten steuersatzHinweis, erwarteterSteuersatz und automatikkonto. Jedes optionale Feld, das vorhanden ist, macht die Zuordnung sicherer — die USt-IdNr. ist die stärkste Stufe der Matching-Kaskade, und ein Standard-Gegenkonto erspart den Umweg über ein Sprachmodell vollständig.
DATEV-KRexport: ohne KI erkannt
Wer aus DATEV heraus exportiert, bekommt Dateien, deren Aufbau bekannt ist. Solche Dateien werden deterministisch geparst — kein Sprachmodell, keine Heuristik, keine Vorschau nötig. Erkannt werden sie an zwei unabhängigen Merkmalen, eines genügt:
- Dateiname nach dem Muster
KRExport_KRED_…(Kreditoren),KRExport_KTO_…(Sachkonten) oderKRExport_MNDT_…(Mandant), jeweils mit Mandantennummer und Datum. Groß- und Kleinschreibung ist gleichgültig, Zusätze wie(2)stören nicht. - Kopfzeile mit der bekannten Spaltenfolge — etwa
Konto; Kontobeschriftung; SprachIdfür die Sachkontenliste.
Widersprechen sich Dateiname und Kopfzeile, gewinnt die Kopfzeile, und der Widerspruch wird als Hinweis gemeldet — der Inhalt ist die verlässlichere Auskunft. Umbenennen schadet deshalb nicht: Eine KRexport-CSV mit unveränderter Kopfzeile wird auch als liste.csv deterministisch geparst. Der Dateiname ist der Rückfall, wenn die Kopfzeile nicht wiedererkannt wird, und liefert zusätzlich Mandantennummer und Wirtschaftsjahresbeginn — deshalb lohnt es trotzdem, den Originalnamen mitzugeben.
Beliebige Listen: KI-Spaltenmapping mit Vorschau
Nicht jede Liste kommt aus DATEV. Excel-Tabellen aus dem ERP, eine CSV-Datei aus einem Vorgängersystem, ein PDF-Ausdruck des Kontenplans — dafür ordnet ein Sprachmodell die Spalten den Zielfeldern zu. Wichtig ist, was es dabei nicht tut:
- Es sieht nur die Kopfzeile und höchstens zehn Beispielzeilen, Zellen auf 60 Zeichen gekürzt. Nicht die ganze Liste.
- Es liefert nur Spaltennummern und die Zielfeldnamen — und darf nur aus den erlaubten Zielfeldern wählen. Kein Wert wird vom Modell umgeformt; Zahlen, Datumsangaben und Ja/Nein-Felder wandelt deterministischer Code um.
- Fehlt eine Pflichtspalte, wird abgebrochen statt halb importiert.
In der Oberfläche folgt darauf eine Vorschau: die erkannte Spaltenzuordnung, fünf fertig zugeordnete Beispielzeilen und der Probelauf-Fehlerbericht. Erst Ihre Bestätigung schreibt Daten — und die Bestätigung ruft kein Sprachmodell mehr auf, sie arbeitet mit dem Zwischenergebnis. Wer über die API importiert, bekommt keine Vorschau: Dort ist der Aufruf ausdrücklich die Anweisung „übernimm diese Liste“, und der Importbericht in der Antwort nennt hinterher, was übersprungen wurde.
| Format | Unterstützt | Anmerkung |
|---|---|---|
| CSV / Text | ja | Trennzeichen (; Tab , |) und Kodierung werden erkannt; bei geratener Kodierung erscheint ein Hinweis, die Umlaute in der Vorschau zu prüfen. |
| .xlsx | ja | Es wird ein Blatt gelesen — das erste mit genug Zeilen und Spalten, sonst das größte. Der Blattname steht in der Vorschau. |
| .xls (altes Format) | nein | Vorher in .xlsx umspeichern. |
| ja | Wird per Sprachmodell in eine Tabelle übertragen und läuft danach durch dasselbe Mapping. | |
| XRechnung / ZUGFeRD | nein | Das sind Rechnungsformate, keine Stammdatenlisten — sie werden abgewiesen. |
Was ein Upload niemals tut
Übernommen wird per Upsert über Mandant und Kontonummer. Drei Fälle, und der dritte ist der wichtige:
- Konto unbekannt → wird angelegt.
- Konto vorhanden und aus einem früheren Upload → wird aktualisiert, die neuere Liste gilt.
- Konto vorhanden und von Hand gepflegt → wird nicht angefasst und im Bericht als Duplikat genannt. Was ein Mensch hier eingetragen hat — etwa ein Standard-Gegenkonto, das in keiner DATEV-Liste steht — darf ein automatischer Abgleich nicht wegräumen, sonst verliert man bei jedem Sync seine Kontierungsregeln.
Und: Ein Upload löscht nie. Konten, die in der neuen Liste fehlen, bleiben stehen. Kommt eine Kontonummer in der Datei mehrfach vor, gilt das erste Vorkommen; die übrigen werden gemeldet. Ein unbrauchbares Pflichtfeld lässt die Zeile ausfallen, ein unbrauchbares optionales Feld lässt die Zeile durch und bleibt leer. Kein einzelner Fehler bricht den ganzen Import ab.
3. Belegverarbeitung: XML zuerst, KI nur wenn nötig
Was mit einem Beleg passiert, entscheidet sein Inhalt — nicht der Dateiname und nicht der Content-Type. Bei einem PDF wird wirklich in den Anhangsbaum geschaut, ob eine Rechnungs-XML eingebettet ist.
| Eingang | Weg | Sprachmodell beteiligt? |
|---|---|---|
| XRechnung (UBL oder CII) | XML wird geparst: Beträge, Steuersätze, USt-IdNr., IBAN, Rechnungsnummer stehen als Felder da. | nein |
| ZUGFeRD / Factur-X (PDF mit XML) | Die eingebettete XML wird geparst, nicht das PDF-Bild. | nein |
| PDF oder Scan ohne XML | Der Sichtbeleg wird von einem Sprachmodell ausgelesen. | ja |
Der Grund ist nicht Sparsamkeit, sondern Genauigkeit: Bei einer XRechnung steht der Betrag als Zahl in einem benannten Feld. Da gibt es nichts zu erkennen und nichts zu verwechseln. Der Anteil dieser Belege wächst von allein, und mit ihm verschiebt sich die Arbeit von der Erkennung zur Kontierung.
Erkannt und benannt werden die ZUGFeRD-Profile MINIMUM, BASIC-WL, BASIC, EN16931, EXTENDED und XRECHNUNG.
MINIMUM und BASIC-WL dürfen Positionen und Steueraufschlüsselung fehlen. Dann — und nur dann — wird der Sichtbeleg zusätzlich ausgelesen. Weichen XML und Sichtbeleg im Endbetrag voneinander ab, darf niemand automatisch buchen; der Beleg geht in die Prüfung. Scheitert dieser Zusatzschritt (kein KI-Zugang, Überlast), bleiben die XML-Kopfdaten gültig und der Beleg geht mit Hinweis in die Prüfung — er fällt nicht auf „Fehler“.Was danach nachgerechnet wird, ist unabhängig von der Quelle: Netto plus Umsatzsteuer gegen Brutto und die Summe der Positionen gegen Netto, jeweils auf den Cent. Prüfziffer der USt-IdNr., Prüfsumme der IBAN nach mod 97, kalendarische Gültigkeit des Rechnungsdatums, Vorhandensein der Rechnungsnummer.
Optional kommt eine zweite, unabhängige Meinung hinzu: Ist ein Zugang zum Prüfdienst finisma konfiguriert, wird ein ZUGFeRD-PDF dort gegen EN 16931 geprüft. Das Ergebnis erscheint als eigener Prüfpunkt en16931_valide. Ein „ungültig“ ist ein Blocker und schickt den Beleg in die Prüfung — es bricht die Verarbeitung aber nie ab, und ein nicht gelaufener Check erscheint ausdrücklich nicht als bestandener. Ohne Zugang läuft alles unverändert weiter, der Punkt fehlt dann einfach. Was dabei übertragen wird und an wen, steht in den häufigen Fragen.
4. Kreditor finden: die Matching-Kaskade
Der Lieferant auf der Rechnung muss einem Personenkonto Ihrer Kreditorenliste zugeordnet werden. Vier Stufen, absteigend nach Beweiskraft. Die erste, die trifft, gewinnt.
| Stufe | Grundlage | Confidence | Wo sie bricht |
|---|---|---|---|
| 1. USt-IdNr. | Umsatzsteuer-Identifikationsnummer des Verkäufers, normalisiert und mit Formatprüfung | 0,98 | Konzerne führen mehrere Gesellschaften unter einer Nummer. Passt sie auf zwei Kreditoren, ist der Treffer nicht eindeutig. |
| 2. IBAN | IBAN der Rechnung gegen die im Stammsatz hinterlegten IBANs, Prüfsumme mod 97 | 0,95 | Zahlungsdienstleister und Factoring: Auf der Rechnung steht die IBAN des Dienstleisters. Die gehört nicht in den Stammsatz. |
| 3. Name exakt | Normalisierter Firmenname, identisch zum Stammsatz (Rechtsform und Schreibweise geglättet) | 0,90 | Zwei Gesellschaften mit demselben normalisierten Namen. Dann ist der Treffer nicht eindeutig und beide gehen in die Prüfung. |
| 4. Namensähnlichkeit | Ähnlichkeitsmaß über den Namen, Schwelle 0,90 | höchstens 0,80 | Der Deckel liegt unter der Auto-Schwelle — ein Ähnlichkeitstreffer bucht nie durch. Normalformen unter vier Zeichen gehen gar nicht erst in diese Stufe: „ABC“ und „ABD“ sind zu 0,83 ähnlich und haben nichts miteinander zu tun. |
Zwei Regeln stehen über der Kaskade.
Ein ungültiger Schlüssel wird nicht verglichen. Vor Stufe 1 und 2 werden Prüfziffer bzw. Prüfsumme geprüft. Eine falsch gelesene USt-IdNr. könnte zufällig zu einem fremden Kreditor passen — und würde die Rechnung mit der höchsten Confidence der ganzen Kaskade auf ein falsches Konto buchen. Die Stufe wird deshalb übersprungen und nicht bloß schwächer bewertet.
Mehrdeutigkeit wird nie geraten. Passen zwei Kreditoren gleich gut — bei Ähnlichkeitswerten heißt „gleich gut“: sie liegen weniger als 0,01 auseinander — ist das Ergebnis „Prüfung“ mit beiden Kandidaten, nicht der erste in der Liste. Wird kein Kreditor gefunden, bekommt die Prüfliste bis zu drei Beinah-Treffer als unverbindliche Vorschläge.
5. Gegenkonto finden: drei Schichten
Das Gegenkonto — das Sachkonto für den Aufwand — steht nicht auf der Rechnung. Dass ein Lieferant in diesem Betrieb auf 4930 gebucht wird und nicht auf 4980, ist eine Konvention des Mandanten. Drei Schichten, von der stärksten zur schwächsten Aussage:
| Schicht | Woher | Confidence | Braucht ein Sprachmodell? |
|---|---|---|---|
| a) Regeln und Anweisungen | Was der Mandant selbst festgelegt hat. Freitext-Anweisungen wirken über den Prompt — das ist der Weg, der Ihnen heute offensteht. Strukturierte Regeln greifen deterministisch, entstehen im MVP aber nur programmatisch und sind in der Oberfläche noch nicht anlegbar. | 0,95 (strukturierte Regel) | nein (strukturierte Regeln); ja, wenn nur eine Freitext-Anweisung vorliegt |
| b) Kreditor-Default | Die Hauskontierung dieses Lieferanten — aus dem Stammdaten-Upload oder gelernt. | 0,90 | nein |
| c) Sprachmodell | Nur wenn a und b nichts hergeben. Das Modell wählt aus der Gegenkontenliste des Mandanten. | höchstens 0,84 | ja |
Schicht (b) ist der wirtschaftliche Hebel: Greift das Kreditor-Default, wird gar kein Modell gefragt. Das senkt die Kosten je Beleg und macht die Ergebnisse stabil — derselbe Lieferant bekommt immer dasselbe Konto. Eine aktive Freitext-Anweisung schaltet diese Abkürzung ab: Solange eine Anweisung im Spiel ist, darf das Default nicht stillschweigend gewinnen, denn genau das könnte die Anweisung ja umstoßen wollen.
Für Schicht (c) ist entscheidend, wie gefragt wird. Das Modell bekommt die Gegenkontenliste des Mandanten als abgeschlossene Auswahl — technisch ein Enum im Antwortschema — und danach prüft ein deterministischer Check die Antwort noch einmal gegen dieselbe Liste. Ein Konto außerhalb der Liste führt nie zu einer Buchung, sondern in die Prüfung. Eine erfundene Kontonummer kann also nicht in einem Stapel landen.
Und der Deckel bei 0,84 ist mit Bedacht knapp unter der Auto-Schwelle von 0,85 gesetzt. Die Begründung ist eine sicherheitstechnische: Der Beleg gehört dem Absender. Freitextfelder — Notizen, Positionsbezeichnungen, Verwendungszweck — stehen wörtlich im Prompt. Wer sie füllt, könnte darin Anweisungen unterbringen und damit beides steuern: das vorgeschlagene Konto und die gemeldete Sicherheit. Läge der Deckel über der Schwelle, wäre die menschliche Prüfung durch einen präparierten Beleg abschaltbar. Ein Modell, das „1,0“ meldet, hat damit nichts bewiesen.
Strukturierte Regel (0,95) und Kreditor-Default (0,90) bleiben dagegen auto-fähig: Beide entstehen aus Ihren eigenen Daten und wirken deterministisch, ohne dass Belegtext ihre Höhe beeinflussen könnte.
Trägt ein Gegenkonto das Kennzeichen Automatikkonto, ist der Steuerschlüssel darin schon enthalten — dann darf kein BU-Schlüssel gesetzt sein. Ein Widerspruch wird beim Bestätigen und beim Export abgewiesen, nicht stillschweigend geglättet.
6. Confidence, Prüfungen und die Ampel
Hier steht die Regel, die das Verhältnis von KI und Verantwortung bestimmt: Die Selbsteinschätzung eines Sprachmodells allein setzt einen Buchungssatz nie auf „automatisch“. Ein Modell ist bei einer falsch gelesenen Zahl genauso überzeugt wie bei einer richtigen. Über „automatisch“ entscheiden ausschließlich nachrechenbare Prüfungen.
Die Ampel
| Status | Was er heißt | Kommt in den Export? |
|---|---|---|
| auto | Alle blockierenden Prüfungen sind grün und die Gesamtconfidence liegt bei mindestens 0,85. Ein Mensch muss nicht hinsehen. | ja |
| review | Mindestens eine blockierende Prüfung ist offen oder die Confidence liegt unter der Schwelle. Braucht eine menschliche Entscheidung. | nein |
| bestaetigt | Ein Mensch hat den Satz freigegeben — bestätigt oder korrigiert und bestätigt. | ja |
Die Gesamtconfidence ist das Minimum der bewerteten Einzelfelder, nicht ihr Durchschnitt. Ein Durchschnitt würde ein einzelnes unsicheres Feld hinter acht sicheren verstecken — genau der Fall, den die Prüfung abfangen soll.
Die Prüfungen
Ein Prüfergebnis hat eine Schwere: blocker verhindert „automatisch“, hinweis wird nur angezeigt. Die Schwere hängt am konkreten Ergebnis, nicht am Namen der Prüfung — eine fehlende IBAN ist ein Hinweis, eine vorhandene mit falscher Prüfsumme ein Blocker. Das ist der Unterschied zwischen „steht nicht drauf“ und „ist falsch“.
| Prüfung | Frage |
|---|---|
| summen | Netto + Umsatzsteuer = Brutto, und Summe der Positionen = Netto — auf den Cent. |
| ust_id | Prüfziffer und Format der USt-IdNr. des Verkäufers. |
| iban | IBAN-Prüfsumme nach mod 97. |
| belegdatum | Rechnungsdatum vorhanden, plausibel und kalendarisch gültig. |
| rechnungsnummer | Rechnungsnummer vorhanden — Belegfeld 1 ist für die offene-Posten-Verwaltung Pflicht. |
| kreditor_eindeutig | Genau ein Kreditor der Mandantenliste getroffen? |
| gegenkonto_bekannt | Steht das vorgeschlagene Gegenkonto in der Gegenkontenliste? |
| kontolaenge | Passt die Stellenzahl zur Sachkontenlänge des Mandanten? |
| steuersatz_plausibel | Passt der Steuersatz der Rechnung zu Gegenkonto und BU-Schlüssel? |
| wirtschaftsjahr | Liegt das Belegdatum im Wirtschaftsjahr des Stapels? |
| en16931_valide | Urteil des externen Prüfdienstes. Erscheint nur, wenn er tatsächlich gelaufen ist. |
Warum ein KI-Vorschlag immer in die Prüfung geht
Weil die Obergrenzen es erzwingen. Ein Gegenkonto aus dem Sprachmodell trägt höchstens 0,84, ein Kreditor aus der Namensähnlichkeit höchstens 0,80 — beide unter der Schwelle von 0,85. Und weil die Gesamtconfidence das Minimum ist, zieht ein solches Feld den ganzen Satz unter die Schwelle. Das ist keine Einstellung, die man versehentlich verschiebt: Der Vorschlag kann seine eigene Bewertung nicht anheben, weil die Grenze nach der Antwort angewendet wird.
Der praktische Nebeneffekt: Der Aufwand fällt einmal je Lieferant an, nicht einmal je Beleg. Nach der ersten Prüfung ist die Zuordnung bekannt, und der nächste Beleg desselben Lieferanten läuft über Schicht (b) — deterministisch und auto-fähig.
7. Korrigieren und Lernen
In der Prüfliste stehen die Sätze, die eine Entscheidung brauchen — mit der Begründung, warum. Zwei Handlungen:
- Bestätigen heißt „der Vorschlag stimmt“.
- Korrigieren heißt „das ist falsch, so ist es richtig“. Der Satz wird als Korrektur markiert.
Der Unterschied wird festgehalten, und zwar aus einem handfesten Grund: Er ist die einzige ehrliche Grundlage für die Frage, wie gut die Automatik wirklich arbeitet. Eine Oberfläche, die beides über einen Knopf abbildet, macht die Fälle im Nachhinein ununterscheidbar. Deshalb sind Korrigieren und Freigeben in der Oberfläche auch zwei Schritte: Wer etwas geändert hat, soll die Änderung noch einmal ansehen.
Nicht korrigierbar sind Betrag und Belegdatum. Sie stehen so auf der Rechnung. Stimmt der Betrag nicht, ist die Extraktion falsch, und die Antwort darauf ist ein neuer Verarbeitungslauf — nicht ein überschriebener Wert, der nirgends mehr mit dem Beleg übereinstimmt.
Was gelernt wird
Bewusst simpel und erklärbar: kein Training, kein zweites Modell, keine Statistik, die niemand nachvollziehen kann. Zwei Mechanismen, die man in einem Satz versteht.
1. Das Kreditor-Default. Tragen die letzten zwei bestätigten Buchungssätze eines Kreditors dasselbe Gegenkonto und weicht es vom bisherigen Default ab, wird das Default nachgezogen und als gelernt gekennzeichnet.
2. Beispiele im Prompt. Bestätigte Sätze desselben Kreditors — sonst die mit dem ähnlichsten Belegtext — gehen als Beispiele in die Kontierung: höchstens zehn insgesamt, höchstens fünf davon vom gleichen Kreditor. So sieht das Modell Ihre Konvention, statt sie zu erraten.
Lernsignale sind ausschließlich bestätigte Sätze. Ein Entwurf in der Prüfliste sagt nichts, solange ihn niemand freigegeben hat. Und beide Mechanismen ändern nur das, was ein Mensch mit einer Freigabe bestätigt hat — Sie können jedes gelernte Default in den Stammdaten von Hand überschreiben, und ein solcher Eintrag wird von späteren Uploads nicht wieder plattgemacht.
8. Anweisungen: nachschärfen ohne Programmieren
Manche Konventionen kann man aus keiner Historie ablesen und in keine Kontenliste schreiben. Für die gibt es Anweisungen: Freitext-Regeln je Mandant, in normalen Sätzen.
Wenn es eine Reisekostenabrechnung ist, muss immer die Person auf der ersten Seite als Kreditor eingetragen werden.
Das Beispiel ist der Musterfall, weil es ein Problem löst, an dem sonst jede Automatik scheitert. Auf einer Reisekostenabrechnung stehen viele Firmennamen — Hotel, Bahn, Restaurant. Der Kreditor ist aber keiner davon, sondern der Mitarbeiter, der die Auslagen ersetzt bekommt. Es gibt kein Merkmal auf dem Beleg, aus dem sich diese Konvention ableiten ließe; sie muss jemand hinschreiben. Danach gilt sie für jeden solchen Beleg dieses Mandanten.
| Eigenschaft | Regel |
|---|---|
| Geltungsbereich | Extraktion, Kontierung oder beides — wählbar je Anweisung. |
| Vorrang | Anweisungen stehen am Ende des Prompts und gehen den allgemeinen Regeln vor, wo sie ihnen widersprechen. |
| Länge | höchstens 2000 Zeichen je Anweisung |
| Anzahl | höchstens 100 je Mandant |
| Abschalten | Deaktivieren ist der vorgesehene Weg: Die Regel bleibt gespeichert und wirkt nicht mehr — so bleibt nachvollziehbar, unter welcher Regel ein alter Buchungssatz entstand. Endgültiges Löschen ist möglich, aber ein eigener Schritt hinter einer Rückfrage. |
Eine gute Anweisung nennt eine Bedingung und eine Folge und ist so knapp wie möglich. Je Beleg wird protokolliert, wie viele Anweisungen wirksam waren — bei einem überraschenden Vorschlag ist das der erste Ort, an dem man nachsieht.
9. Export nach DATEV
Am Ende steht eine Datei: ein DATEV-Buchungsstapel im EXTF-Format für einen Zeitraum. Enthalten sind alle Sätze mit Status auto und bestaetigt; alles auf review bleibt liegen.
Vor dem Schreiben läuft die strengste Prüfung der ganzen Kette — Kontolängen des Mandanten, Gegenkonto in der Kontenliste, „Automatikkonto ⇒ kein BU-Schlüssel“, Wirtschaftsjahr-Grenze. Der Grund ist einfach: Was hier durchgeht, merkt vor dem DATEV-Import niemand mehr.
Festschreibung bleibt ausnahmslos 0. Ein festgeschriebener Stapel ist in DATEV nicht mehr korrigierbar; diese Entscheidung gehört dem Steuerberater und nicht einem Export. Deshalb ist es eine Konstante und keine Option.
Das EXTF-Format hat eigene Fallstricke — Feldpositionen, ein Belegdatum ohne Jahr, ISO-8859-1 statt UTF-8.
Weiterlesen
- DATEV-Export — EXTF-Format, Feldlängen, GoBD und Festschreibung.
- API-Referenz — derselbe Ablauf programmgesteuert.
- MCP-Server — derselbe Ablauf im KI-Chat.
- Häufige Fragen — Abgrenzung, Datenschutz, Haftung.
- Blog — Hintergründe zu Matching, Gegenkonten und EXTF.