Ir al contenido

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 ​

EstadoSignificadoEditable
draftBorrador. Aún no es un documento fiscal.✅
issuedEmitida: numerada, congelada y con registro Veri*Factu.❌
canceledAnulada (se generó su registro de anulación).❌
replacedSimplificada (F2) sustituida por una completa (F3).❌
rectified_substRectificada por sustitución (terminal).❌
rectified_diffRectificada por diferencias (sigue viva).❌
scheduledPlantilla de una recurrencia activa (borrador congelado).❌
needs_fixEmitida 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 · scope invoices: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 · scope invoices:cancel. Requiere una respuesta firme de la AEAT al último registro (accepted, accepted_error o rejected). 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 · scope invoices: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 a needs_fix solo si nunca hubo un alta aceptada; si la hubo, encola la subsanación directamente y la factura sigue issued. 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.

Bilteo · Documentación