Kurz gesagt
Eine ausgestellte Rechnung wird nie geändert oder gelöscht. Du stellst einen neuen Beleg mit eigener Nummer aus, der auf das Original verweist: einen Storno, wenn die ganze Rechnung entfällt, einen Teilstorno, wenn nur Positionen, Mengen oder Beträge entfallen, und eine Korrektur, wenn Angaben falsch waren. Storno und Korrektur einer E-Rechnung sind selbst E-Rechnungen im selben Format.
Der Grundsatz: nie ändern, immer ergänzen
Sobald eine Rechnung ausgestellt ist, ist sie ein Buchungsbeleg. Die GoBD verlangen, dass Aufzeichnungen nicht so verändert werden, dass der ursprüngliche Inhalt verloren geht (§ 146 Abs. 4 AO). Außerdem hat dein Kunde die Rechnung bereits, und vielleicht schon gebucht.
Fehler korrigierst du deshalb mit einem neuen Dokument. Es bekommt eine eigene Nummer, nennt Nummer und Datum des Originals (in der E-Rechnung das Feld BG-3, „Preceding invoice reference“) und hebt dessen Beträge ganz oder teilweise auf.
Die Begriffe
| Begriff | Was es ist | Typischer Anlass |
|---|---|---|
| Storno (Stornorechnung) | Hebt die ganze Rechnung auf | doppelt berechnet, Auftrag storniert |
| Teilstorno | Hebt einzelne Positionen, Mengen oder Beträge auf | Rückgabe eines Artikels, Preisnachlass auf eine Position |
| Korrektur (Rechnungsberichtigung) | Ersetzt eine fehlerhafte Rechnung durch eine richtige | falsche Anschrift, falscher Preis, fehlende Pflichtangabe |
| Gutschrift im Sinne des UStG | Der Leistungsempfänger rechnet ab (Self-Billing) | Provisionen, Erlösbeteiligungen; kein Storno |
Nicht „Gutschrift“ nennen
Im Sprachgebrauch heißt ein Storno oft „Gutschrift“. Umsatzsteuerlich ist eine Gutschrift aber etwas anderes: eine Abrechnung durch den Leistungsempfänger. Nenne den Beleg deshalb „Stornorechnung“. Quittio betitelt ihn in Deutschland automatisch so.
Welcher Beleg für welchen Fall?
| Situation | Beleg |
|---|---|
| Rechnung doppelt verschickt | Storno |
| Auftrag nach Rechnungsstellung abgesagt | Storno |
| Kunde gibt einen von drei Artikeln zurück | Teilstorno (Menge); umsatzsteuerlich nicht vorgeschrieben |
| Nachträglicher Nachlass, Skonto oder Minderung wegen eines Mangels | Keine Berichtigung nötig; ein Teilstorno (Betrag) ist möglich |
| Leistung anders erbracht als abgerechnet, z. B. geändertes Aufmaß | Korrektur (mindestens der Leistungsbeschreibung) |
| Falsche Anschrift oder fehlende USt-IdNr. des Kunden | Korrektur |
| Falscher Preis, falsches Leistungsdatum | Korrektur |
| Rechnung an den falschen Kunden | Storno und neue Rechnung an den richtigen Kunden |
Mindert sich das Entgelt nach der Rechnung, etwa durch Skonto, einen Nachlass wegen einer Mängelrüge oder die Rückgabe eines Artikels, ist umsatzsteuerlich keine Rechnungsberichtigung nötig. Umsatzsteuer und Vorsteuer werden dann nach § 17 UStG berichtigt (BMF-Schreiben vom 15.10.2025, Rz. 51a). Ein Teilstorno ist trotzdem zulässig und für die Buchhaltung oft praktisch. Ändert sich dagegen der Leistungsumfang, etwa durch ein geändertes Aufmaß, musst du die Rechnung berichtigen, zumindest die Leistungsbeschreibung (Rz. 51b).
Vorzeichen und Typecodes: 380, 381, 384
Jede E-Rechnung trägt einen Typecode (BT-3). Für Storno und Korrektur gibt es zwei übliche Darstellungen:
| Darstellung | Typecode | Beträge |
|---|---|---|
| Storno als Gutschriftsbeleg (Standard in Quittio) | 381 (Credit Note) | positiv; die Richtung ergibt sich aus dem Typ. UBL schreibt ein eigenes CreditNote-Dokument |
| Storno als negative Rechnung | 380 (Invoice) | negativ |
| Korrigierte Rechnung | 384 (Corrected Invoice) | positiv, vollständiger neuer Inhalt |
Beide Storno-Varianten sind in Deutschland zulässig. Manche Empfängersysteme erwarten die negative Rechnung; deshalb ist die Strategie einstellbar. Ein Storno eines Gutschriftsbelegs (381) ist immer eine Rechnung (380) mit positiven Beträgen.
// config/quittio.php
'corrections' => [
'cancellation_strategy' => null, // credit_note (381) | negative_invoice (380); null = Länderpaket
],
// config/quittio-managed.php
'correction' => [
'strategy' => null, // cancel_and_reissue | corrected_invoice (384); null = Länderpaket
],Stornieren mit Quittio Open Source
Auch ohne Managed erzeugt Quittio den Storno-Beleg. Er wird aus den Daten des Originals gebaut, im selben Format und mit einem Hinweistext auf das Original:
// aus einem gerenderten Ergebnis, in denselben Formaten
$cancellation = $result->cancel('ST-2026-0001', reason: 'Charged twice');
// aus gespeicherten Rechnungsdaten (z. B. InvoiceData::fromJson())
$cancellation = Quittio::make(
Quittio::cancellation($original, 'ST-2026-0001', reason: 'Charged twice')
)->render();
// als negative Rechnung (Typecode 380)
$cancellation = $result->cancel('ST-2026-0001', reason: 'Charged twice', strategy: 'negative_invoice');Mit lines: stornierst du einen Teil, nach ganzen Positionen, Mengen oder Beträgen:
$part = $result->cancel('ST-2026-0002', lines: [
['line' => '1', 'quantity' => '1'], // 1 Stück von Position 1
['line' => '2', 'amount' => '50.00'], // 50,00 € von Position 2
]);Wird eine Rechnung in mehreren Teilen storniert, übergibst du die früheren Teile als history:. Nur so kann Quittio die Umsatzsteuer aller Teile auf die des Originals abstimmen (siehe unten). Nummern und Historie verwaltest du ohne Managed selbst.
Mit Quittio Managed
Managed führt die Historie selbst, vergibt die Nummern und setzt den Status des Originals. Drei Methoden decken alle Fälle ab:
// Vollstorno
$cancellation = $invoice->cancel(reason: 'Charged twice');
// Teilstorno
$cancellation = $invoice->cancelPartially([
['line' => '3'], // ganze Position oder ihr Rest
['line' => '1', 'quantity' => 1], // 1 von 3
['line' => '2', 'amount' => '50.00'], // Betrag, z. B. Preisnachlass
], reason: 'Partial return');
// Korrektur: Entwurf mit den Daten des Originals
$draft = $invoice->correct();
$draft->updateData(fn (InvoiceBuilder $b) => $b->updateLine('2', netPrice: '80.00'));
$draft->issue();- Das Original bekommt nur einen neuen Status:
partially_cancelledodercancelled. Es wird nie verändert. - Jeder Storno nennt im Hinweistext, welche Rechnung er storniert und warum, zum Beispiel „Stornierung der Rechnung RE-2026-0042 vom 05.10.2026. Grund: …“.
- Mehr als berechnet kann nicht storniert werden, auch nicht von parallelen Prozessen.
- Schlägt das Ausstellen fehl, wird keine Nummer verbraucht und das Original bleibt unverändert.
- Ein Storno kann nicht vor dem Original datiert werden.
Für die Korrektur gibt es zwei Strategien:
| Strategie | Ablauf |
|---|---|
cancel_and_reissue (Standard in Deutschland) | Das Original wird vollständig storniert, danach wird die Korrektur als neue Rechnung ausgestellt. Zwei Nummern werden verbraucht. |
corrected_invoice | Die Korrektur wird mit Typecode 384 („Rechnungskorrektur“) ausgestellt und ersetzt das Original, das als storniert markiert wird. |
Beide Schritte laufen in einer Transaktion: Entweder existieren beide Belege oder keiner.
Die Umsatzsteuer bei Teilstornos
Die Umsatzsteuer wird je Beleg und Steuersatz gerundet. Rundet jeder Teilstorno für sich, ergeben alle Teile zusammen oft nicht genau die Steuer des Originals. Ein Beispiel mit drei Positionen zu 19 %:
| Netto | USt einzeln gerundet | USt kumulativ abgestimmt | |
|---|---|---|---|
| Original | 29,00 € | 5,51 € | 5,51 € |
| Teilstorno 1 | 9,67 € | 1,84 € | 1,84 € |
| Teilstorno 2 | 9,67 € | 1,84 € | 1,83 € |
| Teilstorno 3 | 9,66 € | 1,84 € | 1,84 € |
| Summe der Stornos | 29,00 € | 5,52 € (1 Cent zu viel) | 5,51 € |
Quittio rundet deshalb kumulativ: Jeder Teilstorno trägt die Steuer, die nach allen bisherigen Stornos fällig ist, abzüglich der schon stornierten. Der letzte Teil gleicht exakt auf das Original aus. Ein einzelner Beleg weicht dabei höchstens um einen Cent ab, was die Regel BR-CO-17 der EN 16931 zulässt; der Beleg weist darauf hin.
In Prüfung
Die Standardwerte für Storno (381 mit positiven Beträgen) und Korrektur (Storno und Neuausstellung) sowie die Abstimmung um einen Cent werden derzeit mit einer Steuerberatung abgestimmt. Beide Strategien sind einstellbar.
Storno und Korrektur sind E-Rechnungen
War das Original eine E-Rechnung, sind auch Storno und Korrektur E-Rechnungen. Das BMF-Schreiben vom 15.10.2025 regelt die Berichtigung von E-Rechnungen eigens (Rz. 51a und 51b). Quittio erzeugt beide Belege deshalb im selben Format, Profil und in derselben Sprache wie das Original und prüft sie wie jede andere Rechnung.