Proposals & Invoices · Article 5.9
Por qué una enmienda firmada emite dos nuevos documentos (Storno + nueva FAC)
Cada enmienda firmada que afecta al aspecto financiero del contrato genera como mínimo dos nuevos documentos: una Stornorechnung (factura de cancelación) para la factura final anterior y una nueva FinalInvoice activa con los números revisados. Esto es exigido por el §147 GoBD AO y normas equivalentes de la UE — nunca es una elección arbitraria de Clozo.
La legislación de facturación de la UE trata las facturas emitidas como registros legales que no pueden editarse ni eliminarse — solo pueden cancelarse (con una Stornorechnung) y sustituirse (con una nueva factura). Esto está previsto en el §147 GoBD AO en Alemania (retención de 10 años con inmutabilidad), con normas equivalentes en toda la UE: BTW Art. 35a (Países Bajos), CGI Art. 289 (Francia), Art. 6 Reglamento de Facturación (España), Ustawa VAT Art. 106 (Polonia). Cuando una enmienda cambia el alcance financiero, Clozo produce automáticamente el rastro documental correcto — pero vale la pena entender qué se crea y por qué, porque su contable lo verá.
Step by step
El evento de firma activa el pipeline.
El cliente hace clic en Firmar en la página de la enmienda; el backend captura la pila de evidencias eIDAS y ejecuta
process_amendment_signeden la misma transacción de base de datos.Los documentos aparecen en el menú desplegable en ~30 segundos.
La generación de PDF es asíncrona mediante Celery, pero las filas se persisten de inmediato. Actualice la página de la propuesta si no los ve — Gotenberg puede ser lento.
La fila de la FAC anterior obtiene una insignia de «Sustituida».
El menú desplegable de Documentos muestra la factura final anterior con la etiqueta «Sustituida por FAC-NNNN-v2» y un enlace a la Stornorechnung.
La nueva FAC pasa a estar activa.
Lleva un sufijo
v2endisplay_numbersi es la segunda iteración. La fila activa es la que aparece en el banner de la propuesta («Esperando pago de FAC-NNNN-v2: €X»).Las ramas Δ_REEMBOLSO muestran la línea de tiempo del reembolso.
Aparece un nuevo banner «Reembolso en curso» con el número de la nota de crédito, el plazo previsto y un botón «Comprobar estado» (artículo 8.7).
El menú desplegable de Documentos se reorganiza para mostrar la nueva factura activa de forma prominente y la anterior como sustituida. La sección Enmiendas obtiene una nueva entrada. Para Δ_REEMBOLSO, el banner de la propuesta cambia de «Pagado» a «Reembolso en curso» hasta que se resuelva la parte monetaria.
Why this works this way
El pipeline posterior a la firma (process_amendment_signed en backend/apps/proposals/amendment_postsign.py) se ejecuta dentro de una sola transacción de base de datos en el momento en que el cliente firma:
1. Cancelar (Storno) la FinalInvoice activa anterior. Si ya se había emitido una factura final (Ventana B), se cambia a status=superseded, superseded_by apunta a la nueva factura, void_reason registra «Anulada por enmienda {amendment_number}», y se crea una fila StornoInvoice con el tipo de documento específico del idioma (Stornorechnung en alemán, Annulation en francés, Rectificativa en español, Creditfactuur en neerlandés, Korekta en polaco, Cancellation genérico en inglés).
2. Activar la nueva FinalInvoice. La factura de vista previa que creó el asistente (en estado status=cancelled durante el borrador) se recalcula con los últimos números de la enmienda y se cambia a status=active. Lleva un número secuencial nuevo de su contador anual (FAC-2026-NNNN) y un sufijo de revisión en display_number (p. ej., FAC-2026-0042-v2). Ambos números permanecen en su registro de auditoría para siempre.
3. Solo Δ_REEMBOLSO — DepositInvoiceCorrection (Berichtigung). En las ramas Δ_REEMBOLSO, se crea un tercer documento que corrige formalmente la factura de depósito original (Anzahlungsrechnung). El tipo es partial_refund si el nuevo total es positivo pero menor que deposit_paid; full_cancellation si el nuevo total es cero. Este documento es el mecanismo legal según el §17 UStG (Alemania), Art. 90 de la Directiva del IVA de la UE (general) y equivalentes nacionales — sin él, la línea de IVA de la factura de depósito permanece en sus libros al importe original y la autoridad fiscal no aceptará el reembolso.
4. Solo Δ_REEMBOLSO — CreditNote (Gutschrift / facture d'avoir / nota de crédito). Un cuarto documento, la nota de crédito real que recibe el cliente anunciando el reembolso. Hace referencia al número de factura de depósito original (DEP-2026-NNNN) y a la fecha de la factura de depósito según el Art. 219 de la Directiva del IVA de la UE (las referencias cruzadas entre correcciones y originales son obligatorias).
5. Inicio del reembolso en Stripe. Si el depósito original se pagó mediante Stripe (Cargo directo en la cuenta conectada del autónomo), se llama a _trigger_stripe_refund con el importe bruto de la nota de crédito. La nota de crédito pasa a refund_status=requested. La confirmación por webhook la cambia a succeeded (o failed); consulte la Sección 8 para ver el ciclo de vida del reembolso en detalle.
Los artefactos legales se persisten antes de que se ejecute la parte monetaria. Si Stripe no está disponible, los documentos siguen siendo correctos — solo el dinero queda en pausa, y puede reintentar desde la fila de la nota de crédito (artículo 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.