Ciclo de vida de una factura
Una factura pasa por una máquina de estados bien definida. Solo los borradores son editables; al emitirse se congela y entra en la cadena Veri*Factu.
Estados
| Estado | Significado | Editable |
|---|---|---|
draft | Borrador. Aún no es un documento fiscal. | ✅ |
issued | Emitida: numerada, congelada y con registro Veri*Factu. | ❌ |
canceled | Anulada (se generó su registro de anulación). | ❌ |
replaced | Simplificada (F2) sustituida por una completa (F3). | ❌ |
rectified_subst | Rectificada por sustitución (terminal). | ❌ |
rectified_diff | Rectificada por diferencias (sigue viva). | ❌ |
scheduled | Plantilla de una recurrencia activa (borrador congelado). | ❌ |
needs_fix | Emitida reabierta para subsanar un registro rechazado que nunca fue aceptado. | ✅ |
needs_fix es un documento real
Conserva su número y sus registros Veri*Factu (es imprimible y está protegido de borrado), pero se reabre temporalmente para corregir el error que rechazó la AEAT. Ver Subsanación.
Acciones
draft ──issue──▶ issued ──cancel──▶ canceled
│
├─ rectify ─▶ (nueva rectificativa R1–R5; la original pasa a
│ rectified_subst | rectified_diff)
├─ replace ─▶ (nueva F3; la original F2 pasa a replaced)
└─ request-fix ─▶ needs_fix ──issue──▶ issued (subsanación)
└──abandon-fix──▶ issued (sin enviar)- Emitir —
POST /invoices/{id}/actions/issue· scopeinvoices:issue. Numera, congela importes (al tipo de cambio del día de emisión) y remite a la AEAT. - Anular —
POST /invoices/{id}/actions/cancel· scopeinvoices:cancel. Requiere una respuesta firme de la AEAT al último registro (accepted,accepted_errororejected). Operación poco habitual: solo para facturas emitidas por error; para corregir una factura válida, rectifica. - Rectificar —
POST /invoices/{id}/actions/rectify. Crea una rectificativa (R1–R5) por diferencias (I) o sustitución (S). Es el camino para corregir el contenido de una factura ya emitida. - Sustituir (F2 → F3) —
POST /invoices/{id}/actions/replace· scopeinvoices:replace_simplified. - Subsanar —
request-fix/abandon-fix. Operación extraordinaria y poco frecuente: solo para corregir un registro Veri*Factu con respuesta firme por un error de remisión, no el contenido fiscal. Reabre aneeds_fixsolo si nunca hubo un alta aceptada; si la hubo, encola la subsanación directamente y la factura sigueissued. Ver Subsanación.
Rectificar ≠ subsanar
Si la AEAT rechaza una factura por un dato fiscal incorrecto que ya entregaste a tu cliente, lo correcto es una rectificativa. La subsanación es solo para corregir un registro que falló por un error técnico/de integración. Ver Subsanación.