Gegenkonto automatisch finden: SKR03/SKR04 mit KI statt Bauchgefühl
Fragen Sie drei Buchhalter, auf welches Konto eine Rechnung für Druckerpapier gehört, und Sie bekommen zwei Antworten: 4930 Bürobedarf oder 4980 sonstiger Betriebsbedarf. Beide sind fachlich vertretbar, und genau deshalb ist „das richtige Gegenkonto“ keine Eigenschaft der Rechnung, sondern eine Konvention des Unternehmens. Ein System, das Gegenkonten automatisch ermitteln soll, muss also nicht schlauer sein als ein Buchhalter — es muss die Konvention dieses Mandanten kennen und darf sie nicht überstimmen.
1. Warum es kein objektiv richtiges Gegenkonto gibt
Der Standardkontenrahmen ist ein Vorschlag, keine Vorschrift. Innerhalb der handelsrechtlichen und steuerlichen Grenzen darf ein Unternehmen frei entscheiden, wie fein es seine Aufwände gliedert. Ein Betrieb führt Werkzeug, Kleingeräte und Verbrauchsmaterial getrennt, der nächste buchte alles drei auf ein Sammelkonto. Beides ist zulässig.
Für die Automatisierung ist das eine wichtige Einsicht, weil sie die Aufgabe verändert. Die Frage ist nicht: „Welches Konto ist fachlich korrekt?“ Die Frage ist: „Welches Konto hätte die Buchhaltung dieses Mandanten genommen?“ Das erste ist eine Wissensfrage, die zweite eine Frage nach Daten. Systeme, die nur das erste beantworten, produzieren Vorschläge, die fachlich verteidigbar und im Betrieb trotzdem falsch sind — und jede Korrektur kostet mehr Zeit als eine leere Zeile.
2. SKR03 und SKR04: dieselben Aufwände, andere Nummern
SKR03 ist nach Prozessen gegliedert — Wareneingang, Kosten, Erlöse. SKR04 folgt der Bilanz- und GuV-Struktur. Fachlich beschreiben beide dieselben Sachverhalte, die Nummern haben aber nichts miteinander zu tun. Ein Auszug der Konten, die im Rechnungseingang am häufigsten vorkommen (Standardbelegung):
| Aufwand / Sachverhalt | SKR03 | SKR04 | Anmerkung für die Automatik |
|---|---|---|---|
| Bürobedarf | 4930 | 6815 | Der Klassiker — und der häufigste Streitfall gegen „sonstiger Betriebsbedarf“. |
| Werbekosten | 4600 | 6600 | Agenturen, Anzeigen, Online-Werbung. Oft eine eigene Mandantenregel wert. |
| Telefon | 4920 | 6805 | Stabil, monatlich, ideal für die gelernte Hauskontierung. |
| Miete unbewegliche Wirtschaftsgüter | 4210 | 6310 | Regelmäßig, gleicher Betrag — läuft nach dem ersten Beleg von allein. |
| Laufende Kfz-Betriebskosten | 4530 | 6530 | Tankstellen sind Mischkreditoren: Diesel, Wagenwäsche, Snacks. |
| Sonstiger Betriebsbedarf | 4980 | 6850 | Das Sammelkonto. Wenn es zu oft gewinnt, fehlt eine Regel. |
| Verbindlichkeiten aus Lieferungen und Leistungen | 1600 | 3300 | Das Sammelkonto hinter den Kreditoren — kein Gegenkonto für Aufwand. |
| Abziehbare Vorsteuer 19 % | 1576 | 1406 | Wird bei Automatikkonten gar nicht gebucht, sondern über die Kontenfunktion. |
Zwei Dinge folgen daraus. Erstens: Der Kontenrahmen ist eine Eigenschaft des Mandanten, nicht der Software. Er steht auch im DATEV-Export im Header-Feld „Sachkontenrahmen“ — mehr dazu im Artikel zum EXTF-Buchungsstapel. Zweitens: Kontierungswissen ist nicht zwischen Mandanten mit unterschiedlichem Rahmen übertragbar. „Werbeagentur → 4600“ hilft einem SKR04-Mandanten nicht; dort heißt es 6600.
Und die Nummern selbst sind nicht der ganze Kontext. Ein Konto kann in der Belegung dieses Mandanten ein Automatikkonto sein, das seine Umsatzsteuer über die Kontenfunktion mitbringt. Dann darf kein BU-Schlüssel gesetzt werden. Diese Eigenschaft gehört zur Kontenliste, nicht zur Zahl — eine Kontierung, die sie nicht mitführt, produziert Zeilen, die beim Import auffallen.
3. Die Historie als Prior — die stärkste Informationsquelle
Nehmen Sie einen realen Kreditor und zählen Sie, auf welche Konten er im vergangenen Jahr gebucht wurde. Für die meisten Lieferanten sieht das Ergebnis so aus:
Kreditor 70023 Böttcher AG 50 Belege 4930 Bürobedarf 47 ██████████████████████ 4980 Sonst. Betriebsbedarf 2 █ 0480 GWG (Drucker, 412 EUR) 1 ▌ → Hauskontierung: 4930 (94 %)
Das ist ein Prior im wörtlichen Sinn: eine Vorannahme mit Gewicht, bevor überhaupt jemand den Beleginhalt liest. Sie ist deshalb so stark, weil sie aus genau der Quelle stammt, die für die Frage zuständig ist — aus den Entscheidungen dieser Buchhaltung.
Aus der Verteilung liest man mehr als nur den Spitzenwert. Die zwei Ausreißer auf 4980 sind Rauschen; die eine Buchung auf ein GWG-Sammelkonto ist ein Signal, dass dieser Lieferant gelegentlich aktivierungspflichtige Gegenstände liefert und ein Betragslimit als Prüfregel sinnvoll ist. Eine Verteilung wie 26 zu 24 auf zwei Konten wäre etwas anderes: Dieser Kreditor hat keine Hauskontierung, er ist ein Mischkreditor und gehört bewusst in den Review.
4. Die Kontenliste als Enum: warum das Halluzinationen verhindert
Bleibt der Fall ohne Historie. Hier ist ein Sprachmodell tatsächlich nützlich: Es kann aus „Toner HP 216A schwarz, 4 Stück“ auf Bürobedarf schließen, ohne dass jemand eine Regel dafür geschrieben hat. Nur darf es dabei kein Konto erfinden.
Die naive Umsetzung bittet im Prompt: „Antworte mit einem Konto aus der folgenden Liste.“ Das funktioniert meistens und scheitert gelegentlich — und die Fehlerfälle sind die unangenehmsten, weil sie plausibel aussehen. Ein Modell, das 4855 vorschlägt, während dieser Mandant 0480 für geringwertige Wirtschaftsgüter führt, liefert eine Zahl, die im SKR03 existiert und in dieser Buchhaltung nicht.
Die belastbare Umsetzung macht daraus eine strukturelle Bedingung. Im Antwortschema ist gegenkonto kein String, sondern ein Enum über die Kontonummern dieses Mandanten:
{
"type": "object",
"properties": {
"gegenkonto": { "enum": ["0480","1576","4210","4600","4920","4930","4980", …] },
"buSchluessel": { "type": ["string","null"] },
"begruendung": { "type": "string" },
"konfidenz": { "type": "number", "minimum": 0, "maximum": 1 }
},
"required": ["gegenkonto", "begruendung", "konfidenz"]
}Der Unterschied ist grundsätzlich: Ein Prompt ist eine Bitte, ein Enum eine Bedingung. Ein Wert außerhalb der Liste ist keine schlechte Antwort, sondern strukturell keine Antwort.
Und weil ein Schema eine Zusage des Anbieters ist und kein Beweis — abgeschnittene Antworten, Fallback-Modelle, Bibliotheksfehler kommen vor — steht dahinter noch ein deterministischer Check: Ist das zurückgegebene Konto tatsächlich in der Gegenkontenliste des Mandanten? Fällt er durch, entsteht kein Buchungssatz, sondern ein Review-Eintrag. Ein erfundenes Konto erreicht damit nie einen Buchungsstapel.
5. Drei Schichten in fester Reihenfolge
Regel, Kreditor-Default, Modell — in dieser Reihenfolge, von der stärksten zur schwächsten Aussage:
| Schicht | Woher | Confidence | Begründung |
|---|---|---|---|
| (a) Mandantenregel | vom Mandanten selbst hinterlegt | 0,95 | Eine ausdrückliche Festlegung geht allem anderen vor, sonst wäre die Möglichkeit zum Nachschärfen wertlos. Nicht 1,0, weil die Bedingung einer Regel („Belegtext enthält …“) auch zufällig zutreffen kann. |
| (b) Kreditor-Default | Stammdaten-Import oder zwei bestätigte Korrekturen | 0,90 | Die Hauskontierung dieses Lieferanten. Greift sie, wird kein Modell befragt — das ist der Hebel für Kosten und Stabilität gleichzeitig. |
| (c) Sprachmodell | Rechnungsinhalt gegen die Kontenliste | unter 0,85 gedeckelt | Nur wenn (a) und (b) nichts hergeben. Die Auswahl ist ein Enum über die Kontenliste; das Ergebnis geht immer einmal durch den Review. |
Ein Detail an dieser Reihenfolge ist nicht offensichtlich: Sobald eine Freitext-Anweisung des Mandanten im Spiel ist, darf die Abkürzung über das Kreditor-Default nicht mehr stillschweigend gewinnen. Denn genau das könnte die Anweisung ja umstoßen wollen — „ab Juli laufen die Agenturrechnungen nicht mehr auf 4980, sondern auf 4600“ wäre wirkungslos, wenn das gelernte Default weiter durchgreift.
Der Unterschied in der Confidence hat ebenfalls einen konkreten Grund. Regel (0,95) und Kreditor-Default (0,90) liegen über der Auto-Schwelle von 0,85 und dürfen ohne Rückfrage buchen: Beide entstehen aus Mandantendaten und sind vom Inhalt eines eingehenden Belegs nicht beeinflussbar. Ein Modellvorschlag ist bewusst darunter gedeckelt — Positionstexte und Notizen einer Rechnung stehen wörtlich im Prompt, und wer den Beleg schreibt, könnte darin Anweisungen unterbringen. Ein Review, den ein präparierter Beleg abschalten kann, ist kein Review.
6. Regeln und Anweisungen: wenn die Historie nichts weiß
Es gibt Konventionen, die in keiner Historie stehen, weil sie neu sind oder weil sie nicht am Kreditor hängen. Für die gibt es zwei Werkzeuge.
Strukturierte Regeln
Bedingung und Ergebnis, deterministisch auswertbar, ohne Modell:
- Belegtext enthält „Reinigung“ → 4250 (SKR03) statt Sammelkonto
- Kreditor 70088 und Betrag über 1.000 Euro → Review, nie automatisch
- Positionsbezeichnung enthält „Wartungsvertrag“ → periodengerechte Abgrenzung prüfen
Regeln sind reproduzierbar und billig. Ihr Nachteil: Man muss sie schreiben, und eine Regelsammlung wächst leichter als sie schrumpft. Ein Vorschlag aus der Praxis: Regeln erst anlegen, wenn dieselbe Korrektur dreimal aufgetreten ist. Vorher ist der Aufwand höher als der Nutzen.
Freitext-Anweisungen je Mandant
Sätze in normalem Deutsch, die in den Kontierungsprompt eingebettet werden — für alles, was sich nicht in Bedingung-und-Ergebnis fassen lässt:
Bei Reisekostenabrechnungen ist der Kreditor die Person auf Seite 1, nicht das abrechnende Hotel. Rechnungen unserer Konzernschwester (USt-IdNr. DE812…) laufen immer über das Verrechnungskonto, nie über Aufwand. Handwerkerrechnungen für Objekt Nord bekommen KOST1 = NORD.
Anweisungen sind ausdrucksstärker und weicher: Sie wirken über das Modell, also nicht garantiert. Dafür fangen sie genau die Fälle, an denen strukturierte Regeln scheitern. In der Praxis ist die Mischung richtig — Regeln für das Wiederkehrende, Anweisungen für das Eigenartige.
7. Mischkreditoren: der Grenzfall, den niemand wegautomatisiert
Amazon. Der Baumarkt an der Ecke. Die Tankstelle. Der Elektronikgroßhändler. Diese Kreditoren haben keine Hauskontierung, weil sie kein Sortiment haben: Auf einer Rechnung stehen Druckerpapier, ein Werkzeugkoffer, ein Netzteil und ein Fachbuch. Die Häufigkeitsverteilung der Historie ist flach, und der stärkste Hebel der Automatisierung fällt weg.
Vier Umgangsweisen, in der Reihenfolge, in der wir sie empfehlen:
- Kreditor aufteilen. Wenn die Belegkreise sich unterscheiden — Amazon Business für die IT, Amazon für das Büro —, sind das zwei Kreditoren mit je eigener Hauskontierung. Das ist die einzige Variante, die den Fall wirklich auflöst, und sie ist eine Stammdatenentscheidung, keine KI-Frage.
- Regel auf Belegtextmuster. Enthält die Rechnung „Toner“ oder „Papier“, ist Bürobedarf ziemlich sicher. Funktioniert gut bei wenigen, klar getrennten Warengruppen; wird unübersichtlich, sobald man über zehn Regeln je Kreditor hinauskommt.
- Positionsweise vorschlagen lassen. Bei Sammelrechnungen mit klaren Positionen kann das Modell je Position ein Konto vorschlagen. Nützlich, aber teurer und aufwändiger in der Prüfung — und viele Buchhaltungen splitten Eingangsrechnungen aus gutem Grund nicht.
- Bewusst im Review lassen. Die unterschätzte Option. Ein Kreditor mit 30 Belegen im Jahr, den ein Mensch in 15 Sekunden je Beleg prüft, kostet 7,5 Minuten Jahresaufwand. Dafür lohnt sich keine Regelpflege. Diese Kreditoren als Review-Kreditoren zu markieren, ist eine Entscheidung für Genauigkeit, nicht ein Eingeständnis von Schwäche.
8. Aus Korrekturen lernen, ohne überzureagieren
Jede Korrektur im Review ist ein Datenpunkt darüber, wie dieser Mandant wirklich bucht. Nur ist nicht jede Korrektur eine neue Konvention. Wenn jemand einen Drucker über 412 Euro aus 4930 auf ein GWG-Sammelkonto umbucht, ist das kein Grund, den Bürohändler künftig auf GWG zu buchen.
Die Schwelle, die sich in der Praxis bewährt hat, ist niedrig, aber nicht eins: Zwei aufeinanderfolgende bestätigte Buchungen desselben Kreditors auf dasselbe abweichende Konto machen aus diesem Konto die neue Hauskontierung. Zwei, weil ein Einzelfall keine Konvention ist. Nicht fünf, weil sonst ein echter Wechsel — neuer Vertrag, neue Kostenstellenstruktur — Monate braucht, bis er ankommt.
Zusätzlich sind bestätigte Buchungen die besten Beispiele für den Prompt der noch offenen Fälle: ein paar Sätze der Form „Kreditor X, Belegtext Y → Konto Z, bestätigt“ sagen mehr über die Hauskonvention als jede allgemeine Erklärung. Wichtig ist dabei die Auswahl — Beispiele desselben Kreditors zuerst, danach thematisch nahe Belege, begrenzt in der Menge, damit der Prompt nicht ins Uferlose wächst und die Kosten je Beleg stabil bleiben.
In eigene Systeme einbinden
Kontenliste rein, Buchungssatz raus
Die Gegenkontenliste wird über PUT /api/v1/mandanten/{id}/gegenkonten hochgeladen — inklusive Bezeichnungen und der Eigenschaft „Automatikkonto“ —, Rechnungen gehen an POST /api/v1/mandanten/{id}/invoices, und Korrekturen kommen über update_buchungssatz zurück, auch aus einem KI-Agenten über den MCP-Server. Kein zweiter Arbeitsplatz, kein Medienbruch.
9. Häufige Fragen zum Gegenkonto
Was ist das Gegenkonto bei einer Eingangsrechnung?
Bei einer Eingangsrechnung ist das Konto das Personenkonto des Lieferanten und das Gegenkonto das Sachkonto, auf dem der Aufwand landet — etwa 4930 Bürobedarf in SKR03 oder 6815 in SKR04. Die DATEV-Buchungszeile trennt beides in eigene Felder: Feld 7 „Konto“, Feld 8 „Gegenkonto (ohne BU-Schlüssel)“.
Kann eine KI das Gegenkonto zuverlässig bestimmen?
Für den überwiegenden Teil der Belege braucht es dafür gar keine KI: Wenn derselbe Lieferant in der Vergangenheit immer auf dasselbe Konto gebucht wurde, ist die Historie die verlässlichere Quelle als jedes Modell. Ein Sprachmodell ist für die Fälle nützlich, in denen keine Historie existiert — neuer Lieferant, neuer Sachverhalt, Mischkreditor. Dort schlägt es aus dem Rechnungsinhalt ein Konto aus der Kontenliste des Mandanten vor.
Wie verhindert man, dass ein Modell ein Konto erfindet?
Indem die Antwort nicht als Freitext, sondern als Auswahl aus einer Liste eingefordert wird. Technisch ist das ein Enum im Antwortschema, das genau die Kontonummern dieses Mandanten enthält. Ein Wert außerhalb der Liste ist dann schon strukturell keine gültige Antwort. Weil ein solches Schema eine Zusage des Anbieters und kein Beweis ist, prüft danach zusätzlich ein deterministischer Check, ob das Konto in der Liste steht.
Warum nicht den kompletten SKR03 als Auswahl vorgeben?
Weil ein vollständiger Standardkontenrahmen rund 1.400 Konten enthält, ein einzelner Mandant aber typischerweise 80 bis 150 davon benutzt. Die volle Liste vergrößert nur den Raum für plausible Fehlgriffe: 4930 „Bürobedarf“ und 4980 „Sonstiger Betriebsbedarf“ sind fachlich beide vertretbar, aber nur eines davon ist die Konvention dieses Unternehmens. Die gepflegte Mandantenliste ist die schärfere Einschränkung.
Wie unterscheidet sich SKR03 von SKR04 bei der Kontierung?
SKR03 ist nach Prozessen gegliedert (Wareneingang, Kosten, Erlöse), SKR04 nach der Bilanzstruktur. Für die Automatik ist der Unterschied vor allem, dass die Nummern völlig andere sind: Bürobedarf ist in SKR03 4930, in SKR04 6815. Deshalb ist der Kontenrahmen eine Eigenschaft des Mandanten und keine globale Einstellung — und deshalb kann man Kontierungslogik nicht von einem Mandanten auf einen anderen mit anderem Rahmen übertragen.
Wie geht das System mit Mischkreditoren wie Amazon um?
Mischkreditoren sind der ehrliche Grenzfall: Ein Konto pro Lieferant funktioniert hier nicht, weil derselbe Lieferant Büromaterial, Werkzeug, Hardware und Fachliteratur liefert. Sinnvoll sind drei Wege: den Kreditor in mehrere Kreditoren aufteilen, wenn die Belegkreise sich unterscheiden; eine Mandantenregel auf Belegtextmuster legen; oder den Kreditor bewusst als Review-Kreditor führen und die 15 Sekunden Prüfung je Beleg akzeptieren.
Was sind Mandanten-Anweisungen und wann brauche ich sie?
Freitext-Regeln, die der Mandant selbst hinterlegt, etwa: „Reisekostenabrechnungen: Person auf Seite 1 ist der Kreditor“ oder „Rechnungen von Werbeagenturen immer auf 4600, nicht auf 4980“. Sie greifen dort, wo eine Hauskonvention existiert, die man nicht aus der Historie ablesen kann — typischerweise bei neuen Sachverhalten oder nach einer Umstellung. Strukturierte Regeln wirken deterministisch, Freitext-Anweisungen wirken über den Prompt.
Was passiert, wenn ich im Review ein Konto korrigiere?
Die Korrektur wird als solche markiert und fließt als Lernsignal zurück. Fallen für denselben Kreditor zwei bestätigte Buchungen konsistent auf dasselbe abweichende Konto, wird dieses Konto zur neuen Hauskontierung. Zwei und nicht eine, damit ein einzelner Sonderfall die Konvention nicht umschreibt.
Wie hoch dürfen die Kosten je Beleg sein, damit sich das rechnet?
Der Vergleichsanker im Markt liegt bei rund 5 Cent je Buchungssatz für den DATEV-Automatisierungsservice und deutlich höher bei Kanzleiwerkzeugen wie Finmatics, die je Zeile im Bereich von 25 bis 40 Cent liegen. Weil die Historie den größten Teil der Belege ohne Modellaufruf erklärt, fallen KI-Kosten nur für die Reste an — das ist der eigentliche Grund, warum die Schichtung nach Kreditor-Default vor Modell nicht nur genauer, sondern auch billiger ist.
Weiterlesen
- Rechnungen automatisch kontieren: was 2026 wirklich funktioniert
Die Matching-Kaskade, die Review-Schwelle und die Auto-Quoten, die im Markt tatsächlich belegt sind: 76 bis 85 Prozent. - DATEV-Buchungsstapel (EXTF) selbst erzeugen: Format, Fallstricke, Praxis
31 Header-Felder, 125 Felder je Buchungszeile, Belegdatum ohne Jahr: die Feldreferenz und die typischen Importfehler.
Quellen und Grundlagen
- DATEV: Standardkontenrahmen SKR03 und SKR04 in der Standardbelegung, einschließlich Kontenfunktionen und Automatikkonten
- DATEV-Dokument 9211385: Satzbeschreibung Buchungsstapel, Felder „Konto“, „Gegenkonto (ohne BU-Schlüssel)“ und „BU-Schlüssel“
- Finmatics: 76 % vollautomatische Buchungserstellung nach etwa sechs Monaten Lernphase; Candis: 85 % vorkontierte Rechnungen nach 30 Tagen
- § 6 Abs. 2 und 2a EStG zu geringwertigen Wirtschaftsgütern und Sammelposten