Ciclo de vida de una factura
Las facturas en LEFA siguen un camino lineal definido por el enumEstadoFactura:
Un borrador no aparece en ningún registro fiscal. Solo al emitir se asigna número correlativo y se genera el registro VeriFactu inmutable.
Crear un borrador
1
Abrir la pestaña Nueva Factura
Haz clic en la pestaña Nueva Factura en la ventana principal. LEFA recuerda automáticamente el último cliente utilizado y lo selecciona por defecto.
2
Seleccionar cliente y serie
Elige el cliente en el desplegable. Si aún no existe, créalo en Clientes → Nuevo cliente…. Selecciona también la serie de facturación (por ejemplo
FACT, WEB o MANT; las series se configuran en Herramientas → Preferencias).3
Añadir líneas
Puedes agregar líneas de cuatro formas:
- Manual: escribe descripción, cantidad y precio directamente.
- Servicio del catálogo: pulsa Añadir servicio y elige un servicio guardado; la línea y el IVA se rellenan solos.
- Plantilla de línea: elige una plantilla en el desplegable y pulsa Añadir plantilla.
- Plantilla de factura completa: usa Nueva factura desde plantilla para cargar cliente, líneas e impuestos de una sola vez.
4
Configurar IVA, IRPF y vencimiento
Ajusta los porcentajes de IVA e IRPF si difieren de tus valores por defecto. Indica la fecha de vencimiento o deja que LEFA la calcule automáticamente según los días configurados en Preferencias.
5
Guardar borrador
Pulsa Guardar para almacenar el borrador sin emitirlo. Podrás volver a editarlo cuando quieras.
Emitir una factura
1
Revisar el borrador
Abre el borrador en Nueva Factura y comprueba que cliente, líneas e importes son correctos.
2
Pulsar Emitir Factura
Haz clic en Emitir Factura. LEFA ejecuta una transacción
BEGIN IMMEDIATE en SQLite que, de forma atómica:- Asigna el número correlativo siguiente dentro de la serie (por ejemplo
FACT-2026-0044). - Calcula y encadena el hash SHA-256 VeriFactu con el registro anterior.
- Guarda fecha de emisión, estado Emitida y hashes en la base de datos.
- Hace commit; solo después persiste el JSON VeriFactu en
~/.lefa/verifactu/registros/.
3
Archivos generados automáticamente
Tras la emisión encontrarás en disco:
- PDF en
~/.lefa/facturas_pdf/(con QR tributario AEAT de 35 × 35 mm). - XML Facturae en
~/.lefa/facturas_xml/.
La transacción
BEGIN IMMEDIATE garantiza que, incluso si dos ventanas intentan emitir simultáneamente, los números correlativos sean siempre únicos e irrepetibles, sin huecos ni duplicados.Acciones en el Listado
En la pestaña Listado dispones de las siguientes acciones sobre las facturas seleccionadas:Duplicar una factura
La acción Duplicar crea un borrador nuevo copiando el cliente, las líneas, la serie y los porcentajes de IVA e IRPF de la factura original. El vencimiento se recalcula desde la fecha actual según los días configurados en Preferencias, y el historial de envío no se arrastra. El nuevo borrador se abre automáticamente en Nueva Factura para que puedas revisarlo antes de emitir.Solo se pueden duplicar facturas ya emitidas o cobradas. Un borrador no puede duplicarse.
Facturas rectificativas
Las rectificativas permiten corregir o anular una factura ya emitida manteniendo la trazabilidad fiscal.1
Seleccionar la factura a rectificar
En el Listado, selecciona una factura en estado Emitida o Cobrada. Una factura que ya sea rectificativa no puede volver a rectificarse.
2
Pulsar Rectificar
Haz clic en Rectificar. LEFA crea un borrador en serie RECT con las mismas líneas e impuestos que la original, el campo
factura_rectificada_id apuntando a la factura corregida, y lo abre en Nueva Factura.3
Ajustar las líneas
Modifica las líneas según lo que debas corregir. Si quieres devolver importe al cliente, usa importes negativos en los precios unitarios.
4
Emitir la rectificativa
Pulsa Emitir Factura. La rectificativa recibe su propio número correlativo dentro de la serie
RECT y genera su PDF y XML Facturae. El PDF indica expresamente qué factura original rectifica.La cadena de hashes VeriFactu es única e ininterrumpida para todo el programa. Una factura rectificativa (serie
RECT) encadena con la última factura emitida cronológicamente en el sistema, independientemente de la serie.Vencimientos
Cada factura puede llevar una fecha de vencimiento. En el Listado, la columna de vencimiento muestra una etiqueta de estado calculada en tiempo real portexto_estado_vencimiento(), sin ningún automatismo ni aviso emergente:
Historial de envío
Cada factura almacena tres campos relacionados con el envío por correo:
En el Listado, la columna Envío muestra
✓ Enviada (DD/MM/AAAA) si la factura ya fue enviada, o Pendiente de enviar en caso contrario. Los borradores muestran —. Esto permite saber de un vistazo, meses después, si una factura concreta ya salió por correo.