Proposals & Invoices · Article 5.3
Crear una enmienda (el asistente de 4 pasos)
El asistente de enmienda en `/proposals/{id}/amend` le guía a través de líneas, motivo, vista previa y correo electrónico — en ese orden. Cinco minutos para un cambio sencillo, diez para uno complejo. El cliente no ve nada hasta que hace clic en Enviar en el Paso 4.
El asistente se abre con el alcance efectivo actual como punto de partida — esas son las líneas originales si ninguna enmienda ha sido firmada antes, o las líneas de la enmienda firmada más reciente si está encadenando (artículo 7.6). Edita, reorganiza, añade o elimina líneas en el Paso 1; explica el porqué en el Paso 2; revisa el addendum renderizado en el Paso 3; y elabora el correo electrónico en el Paso 4. Todo antes del botón Enviar del Paso 4 es privado para usted.
Quick visual tour

Step 1: ¿Detectó una cláusula que necesita cambiar en una propuesta firmada?

Step 2: Haga clic en Enmendar en la propuesta — se abre el asistente de enmienda.

Step 3: Edite las líneas que cambiaron. Tres barras resaltadas muestran el delta.

Step 4: Envíe la enmienda. El cliente recibe una nueva solicitud de firma por correo electrónico.

Step 5: El cliente firma la enmienda — ambos vuelven a estar en la misma página.
Step by step
Paso 1: líneas.
Los elementos originales aparecen en la mitad superior, bloqueados y atenuados. Su lista revisada editable aparece debajo. Cada fila recibe una etiqueta de color — verde
+ añadido, ámbar~ modificado, rojo− eliminado, grisigual— para que usted (y el cliente, en la vista de diferencias) pueda ver de un vistazo qué ha cambiado. El banner contextual del depósito a la derecha muestra: % del depósito del contrato original, efectivo del depósito cobrado y cuál será el nuevoamount_due(o reembolso, si es Δ_REEMBOLSO). El asistente recalcula después de cada pulsación de tecla.Paso 2: motivo.
Un campo de texto breve. Mínimo 10 caracteres para Δ+ / Δ=0, 30 caracteres cuando se reduce el alcance (Δ− / Δ_REEMBOLSO) — el mínimo más largo le anima a registrar el fundamento de cualquier reducción, ya que es el caso más probable de ser cuestionado posteriormente. El motivo aparece literalmente en el PDF del addendum y en la vista de diferencias del cliente.
Paso 3: vista previa.
El asistente renderiza el PDF del addendum sobre la marcha a través de un endpoint
/preview-pdfy lo integra en un iframe. Léalo. Confirme que las líneas, los totales, el desglose del IVA y el motivo se ven correctos. Marque la casilla de consentimiento («He revisado el PDF renderizado y confirmo que refleja con precisión el cambio») — Enviar está desactivado hasta que lo haga. Cualquier edición que realice le enviará de vuelta al Paso 1 e invalidará el consentimiento (tendrá que volver a marcarlo).Paso 4: compositor de correo electrónico.
Asunto y cuerpo predefinidos en el idioma de la propuesta; ambos editables. El destinatario corresponde por defecto al correo electrónico del cliente registrado, pero puede anularse (p. ej., para un firmante alternativo). Haga clic en
Enviar enmienda al clientepara activar el correo y bloquear la enmienda para ediciones posteriores.
El asistente ocupa la pantalla completa con una barra de progreso de cuatro pasos en la parte superior. El banner contextual del depósito permanece fijo en el Paso 1. Los errores (p. ej., «El motivo debe tener ≥ 30 caracteres» en Δ−) aparecen en línea en la parte superior del paso correspondiente. Después de Enviar, se le redirige a /proposals/{id} donde la enmienda aparece en un panel de «Enmienda pendiente» con cuenta atrás, botón de copiar enlace y un botón de Cancelar.
Why this works this way
El asistente crea automáticamente (o reanuda automáticamente) una fila de borrador ProposalAmendment la primera vez que avanza más allá del Paso 1. A partir de entonces, cada navegación entre pasos aplica un PATCH al borrador en el servidor con las líneas y el motivo actuales. Esto significa que cerrar el navegador a mitad del asistente nunca pierde el trabajo — abra /proposals/{id}/amend de nuevo y aterrizará donde lo dejó.
Un detalle de implementación más sutil: el asistente crea una fila «vista previa» de FinalInvoice adjunta al borrador de la enmienda, con status=cancelled (no activa). El estado cambia a active solo en el momento en que el cliente firma, que es cuando upsert_pending_invoice_for_amendment se convierte en process_amendment_signed. Dos consecuencias:
1. Su contador FAC-2026-NNNN avanza cuando redacta (el número está reservado). Si cancela el borrador, el número permanece en su libro como una fila cancelada — esto es normal y coincide con lo que los Steuerberater alemanes esperan ver como cancelaciones numeradas en el registro de auditoría.
2. El iframe de vista previa del Paso 3 se renderiza contra esta factura de vista previa — es exactamente el PDF que recibirá el cliente, por lo que lo que usted ve es lo que ellos obtienen.
Si la propuesta principal está en estado en_trabajo (depósito pagado, proyecto en curso), el Paso 1 muestra un botón adicional de llamada de acción en rojo «Reembolsar todo» además del editor de líneas — al hacer clic, establece la cantidad de cada línea en 0, lleva revised_total a 0, y en la firma del cliente la cascada en process_amendment_signed emite Storno + DepositInvoiceCorrection + CreditNote y activa el reembolso de Stripe. Esta es la única ruta legítima para reembolsar un depósito en_trabajo; el DELETE directo en la propuesta es rechazado con HTTP 409 in_work_requires_amendment (según [D-125]).
Troubleshooting
Keep reading
Proposals & Invoices
When to use an amendment (vs a new proposal vs withdraw)
Three paths exist to change a deal: amend it, withdraw and resend, or start a new proposal. Pick the wrong one and you'll either break the audit trail or scare the client. Here's the decision tree.
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.
Proposals & Invoices
Multi-amendment chains: one draft at a time, baseline = current effective
A proposal can have many amendments over its life — but only one open at any given moment, and each new amendment baselines on the most recent signed state, not the original proposal. Here's how the chain holds together.
Proposals & Invoices
What your client sees when an amendment lands
The client receives an email with a fresh PIN, lands on a PIN-gated page, sees a side-by-side diff of old vs new with totals and a reason, and signs (or declines) — exactly like the original proposal flow but with the diff baked in.