[{"data":1,"prerenderedAt":93},["ShallowReactive",2],{"content:blog:offene-posten-bank-statt-haekchen":3,"content:blog":34},{"slug":4,"title":5,"subtitle":6,"date":7,"metaTitle":8,"metaDescription":9,"excerpt":10,"readingMinutes":11,"tags":12,"toc":17,"body":33},"offene-posten-bank-statt-haekchen","Offene Posten aus der Bank statt aus dem Häkchen: 1 725 auf 802","Wie ein Abgleich gegen die Kontoauszüge die Liste offener Lieferantenrechnungen wieder brauchbar macht – für Geschäftsführung und kaufmännische Leitung","2026-08-11","Offene Posten: Bankabgleich statt Zahlungsvermerk","Offene Posten gegen die Bank abgleichen: 1 268 Zahlungen zugeordnet, 1 051 über die Rechnungsnummer. Ein Praxisbericht für kaufmännische Leitungen in DACH.","Eine Lieferantenrechnung galt als offen, solange niemand die Zahlung abgehakt hatte. Wir haben die Liste gegen die Kontoauszüge abgeglichen: 1 268 Zahlungen zugeordnet, 1 051 davon über die Rechnungsnummer. Was dabei bewusst Handarbeit bleibt, steht am Ende.",4,[13,14,15,16],"Buchhaltung","Automatisierung","PostgreSQL","Praxisbericht",[18,21,24,27,30],{"id":19,"text":20},"bezahlt","Offene Posten, die längst bezahlt waren",{"id":22,"text":23},"abgleich","Der Abgleich: Rechnungsnummer zuerst, dann Betrag und Gegenpartei",{"id":25,"text":26},"ergebnis","Von 1 725 auf 802 offene Posten",{"id":28,"text":29},"sekunden","Warum 0,4 Sekunden mehr sind als Komfort",{"id":31,"text":32},"grenzen","Was von Hand bleibt: Zahlungen ohne Rechnungsnummer","\u003Cp>Offene Posten sind nur so richtig wie der Vermerk, der sie schließt. In einem Kundenprojekt galt eine Lieferantenrechnung als offen, solange in der Buchhaltungssoftware niemand die Zahlung abgehakt hatte. Wir haben die Liste gegen die Kontoauszüge abgeglichen statt gegen das Häkchen: Aus 1 725 offenen Positionen wurden 802, jede Änderung mit Beleg.\u003C\u002Fp>\n\n\u003Ch2 id=\"bezahlt\">Offene Posten, die längst bezahlt waren\u003C\u002Fh2>\n\u003Cp>Die Ausgangslage kennt fast jede kaufmännische Leitung. Die Liste der offenen Lieferantenrechnungen ist lang, ein großer Teil steht als überfällig da, und die Buchhaltung sagt: Das meiste ist bezahlt, es ist nur nicht markiert. Beide Aussagen können gleichzeitig stimmen. Die Überweisung ist raus, der Vermerk im System fehlt.\u003C\u002Fp>\n\u003Cp>Das Problem ist nicht der fehlende Vermerk, sondern was aus ihm folgt. Einer Liste, der niemand glaubt, folgt auch niemand. Wer wissen will, was das Unternehmen tatsächlich schuldet, fragt dann nicht das System, sondern eine Person – und die rechnet in einer eigenen Tabelle nach. Die Mahnung eines Lieferanten lässt sich nicht mehr von einer Altlast unterscheiden, und jede Liquiditätsplanung beginnt mit einer Schätzung.\u003C\u002Fp>\n\u003Cp>Den Vermerk einfach nachzutragen, klingt nach der naheliegenden Lösung. Bei vielen hundert Positionen heißt das: jede Rechnung einzeln im Kontoauszug suchen, Sammelüberweisungen auseinandernehmen, Teilzahlungen erkennen. Diese Arbeit ist nie dringend genug, um sie heute zu erledigen, und deshalb bleibt sie liegen.\u003C\u002Fp>\n\n\u003Ch2 id=\"abgleich\">Der Abgleich: Rechnungsnummer zuerst, dann Betrag und Gegenpartei\u003C\u002Fh2>\n\u003Cp>Ob eine Rechnung bezahlt ist, weiß am Ende nicht die Buchhaltungssoftware, sondern die Bank. Deshalb haben wir die importierten Kontoauszüge neben die Liste der offenen Rechnungen gelegt und zwei Wege der Zuordnung gebaut.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Über die Rechnungsnummer.\u003C\u002Fstrong> Viele Überweisungen zitieren im Verwendungszweck die Nummer der Rechnung, die sie bezahlen, oft mehrere in einer Sammelüberweisung. Die Nummer ist das stärkste Merkmal, das eine Zahlung tragen kann. Und gerade Sammelüberweisungen sind der Fall, an dem ein reiner Betragsvergleich scheitert: Ihr Betrag passt zu keiner einzelnen Rechnung.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Über Betrag, Währung, Datum und Gegenpartei.\u003C\u002Fstrong> Fehlt die Nummer, bleibt die Kombination der übrigen Merkmale. Sie ist schwächer, weil derselbe Betrag beim selben Lieferanten mehrfach vorkommen kann.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Eine Regel stand vor der ersten Zeile Code fest: Ein Treffer schließt keine Rechnung automatisch. Er landet in einem eigenen Bereich mit dem Hinweis, dass die Position nach einer Bankzahlung aussieht, und entschieden wird von Hand. Doppelt erfasste Rechnungen werden sichtbar markiert, nicht stillschweigend ausgeblendet. Wie ein \u003Ca href=\"\u002Flexikon\u002Fzahlungsabgleich\">Zahlungsabgleich\u003C\u002Fa> grundsätzlich aufgebaut ist, erklärt das Lexikon.\u003C\u002Fp>\n\n\u003Ch2 id=\"ergebnis\">Von 1 725 auf 802 offene Posten\u003C\u002Fh2>\n\u003Cp>Nach dem Abgleich waren 1 268 Zahlungen ihren Rechnungen zugeordnet, 1 051 davon über die Rechnungsnummer im Verwendungszweck. Die Liste ging von 1 725 auf 802 Positionen zurück. Keine Position ist dabei verschwunden, ohne dass eine Zahlung dahintersteht, die man aufrufen kann.\u003C\u002Fp>\n\u003Cp>Wichtiger als die kleinere Zahl ist, was die verbleibenden Positionen jetzt bedeuten. Ein offener Posten ist wieder eine Frage an die Buchhaltung und keine Vermutung. Die Ansicht trennt außerdem überfällige Rechnungen von denen, die in dieser Woche fällig werden. Positionen, die jünger sind als der letzte importierte Kontoauszug, stehen als „nicht prüfbar“ da, statt als Schuld geführt zu werden. Für die Buchhaltung lässt sich die Liste als Excel-Datei ausgeben.\u003C\u002Fp>\n\n\u003Ch2 id=\"sekunden\">Warum 0,4 Sekunden mehr sind als Komfort\u003C\u002Fh2>\n\u003Cp>Der Abgleich brauchte anfangs 12,3 Sekunden, nach der Überarbeitung 0,4 Sekunden. Für einen einzelnen Lauf ist beides erträglich. Der Unterschied liegt darin, wie ein Abgleich benutzt wird.\u003C\u002Fp>\n\u003Cp>Ein Abgleich, auf den man warten muss, wird zum Termin: Man startet ihn bewusst und selten, und dazwischen veraltet sein Ergebnis. Ein Abgleich unter einer Sekunde kann nach jedem Import eines Kontoauszugs laufen und beim Öffnen der Liste gleich mit. Dann zeigt die Liste nicht den Stand vom letzten Termin, sondern den Stand des letzten Auszugs.\u003C\u002Fp>\n\u003Cp>Erreicht haben wir das nicht mit mehr Rechenleistung, sondern mit einem Textindex in PostgreSQL. Statt jede Zahlung mit jeder Rechnung zu vergleichen, findet die Datenbank die Kandidaten direkt über Bruchstücke der Rechnungsnummer im Verwendungszweck – auch dann, wenn die Nummer dort mit anderen Zeichen oder in anderer Schreibweise steht.\u003C\u002Fp>\n\n\u003Ch2 id=\"grenzen\">Was von Hand bleibt: Zahlungen ohne Rechnungsnummer\u003C\u002Fh2>\n\u003Cp>Die Grenze des Verfahrens liegt in den Zahlungen selbst. Überweisungen ohne Rechnungsnummer im Verwendungszweck lassen sich nur über Betrag, Datum und Gegenpartei zuordnen, und diese Kombination ist mehrdeutig: Zwei gleich hohe Rechnungen desselben Lieferanten im selben Monat sehen für den Abgleich identisch aus. Hier schlägt das System vor, entscheiden muss ein Mensch. Das ist Absicht und kein Rückstand, denn eine fälschlich geschlossene Rechnung richtet mehr Schaden an als eine, die noch offen steht.\u003C\u002Fp>\n\u003Cp>Dasselbe gilt für Gutschriften, die mit Rechnungen verrechnet werden, und für Zahlungen über ein Konto, dessen Auszüge nicht importiert sind. Beides sieht der Abgleich nicht, und er behauptet es auch nicht.\u003C\u002Fp>\n\u003Cp>Die wirksamste Maßnahme gegen diesen Rest liegt deshalb außerhalb der Software: in der eigenen Zahlungsfreigabe darauf achten, dass die Rechnungsnummer im Verwendungszweck steht. Jede Zahlung mit Nummer ist eine, die später niemand suchen muss.\u003C\u002Fp>\n\u003Cp>So bauen wir solche Abgleiche in der \u003Ca href=\"\u002Fleistungen\u002Fprozessautomatisierung\">Prozessautomatisierung\u003C\u002Fa>: Die Bank ist die Quelle für „bezahlt“, ein Treffer ist ein Vorschlag mit Beleg, bis ein Mensch ihn bestätigt, und was als zugeordnet, offen oder nicht prüfbar gilt, legen wir vor dem Start gemeinsam mit der Buchhaltung fest.\u003C\u002Fp>",[35,60,68],{"slug":36,"title":37,"subtitle":38,"date":39,"metaTitle":40,"metaDescription":41,"excerpt":42,"readingMinutes":11,"tags":43,"toc":46},"rechnungsexport-346-belege-fehlten","Abruf an der Quelle statt Rechnungsexport: 346 Belege fehlten","Warum eine CSV-Datei vollständig aussieht, auch wenn sie es nicht ist – und was ein direkter Abruf der Rechnungen daran ändert","2026-09-12","Rechnungsexport von Hand: 346 Belege fehlten","Rechnungsexport von Hand gegen Abruf an der Quelle: 3 048 Rechnungen automatisch geholt, 346 Belege fehlten im Export. Was Buchhaltungen in DACH prüfen.","Einmal im Monat eine CSV-Datei aus dem Portal, darauf bauen alle Auswertungen auf. Wir haben die Rechnungen stattdessen direkt aus dem staatlichen E-Rechnungssystem geholt und beim ersten Abgleich gesehen, was der manuelle Export nie enthalten hatte.",[44,45,13,16],"E-Rechnung","Schnittstellen",[47,50,53,55,58],{"id":48,"text":49},"ausgangslage","Der monatliche Rechnungsexport als Arbeitsgrundlage",{"id":51,"text":52},"quelle","Abruf direkt aus dem E-Rechnungssystem",{"id":22,"text":54},"Der erste Abgleich: 346 Belege, die im Rechnungsexport fehlten",{"id":56,"text":57},"luecken","Warum ein Export Lücken hat, die niemand sieht",{"id":31,"text":59},"Was der Abruf nicht löst",{"slug":4,"title":5,"subtitle":6,"date":7,"metaTitle":8,"metaDescription":9,"excerpt":10,"readingMinutes":11,"tags":61,"toc":62},[13,14,15,16],[63,64,65,66,67],{"id":19,"text":20},{"id":22,"text":23},{"id":25,"text":26},{"id":28,"text":29},{"id":31,"text":32},{"slug":69,"title":70,"subtitle":71,"date":72,"metaTitle":73,"metaDescription":74,"excerpt":75,"readingMinutes":11,"tags":76,"toc":80},"wissensbasis-50-regeln-aus-dem-chat","Wissensbasis statt Chatverlauf: 50 Regeln an einem Tag in den Betrieb","Wie kaufmännische Regeln aus Nachrichten in ein System kommen, mit dem die KI arbeitet – und warum jede Regel danach jemandem gehören muss","2026-07-28","Wissensbasis: 50 Regeln aus dem Chat an einem Tag","Wissensbasis aus dem Chatverlauf: 50 Regeln an einem Tag produktiv, KI-Entwürfe folgen ihnen. Was Unternehmen in DACH für Pflege und Zuständigkeit brauchen.","Die Regeln der Auftragsannahme standen nirgends aufgeschrieben, aber alle waren irgendwann im Chat gesagt worden. Wir haben 50 davon an einem Tag geordnet und in den Betrieb gebracht. Die Technik war der kleinere Teil; die Frage, wer eine Regel ändern darf, der größere.",[77,78,79,16],"KI","Vertrieb","Arbeitsweise",[81,84,87,90],{"id":82,"text":83},"chat","Wo kaufmännische Regeln tatsächlich stehen",{"id":85,"text":86},"tag","Vom Chatverlauf zur Wissensbasis an einem Tag",{"id":88,"text":89},"schattenbetrieb","Schattenbetrieb, bevor die Entwürfe zählen",{"id":91,"text":92},"eigentuemer","Eine Wissensbasis ohne Eigentümer veraltet",1789379229931]