Stornieren per KI-Agent
Rechnungen und Buchungen per KI-Agent stornieren
Ja — Ihr KI-Agent kann Ausgangsrechnungen stornieren, Gutschriften ausstellen, Eingangsrechnungen und Zahlungen zurücknehmen und falsche Buchungen oder ganze Importe per Gegenbuchung stornieren. Voraussetzung ist ein API-Schlüssel mit dem Recht write. Gelöscht wird dabei nichts: Nach den GoBD bleibt jede gebuchte Zeile stehen, die Korrektur ist eine eigene Buchung mit Grund, Datum und Bezug.
Stand: 2026-10-17
Welches Werkzeug für welchen Fehler
cancel_outgoing_invoice
Stellt zu einer Ausgangsrechnung eine Stornorechnung mit eigener, fortlaufender Nummer aus, bucht Erlös und Umsatzsteuer gegen und schließt den offenen Posten — in einer Transaktion.
create_outgoing_credit_note
Gutschrift als Teilstorno: einzelne Positionen mit Nettobetrag und Steuersatz, eigene Nummer, anteilige Gegenbuchung von Erlös und Umsatzsteuer nach § 17 UStG.
cancel_incoming_invoice
Nimmt die Buchung einer unbezahlten Eingangsrechnung per Gegenbuchung zurück; die Rechnung gilt danach als storniert.
list_payments und storno_payment
list_payments zeigt jeden Ausgleich mit clearing_id. storno_payment nimmt eine erfasste Zahlung samt Skonto zurück; die Rechnung ist danach wieder offen.
storno_journal_entry
Storniert eine einzelne Buchung mit Pflicht-Stornogrund. Gehört sie zu einer Rechnung, einer Zahlung, einem Bankumsatz oder einem Nebenbuch, nennt der Server den richtigen Weg.
list_journal_batches und storno_journal_batch
Zeigen die Buchungsimporte mit stapel_id und stornieren einen ganzen Import aus CSV, Excel oder API in einer Transaktion — alles oder nichts.
Ausgangsrechnung: Stornorechnung oder Gutschrift
cancel_outgoing_invoice verlangt id (die Originalrechnung), idempotency_key und correction_date, das Datum der Stornorechnung. Es muss in einem offenen, nicht festgeschriebenen Zeitraum liegen und bleibt bei einer Wiederholung gleich. Ist die Rechnung schon ganz oder teilweise bezahlt, setzt der Agent refund_paid auf true: Der gezahlte Betrag wird dann als Verbindlichkeit gegenüber dem Kunden eingestellt, weil eine Rückzahlung fällig ist.
Soll nur ein Teil korrigiert werden — eine Position zu viel berechnet, ein Nachlass vereinbart —, stellt create_outgoing_credit_note eine Gutschrift aus. Je Position (1 bis 100) nennt der Agent net_amount und tax_rate, optional einen Text. Auch hier gilt refund_paid für den Überhang einer bezahlten Rechnung.
Beide Werkzeuge vergeben eine Rechnungsnummer und sind nicht rückholbar. Der Server weist den Agenten an, vorher Rechnung, Datum und Betrag beziehungsweise Positionen zu nennen und Ihre ausdrückliche Bestätigung für genau diesen Vorgang einzuholen.
Eingangsrechnung und Zahlung zurücknehmen
cancel_incoming_invoice braucht id, idempotency_key und einen Stornogrund (reason), der im Protokoll steht. Hing die Rechnung an einem Beleg, liegt der Beleg danach wieder zur Prüfung bereit und kann richtig gebucht oder verworfen werden. Eine ganz oder teilweise bezahlte Rechnung muss zuerst von ihrer Zahlung gelöst werden.
Dafür sucht der Agent mit list_payments — filterbar nach invoice_id, kind, Zeitraum — die clearing_id des Ausgleichs und ruft storno_payment mit clearing_id, idempotency_key und storno_on auf. Gegengebucht wird jedes Bein, auch Skonto und Steuerkorrektur; die Zahlungszeile wird entfernt, eine Prüfzeile mit negativem Betrag bleibt. Eine zugeordnete Bankzahlung steht danach wieder zur Zuordnung bereit. Das Stornodatum legt der Server wie in der App in das Geschäftsjahr des Ausgleichs und aus festgeschriebenen Zeiträumen heraus. Eine Stornozeile selbst lässt sich nicht noch einmal stornieren.
Einzelbuchung und Buchungsstapel
storno_journal_entry verlangt id und reason. Die Gegenbuchung trägt das Datum der stornierten Buchung; mit booking_date kann der Agent ein späteres Datum im selben Geschäftsjahr wählen. Hat die Buchung Steuerwirkung und liegt ihr Zeitraum schon festgeschrieben oder per Voranmeldung übermittelt, legt der Server die Gegenbuchung in den nächsten offenen Zeitraum. Eine Stornobuchung kann nicht erneut storniert werden, eine bereits stornierte Buchung nicht zweimal.
Der Server lehnt den Einzel-Storno ab, wenn die Buchung zu einem anderen Vorgang gehört, und nennt den passenden Weg: Ausgangsrechnung über cancel_outgoing_invoice, Zahlungsausgleich über storno_payment, Kassenbuchung über reverse_cash_entry, Bankbuchung über „Buchung korrigieren“ in der App, Rückstellung, Abgrenzung oder Anlagenabgang im jeweiligen Fachbereich. So bleiben offene Posten, Nebenbücher und Hauptbuch zusammen.
storno_journal_batch storniert alle noch nicht stornierten Buchungen eines Imports mit source csv_import in einer Transaktion. Pflicht sind stapel_id (aus import_journal_batch oder list_journal_batches), idempotency_key und reason, der in jeder Gegenbuchung steht. Gleicht eine Buchung des Stapels inzwischen einen offenen Posten aus oder hängt sie an einem Bankumsatz, einer Rechnung oder einem Nebenbuch, wird nichts storniert, und der Server nennt den Grund.
Beispiel: bezahlte Rechnung stornieren, Import zurücknehmen
Ein Auftrag mit zwei Korrekturen:
Die Rechnung RE-2026-0187 an die Hafenblick GmbH war falsch und ist schon bezahlt. Bitte stornieren, die Rückzahlung vormerken. Außerdem den CSV-Import von gestern komplett zurücknehmen — die Kostenstellen darin stimmen nicht.
Schritt 1: Mit list_outgoing_invoices findet der Agent die Rechnung RE-2026-0187 und ihre ID; list_payments mit dieser invoice_id zeigt den Zahlungseingang.
Schritt 2: Er nennt Ihnen: Stornorechnung zu RE-2026-0187, Datum heute, voller Betrag, gezahlter Betrag wird Rückzahlungsverbindlichkeit. Erst nach Ihrem Ja ruft er cancel_outgoing_invoice mit correction_date und refund_paid true auf. Die Antwort enthält Nummer und Beträge der Stornorechnung.
Schritt 3: Mit list_journal_batches sucht er den Import von gestern, prüft, dass source csv_import ist, und nennt Ihnen Stapel und Anzahl der Buchungen.
Schritt 4: Nach Ihrer Bestätigung ruft er storno_journal_batch mit stapel_id, neuer UUID und dem Grund „Kostenstellen falsch“ auf. Danach können die richtigen Zeilen mit import_journal_batch neu gebucht werden.
Was dabei festgehalten wird
- Jede Korrektur ist eine eigene Buchung; das Original bleibt im Journal sichtbar.
- Stornogrund, Datum und Bezug zur Originalbuchung stehen in der Gegenbuchung und im Protokoll.
- Festgeschriebene und per Voranmeldung übermittelte Zeiträume bleiben unberührt.
- Jeder Vorgang trägt eine UUID: Wiederholt der Agent nach einem Abbruch mit derselben UUID und denselben Daten, entsteht kein zweiter Storno.
- Es laufen dieselben Wege wie in der App — „Stornieren“, „Gutschrift“, „Ausgleich stornieren“ —, nur angestoßen aus dem Chat.
Häufige Fragen
Kann der Agent eine Rechnung löschen?
Nein. Eine ausgestellte Rechnung hat eine Nummer und lässt sich nur stornieren. Der Agent stellt dafür eine Stornorechnung oder eine Gutschrift aus; das Original bleibt erhalten.
Muss ich einen Storno bestätigen?
Bei Stornorechnung, Gutschrift und dem Storno eines ganzen Imports ja — diese Werkzeuge sind als nicht rückholbar gekennzeichnet, und der Server weist den Agenten an, vorher Ihre ausdrückliche Bestätigung für genau diesen Vorgang einzuholen. Auch vor cancel_incoming_invoice und storno_payment soll er nachfragen.
Was ist der Unterschied zwischen Stornorechnung und Gutschrift?
Die Stornorechnung hebt die ganze Rechnung auf und schließt den offenen Posten. Die Gutschrift korrigiert nur einzelne Positionen und mindert den offenen Posten anteilig. Beide haben eine eigene Nummer.
Die Rechnung ist schon bezahlt — was dann?
Dann setzt der Agent refund_paid auf true. Der gezahlte Betrag wird als Verbindlichkeit gegenüber dem Kunden eingestellt, bis Sie ihn zurückzahlen. Bei einer Eingangsrechnung löst er zuerst die Zahlung mit storno_payment und storniert danach die Rechnung.
Warum lehnt storno_journal_entry eine Buchung ab?
Weil sie zu einem Vorgang gehört, der seinen eigenen Korrekturweg hat — Rechnung, Zahlung, Kasse, Bank, Rückstellung, Abgrenzung oder Anlagenabgang. Die Antwort nennt den richtigen Weg, damit offener Posten oder Nebenbuch nicht vom Hauptbuch abweichen.
In welchem Zeitraum landet der Storno?
Eine Einzelbuchung storniert der Server zum Datum des Originals oder einem späteren Datum im selben Geschäftsjahr. Liegt dieser Zeitraum festgeschrieben oder ist er bei Steuerwirkung schon per Voranmeldung übermittelt, legt der Server die Gegenbuchung in den nächsten offenen Zeitraum.
Vom selben Anbieter: Jahresabschluss nach HGB – der komplette Leitfaden auf jahresabschluss.io.