Ir al contenido

Crear Factura

Crea una nueva factura con los datos del cliente, conceptos e importes.

Formulario para crear una nueva factura en Factux — campos de cliente, conceptos e importes

  1. Clic en “Nueva Factura” (boton negro a la izquierda) — se abre el formulario.
  2. Completa los campos de cabecera (ver tabla abajo).
  3. Clic en ”+ Anadir linea” — anade filas con: descripcion, cantidad, precio, IVA.
  4. Revisa el resumen en el panel derecho — subtotal, IVA, retenciones y total.
  5. Clic en “Guardar Borrador” — se guarda sin emitir, puedes editarla despues.
CampoObligatorioDescripcionEjemplo
ClienteSiEl cliente al que facturasEmpresa ABC, S.L.
SerieNoSerie de numeracion (por defecto usa la principal)FAC
Fecha de emisionSiDia de la factura (por defecto: hoy)15/02/2026
Fecha de vencimientoSiDia limite de pago (por defecto: +30 dias)17/03/2026
Descuento generalNoPorcentaje sobre el subtotal10%
Aplicar retencionNoMarca si el cliente requiere IRPF
% RetencionCondicionalAparece si marcas retencion15%
NotasNoTexto visible en el PDFPago a 30 dias
CampoObligatorioReglaEjemplo
DescripcionSiTexto libreDiseno de logotipo
CantidadSiMinimo 0.012
Precio unitarioSiSin IVA250.00
% DescuentoNo0–100%5
% IVASi21%, 10%, 4% o 0%21
Subtotal = Suma de (cantidad x precio)
Base imponible = Subtotal - Descuento general
IVA total = Suma del IVA de cada linea
Retencion IRPF = Base x % retencion (si activo)
Total = Base + IVA - Retencion
  • La factura aparece en la lista con estado “Borrador” (badge gris).
  • Toast de confirmacion: “Borrador guardado”.
  • Puedes verla y editarla las veces que necesites.
MensajeCausaSolucion
”Selecciona un cliente”No elegiste clienteClic en “Cliente” y selecciona uno
”Anade al menos un concepto”Sin lineas de facturaClic en ”+ Anadir linea"
"Fecha de emision requerida”Campo vacioSelecciona una fecha
”Cantidad minima: 0.01”Pusiste 0 en cantidadCambia a un valor mayor que 0
”Descripcion requerida”Linea sin textoEscribe la descripcion del concepto
Detalles técnicos

Validaciones:

CodigoRegla
VAL-01customer_id NOT NULL
VAL-02invoice_items count mayor o igual a 1
VAL-03quantity mayor o igual a 0.01
VAL-04unit_price mayor o igual a 0
VAL-05tax_rate 0–100
VAL-06issue_date NOT NULL
VAL-07due_date NOT NULL

Tablas involucradas:

TablaColumnas claveFK
invoicesid, business_id, customer_id, invoice_number, status, total_amountcustomers, businesses, invoice_series
invoice_itemsid, invoice_id, description, quantity, unit_price, tax_rate, line_totalinvoices
invoice_seriesid, business_id, prefix, current_number, paddingbusinesses

Schema de validacion: src/schemas/invoiceFormSchema.ts

Queries de diagnostico:

-- Factura con datos de cliente
SELECT i.*, c.name, c.cif_nif
FROM invoices i
LEFT JOIN customers c ON i.customer_id = c.id
WHERE i.id = '<invoice_id>';
-- Lineas de factura
SELECT * FROM invoice_items
WHERE invoice_id = '<invoice_id>'
ORDER BY sort_order;