# US-MGN-004-006-003: Cancelar Factura de Proveedor **RF Asociado:** [RF-MGN-004-006](../../02-modelado/requerimientos-funcionales/mgn-004/RF-MGN-004-006-gestión-de-facturas-de-proveedor.md) **Módulo:** MGN-004 - Financiero Básico **Epic:** Facturas de Proveedor **Prioridad:** P0 (MVP) **Story Points:** 3 **Sprint:** Sprint 11 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** contador, **Quiero** cancelar facturas de proveedor validadas, **Para** anular facturas erróneas con asiento de reversión. --- ## Descripción Detallada Similar a cancelación de factura cliente pero para in_invoices. Genera asiento reversión, estado cancelled, motivo obligatorio. --- ## Criterios de Aceptación ### Escenario 1: Cancelar factura proveedor open **Dado que** state='open', **Cuando** cancelo con reason, **Entonces** state='cancelled', asiento reversión creado. --- ## Reglas de Negocio - **RN-1:** Solo open pueden cancelarse. - **RN-2:** Motivo obligatorio. - **RN-3:** Asiento reversión automático. --- ## Tareas Técnicas ### Backend - [ ] POST /vendor-invoices/:id/cancel - [ ] Service: VendorInvoiceService.cancel() - [ ] Unit tests (6 test cases) ### Frontend - [ ] Botón Cancelar - [ ] Modal con reason - [ ] E2E test --- ## Estimación: 6 horas = 3 SP --- ## Referencias - [RF-MGN-004-006](../../02-modelado/requerimientos-funcionales/mgn-004/RF-MGN-004-006-gestión-de-facturas-de-proveedor.md)