Kassenbuch per KI-Agent
Kassenbuch per KI-Agent führen
Ja — Ihr KI-Agent kann Bareinnahmen und Barausgaben ins Kassenbuch buchen, das Kassenbuch lesen und Kassenbuchungen stornieren. Voraussetzung ist ein API-Schlüssel mit dem Recht write; gebucht wird gegen das Kassenkonto Ihres Kontenrahmens (SKR03 1000, SKR04 1600). Was ein Kassenbuch nicht darf, lässt der Server auch dem Agenten nicht durch: keinen negativen Bestand, keine Buchung in der Zukunft und kein Löschen — korrigiert wird per Gegenbuchung.
Stand: 2026-10-17
Drei Werkzeuge für die Kasse
list_cash_book
Liest das Kassenbuch: Datum, Richtung, Betrag, Gegenkonto, Steuerschlüssel, Text, Gegenpartei, Status und die zugehörige Journalbuchung. Optional auf ein Geschäftsjahr begrenzt, bis 200 Zeilen je Abruf.
book_cash_entry
Bucht eine Kasseneinzahlung (direction in) oder Kassenauszahlung (direction out). Pflicht sind fiscal_year_id, idempotency_key, entry_date, direction, amount (brutto) und category_skr_account, das Gegenkonto.
reverse_cash_entry
Storniert eine Kassenbuchung durch Gegenbuchung. Pflicht ist ein Stornogrund. Der Agent holt vorher Ihre ausdrückliche Bestätigung ein; eine Wiederholung für dieselbe Kassenzeile bucht nicht doppelt.
Was der Server bei jeder Kassenbuchung prüft
Diese Prüfungen stehen im Code des Buchungswegs — für den Agenten genauso wie für die Erfassung in der App.
- Der Kassenbestand darf nie negativ werden. Der Server rechnet vom Startbestand der Kasse über alle gebuchten Kassenzeilen; die maßgebliche Prüfung läuft in der Datenbank im selben Vorgang wie die Buchung, sodass auch zwei gleichzeitige Auszahlungen nicht beide durchgehen. Eine abgelehnte Auszahlung nennt die Deckungslücke.
- Eine rückdatierte Buchung wird an ihrem Datum in die zeitliche Reihenfolge eingefügt und geprüft: Ab dort darf der Bestand an keinem Tag ins Minus fallen.
- Das Datum darf nicht in der Zukunft liegen, muss im Geschäftsjahr liegen und nicht in einem festgeschriebenen Zeitraum.
- Der Betrag ist ein positiver Bruttobetrag; das Gegenkonto darf nicht das Kassenkonto selbst sein.
- Steuer: Eine Bareinnahme verlangt einen Umsatzsteuer-Schlüssel (etwa A19 oder A7), eine Barausgabe einen Vorsteuer-Schlüssel (etwa V19 oder V7). Ein unbekannter Schlüssel wird abgelehnt; ohne Schlüssel bucht der Server ohne Umsatzsteuer. Bei Kleinunternehmern setzt er immer KU.
- Wiederholungen mit derselben UUID als idempotency_key liefern dieselbe Buchung zurück, keine zweite.
Storno statt Löschen
Eine gebuchte Kassenzeile wird weder gelöscht noch geändert. reverse_cash_entry bucht die Gegenbuchung und setzt die Kassenzeile im selben Vorgang auf storniert, damit Journal und Kassenbestand nie auseinanderlaufen. Weil das Kassenbuch in zeitlicher Folge geführt wird, trägt der Storno das heutige Datum, begrenzt auf das Geschäftsjahr der Buchung. Auch ein Storno darf den Bestand nicht ins Minus drehen.
Der Server kennzeichnet reverse_cash_entry als nicht rückholbar; der Agent nennt Ihnen deshalb vorher Datum, Betrag und Grund und ruft erst nach Ihrer Bestätigung auf. Versucht er, eine Kassenbuchung mit storno_journal_entry zu stornieren, lehnt der Server ab und verweist auf reverse_cash_entry — nur dieser Weg schreibt die Gegenzeile ins Kassenbuch.
Bank und Kasse: Abhebung und Einzahlung
Geld zwischen Bankkonto und Kasse bucht der Agent nicht im Kassenbuch, sondern am Bankumsatz: book_bank_transaction mit kind cash_withdrawal bucht die Bankseite und legt die Kassenzeile im selben Vorgang an — eine Abhebung als Kasseneinzahlung, eine Bareinzahlung auf die Bank als Kassenauszahlung. Der Bestand der Kasse wird auch dabei geprüft.
Eine solche Kassenzeile mit Bankumsatz lässt sich nicht über reverse_cash_entry zurücknehmen; der Server nennt dann den richtigen Weg. Privatentnahmen und Privateinlagen in bar bucht der Agent mit book_cash_entry gegen das Privatkonto als Gegenkonto.
Beispiel: Tageslosung buchen
Ein kurzer Auftrag am Abend:
Kasse heute, 17.10.2026: Tageslosung 412,50 € bar, alles mit 19 % Umsatzsteuer. Bitte buchen und den Kassenbestand danach nennen. Die 300 € Bareinzahlung auf die Bank von heute erst buchen, wenn der Umsatz da ist.
Schritt 1: Mit get_entity prüft der Agent Kontenrahmen und Kleinunternehmer-Status, mit list_fiscal_years das Geschäftsjahr 2026 und mit list_accounts das passende Erlöskonto für 19 %.
Schritt 2: book_cash_entry mit entry_date 2026-10-17, direction in, amount 412.50, category_skr_account (das Erlöskonto), vat_key A19, description „Tageslosung 17.10.“ und einer neuen UUID. Die Antwort enthält die Journalbuchung, den verwendeten Steuerschlüssel sowie balance_before und balance_after — den Kassenbestand vor und nach der Buchung.
Schritt 3: Für die Bareinzahlung sucht er später mit list_bank_transactions den Eingang über 300 € und bucht ihn mit book_bank_transaction und kind cash_withdrawal. Dabei entsteht die Kassenauszahlung automatisch; doppelt gebucht wird nichts.
Gute Praxis für ein Kassenbuch per Agent
- § 146 Abs. 1 AO verlangt, Kasseneinnahmen und Kassenausgaben täglich festzuhalten. Ein Agent, den Sie jeden Abend mit der Tageslosung beauftragen, hilft dabei.
- Belege aus list_receipts verknüpft der Agent über attachment_receipt_ids mit der Kassenbuchung, damit jede Zeile ihren Beleg hat.
- Den aktuellen Bestand liefert jede Buchung als balance_after; list_cash_book zeigt die einzelnen Zeilen, aber keinen laufenden Saldo.
- Eine Zählung der Kasse kann der Agent nicht ersetzen. Weicht der gezählte Bestand ab, klären Sie die Ursache, bevor gebucht wird.
Häufige Fragen
Kann der Kassenbestand durch den Agenten negativ werden?
Nein. Jede Auszahlung prüft der Server gegen den Bestand, auch rückdatiert an ihrem Datum. Die maßgebliche Prüfung sitzt in der Datenbank, im selben Vorgang wie die Buchung. Reicht der Bestand nicht, wird nichts gebucht und die Antwort nennt die Lücke.
Kann der Agent eine Kassenbuchung löschen oder ändern?
Nein. Korrigiert wird nur per Storno mit reverse_cash_entry und Stornogrund; danach bucht der Agent den richtigen Betrag neu. Beide Zeilen bleiben im Kassenbuch sichtbar.
Welche Steuerschlüssel nimmt das Kassenbuch?
Bareinnahmen tragen einen Umsatzsteuer-Schlüssel wie A19 oder A7, Barausgaben einen Vorsteuer-Schlüssel wie V19 oder V7. Ein Schlüssel der falschen Richtung wird abgelehnt. Ohne Schlüssel bucht der Server ohne Umsatzsteuer, für Kleinunternehmer immer mit KU.
Darf der Agent rückwirkend buchen?
Ja, innerhalb des Geschäftsjahres und außerhalb festgeschriebener Zeiträume, aber nie in die Zukunft. Eine rückdatierte Auszahlung wird an ihrem Datum geprüft: Der Bestand darf ab dort an keinem Tag negativ werden.
Wie bucht der Agent eine Barabhebung vom Bankkonto?
Am Bankumsatz mit book_bank_transaction und kind cash_withdrawal. Der Server bucht die Bankseite und legt die Kassenzeile im selben Vorgang an. Eine zusätzliche Buchung im Kassenbuch ist nicht nötig und wäre doppelt.
Welches Recht braucht der Schlüssel?
Zum Lesen genügt read, das in jedem Schlüssel enthalten ist. Buchen und Stornieren verlangen write. Weil reverse_cash_entry als nicht rückholbar gekennzeichnet ist, fragt der Agent vor jedem Storno nach Ihrer Bestätigung.
Vom selben Anbieter: Jahresabschluss nach HGB – der komplette Leitfaden auf jahresabschluss.io.