Skip to main content

Proposals & Invoices · Article 5.9

Warum ein unterzeichneter Nachtrag zwei neue Dokumente erzeugt (Storno + neue INV)

Jeder unterzeichnete Nachtrag, der die finanzielle Seite des Vertrags berührt, erzeugt mindestens zwei neue Dokumente: eine Stornorechnung für die alte Schlussrechnung und eine neue aktive Schlussrechnung mit aktualisierten Zahlen. Dies ist gemäß GoBD §147 AO und parallelen EU-Regelungen vorgeschrieben – keine willkürliche Clozo-Entscheidung.

Das EU-Rechnungsrecht behandelt ausgestellte Rechnungen als rechtliche Belege, die nicht bearbeitet oder gelöscht werden dürfen – sie können nur storniert (mit einer Stornorechnung) und durch eine neue Rechnung ersetzt werden. Dies wird in Deutschland durch GoBD §147 AO (10-jährige Aufbewahrungspflicht mit Unveränderlichkeit) und parallele Regelungen in der gesamten EU durchgesetzt: BTW Art. 35a (Niederlande), CGI Art. 289 (Frankreich), Art. 6 Reglamento de Facturación (Spanien), Ustawa VAT Art. 106 (Polen). Wenn ein Nachtrag den finanziellen Umfang ändert, erstellt Clozo automatisch den korrekten Belegpfad – es lohnt sich jedoch, zu verstehen, was erstellt wird und warum, da Ihr Steuerberater dies sehen wird.

Step by step

  1. Unterzeichnungsereignis löst die Pipeline aus.

    Der Kunde klickt auf der Nachtragsseite auf „Unterzeichnen"; das Backend erfasst den eIDAS-Beweisstack und führt process_amendment_signed in derselben DB-Transaktion aus.

  2. Dokumente erscheinen innerhalb von ca. 30 Sekunden im Dropdown.

    Die PDF-Generierung erfolgt asynchron über Celery, aber die Zeilen werden sofort gespeichert. Laden Sie die Angebotsseite neu, falls Sie sie nicht sehen – Gotenberg kann langsam sein.

  3. Alte INV-Zeile erhält ein Badge „Abgelöst".

    Das Dokumente-Dropdown zeigt die alte Schlussrechnung mit dem Label „Abgelöst durch INV-NNNN-v2" und einem Link zur Stornorechnung.

  4. Neue INV wird aktiv.

    Trägt ein v2-Suffix in display_number, wenn es die zweite Iteration ist. Die aktive Zeile erscheint im Angebots-Banner ("Zahlung von INV-NNNN-v2: €X ausstehend").

  5. Δ_REFUND-Zweige zeigen Rückerstattungs-Timeline.

    Ein neues Banner „Rückerstattung läuft" erscheint mit der Gutschriftnummer, dem voraussichtlichen Zeitplan und einer Schaltfläche „Status prüfen" (Artikel 8.7).

Das Dokumente-Dropdown wird neu geordnet, um die neue aktive Rechnung prominent anzuzeigen und die alte als abgelöst zu kennzeichnen. Der Bereich „Nachträge" erhält einen neuen Eintrag. Bei Δ_REFUND wechselt das Angebots-Banner von „Bezahlt" zu „Rückerstattung läuft", bis der Geldeingang gebucht ist.

Why this works this way

Die Post-Sign-Pipeline (process_amendment_signed in backend/apps/proposals/amendment_postsign.py) wird in einer einzigen DB-Transaktion ausgeführt, sobald der Kunde unterzeichnet:

1. Vorherige aktive Schlussrechnung stornieren. Falls bereits eine Schlussrechnung ausgestellt wurde (Fenster B), wird ihr Status auf status=superseded gesetzt, superseded_by verweist auf die neue Rechnung, void_reason dokumentiert „Storniert durch Nachtrag {amendment_number}", und eine StornoInvoice-Zeile wird mit dem sprachspezifischen Dokumenttyp erstellt (Stornorechnung auf Deutsch, Annulation auf Französisch, Rectificativa auf Spanisch, Creditfactuur auf Niederländisch, Korekta auf Polnisch, generisch Cancellation auf Englisch).

2. Neue Schlussrechnung aktivieren. Die Vorschaurechnung, die der Assistent erstellt hat (im Status cancelled während des Entwurfs), wird mit den aktuellen Nachtragszahlen neu berechnet und auf status=active gesetzt. Sie erhält eine neue fortlaufende Nummer aus Ihrem Jahreszähler (INV-2026-NNNN) und ein Revisionssuffix in display_number (z. B. INV-2026-0042-v2). Beide Nummern bleiben dauerhaft im Prüfprotokoll.

3. Nur Δ_REFUND – DepositInvoiceCorrection (Berichtigung). Bei Δ_REFUND-Zweigen wird ein drittes Dokument erstellt, das die ursprüngliche Anzahlungsrechnung (Anzahlungsrechnung) formal berichtigt. Typ ist partial_refund, wenn der neue Gesamtbetrag positiv, aber kleiner als deposit_paid ist; full_cancellation, wenn der neue Gesamtbetrag null beträgt. Dieses Dokument ist der rechtliche Mechanismus nach §17 UStG (Deutschland), Art. 90 EU-MwSt-Richtlinie (allgemein) und nationalen Parallelen – ohne es verbleibt die MwSt-Zeile der Anzahlungsrechnung in voller Höhe in Ihrer Buchhaltung, und das Finanzamt akzeptiert die Rückerstattung nicht.

4. Nur Δ_REFUND – CreditNote (Gutschrift / facture d'avoir / nota de crédito). Ein viertes Dokument, die eigentliche Gutschrift, die der Kunde erhält und die Rückerstattung ankündigt. Sie verweist auf die ursprüngliche Anzahlungsrechnungsnummer (DEP-2026-NNNN) und das Datum der Anzahlungsrechnung gemäß Art. 219 EU-MwSt-Richtlinie (Querverweise zwischen Korrekturen und Originalen sind Pflicht).

5. Stripe-Rückerstattung ausgelöst. Falls die ursprüngliche Anzahlung per Stripe (Direktbelastung auf dem verbundenen Konto des Freiberuflers) bezahlt wurde, wird _trigger_stripe_refund mit dem Bruttobetrag der Gutschrift aufgerufen. Die Gutschrift wechselt zu refund_status=requested. Die Webhook-Bestätigung setzt sie auf succeeded (oder failed); siehe Abschnitt 8 für den Rückerstattungslebenszyklus.

Die rechtlichen Artefakte werden gespeichert, bevor die Geldüberweisung ausgeführt wird. Falls Stripe nicht erreichbar ist, sind die Dokumente weiterhin korrekt – nur das Geld wartet, und Sie können es über die Gutschrift-Zeile erneut versuchen (Artikel 8.8).

Troubleshooting

Keep reading

Warum ein unterzeichneter Nachtrag zwei neue Dokumente erzeugt (Storno + neue INV) · Help · Clozo