Proposals & Invoices · Article 5.9
Pourquoi un avenant signé émet deux nouveaux documents (Storno + nouvelle INV)
Tout avenant signé qui touche au volet financier du contrat génère au minimum deux nouveaux documents : une Stornorechnung (facture d'annulation) pour l'ancienne facture de solde, et une nouvelle FinalInvoice active aux chiffres révisés. Imposé par GoBD §147 AO et règles UE parallèles — jamais un choix arbitraire de Clozo.
Le droit de la facturation UE traite les factures émises comme des actes juridiques qui ne peuvent être ni modifiés ni supprimés — elles ne peuvent qu'être annulées (par une Stornorechnung) et remplacées (par une nouvelle facture). C'est imposé par la GoBD §147 AO en Allemagne (conservation 10 ans avec immutabilité), avec des règles parallèles à travers l'UE : BTW Art. 35a (Pays-Bas), CGI Art. 289 (France), Art. 6 Reglamento de Facturación (Espagne), Ustawa VAT Art. 106 (Pologne). Lorsqu'un avenant change le périmètre financier, Clozo produit la trace papier correcte automatiquement — mais il vaut la peine de comprendre ce qui est créé et pourquoi, car votre comptable le verra.
Step by step
L'événement de signature déclenche le pipeline.
Le client clique sur Signer sur la page de l'avenant ; le backend capture la pile de preuves eIDAS et exécute
process_amendment_signeddans la même transaction BD.Les documents apparaissent dans la liste déroulante en 30 secondes environ.
La génération des PDF est asynchrone via Celery, mais les lignes sont persistées immédiatement. Rafraîchissez la page du devis si vous ne les voyez pas — Gotenberg peut être lent.
L'ancienne ligne INV reçoit un badge « Remplacée ».
La liste déroulante Documents montre l'ancienne facture de solde avec une étiquette « Remplacée par INV-NNNN-v2 » et un lien vers la Stornorechnung.
La nouvelle INV devient active.
Porte un suffixe
v2surdisplay_numbers'il s'agit de la deuxième itération. La ligne active est celle qui apparaît sur la bannière du devis (« En attente du paiement de INV-NNNN-v2 : X € »).Les branches Δ_REFUND font apparaître la chronologie de remboursement.
Une nouvelle bannière « Remboursement en cours » apparaît avec le numéro de la facture d'avoir, le délai attendu et un bouton « Vérifier le statut » (article 8.7).
La liste déroulante Documents se réorganise pour mettre en avant la nouvelle facture active et l'ancienne comme remplacée. La section Avenants reçoit une nouvelle entrée. Pour Δ_REFUND, la bannière du devis bascule de « Payé » à « Remboursement en cours » jusqu'au règlement de la jambe trésorerie.
Why this works this way
Le pipeline post-signature (process_amendment_signed dans backend/apps/proposals/amendment_postsign.py) s'exécute dans une transaction BD unique à l'instant où le client signe :
1. Storno de la FinalInvoice active précédente. Si une facture de solde avait déjà été émise (Fenêtre B), elle bascule sur status=superseded, superseded_by pointe sur la nouvelle facture, void_reason enregistre « Annulée par avenant {amendment_number} », et une ligne StornoInvoice est créée avec le type de document spécifique à la langue (Stornorechnung en allemand, Annulation en français, Rectificativa en espagnol, Creditfactuur en néerlandais, Korekta en polonais, Cancellation générique en anglais).
2. Activation de la nouvelle FinalInvoice. La facture de prévisualisation créée par l'assistant (en état status=cancelled pendant le brouillon) est recalculée aux derniers chiffres de l'avenant et basculée sur status=active. Elle porte un nouveau numéro séquentiel issu de votre compteur annuel (INV-2026-NNNN) et un suffixe de révision dans display_number (par ex. INV-2026-0042-v2). Les deux numéros restent indéfiniment dans votre journal d'audit.
3. Δ_REFUND uniquement — DepositInvoiceCorrection (Berichtigung). Sur les branches Δ_REFUND, un troisième document est créé corrigeant formellement la facture d'acompte (Anzahlungsrechnung) d'origine. Le type est partial_refund si le nouveau total est positif mais inférieur à deposit_paid ; full_cancellation si le nouveau total est nul. Ce document est le mécanisme légal au titre du §17 UStG (Allemagne), de l'art. 90 de la directive TVA UE (général) et des parallèles nationaux — sans lui, la ligne TVA de la facture d'acompte reste dans vos livres au montant d'origine et l'administration fiscale n'acceptera pas le remboursement.
4. Δ_REFUND uniquement — CreditNote (Gutschrift / facture d'avoir / nota de crédito). Un quatrième document, la facture d'avoir effective que reçoit le client annonçant le remboursement. Elle référence le numéro de la facture d'acompte d'origine (DEP-2026-NNNN) et la date de la facture d'acompte conformément à l'art. 219 de la directive TVA UE (les références croisées entre corrections et originaux sont obligatoires).
5. Remboursement Stripe lancé. Si l'acompte d'origine a été payé via Stripe (Direct Charge sur le compte connecté de l'indépendant), _trigger_stripe_refund est appelé avec le montant brut de la facture d'avoir. La facture d'avoir passe à refund_status=requested. La confirmation par webhook bascule sur succeeded (ou failed) ; voir la Section 8 pour le cycle de vie du remboursement en détail.
Les artefacts juridiques sont persistés avant le déclenchement de la jambe trésorerie. Si Stripe est injoignable, les documents restent corrects — seul l'argent est en pause, et vous pouvez réessayer depuis la ligne de la facture d'avoir (article 8.8).
Troubleshooting
Keep reading
Proposals & Invoices
The 4 delta branches: Δ+, Δ−, Δ=0, Δ_REFUND
Every signed amendment falls into one of four branches based on (a) the sign of the cost change and (b) whether the proposal was already paid. Each branch fires a different document chain. This is the central conceptual map for the entire amendment system.
Refunds & Notifications
When refunds happen: the Δ_REFUND amendment branches
A refund in Clozo is always tied to a Δ_REFUND amendment branch — partial (revised total smaller than deposit paid) or full (revised total at zero). The amendment is the legal trigger; the refund is the cash consequence.
Refunds & Notifications
Storno vs Berichtigung vs Gutschrift: three documents, three jobs
Three German VAT documents commonly confused with each other, each with a specific legal job and a specific moment when Clozo issues it. EU equivalents have similar names and identical purposes. Mixing them up is a frequent topic in support tickets — and a frequent cause of accountant pushback.
Refunds & Notifications
The Credit Notes page
A first-class section in the freelancer dashboard that lists every credit note across all your proposals, with status, refund amount, linked proposal, and action buttons. Use this when you want to manage refunds without drilling into each proposal individually.