Caso

BeeL: facturar en España sin saltarse un número

Producto propio bajo normativa fiscal. Numeración sin huecos, series que se bloquean, rectificativas proporcionales y registro en la AEAT.

BeeL

Qué hicimos
Producto propio: diseño, construcción y operación
Estado
En producción, registrando en la AEAT
Qué cambia
Una factura válida de principio a fin, sin pasos fuera del sistema
cosas que hay que hacer bien para emitir una factura en España. Las once están en BeeL.

Contexto

BeeL es una plataforma de facturación para empresas españolas que construimos desde cero y que opera el mismo equipo que la escribió. Emite facturas con validez legal y las registra en la AEAT bajo el sistema Verifactu.

Qué había que resolver

De Verifactu se habla mucho y es una de las once cosas que hay que hacer bien. Las otras diez son las que dan trabajo, y las que se rompen cuando el volumen sube o cuando entra un negocio con reglas distintas.

Estas son las once, con la razón por la que cada una cuesta.

#Qué esPor qué cuesta
01EmisiónUna factura emitida ya no se puede editar ni borrar. Todo lo que se valide después llega tarde
02Numeración sin huecosEl contador tiene que ser correlativo aunque dos peticiones lleguen a la vez y aunque una falle a mitad
03Series bloqueadas tras la primera emisiónCambiar el formato de una serie que ya emitió reescribe el pasado. Hay que impedirlo desde el producto
04PDF con validez legalLleva el QR de verificación y los datos obligatorios, y tiene que salir igual dentro de un año
05Envío y entregaSin acuse de entrega no se sabe si el cliente ha recibido la factura
06Rectificativas proporcionalesCorregir en parte exige un registro nuevo con su tipo de rectificación y su motivo legal
07Facturas recurrentesSe generan solas, y el problema es el mes que no salen
08Multi-NIFUna gestoría lleva muchas empresas. Cada una con su NIF, sus series y sus permisos, sin mezclarse
09Clientes sin NIFLa factura simplificada tiene límites de importe y casos prohibidos por ley que el sistema debe conocer
10Registro en la AEATLa factura solo está terminada cuando la Agencia la acepta, y eso ocurre después de guardarla
11VerifactuCada registro encadena al anterior con su huella. Un eslabón mal formado invalida los siguientes

Las decisiones

La numeración se reserva dentro de la misma transacción que crea el registro fiscal. El contador vive en la serie y se incrementa con un bloqueo sobre esa fila, no con un max(numero) + 1 calculado en memoria. Dos emisiones simultáneas de la misma serie se ponen en cola durante milisegundos y salen ordenadas. Si el proceso de emisión falla después de haber cogido número, la transacción se deshace entera y el número vuelve a estar libre. Esto obliga a que la petición a la AEAT no esté dentro de esa transacción, porque una llamada de red lenta bloquearía la serie para todos. Lo que hay es un estado intermedio: la factura queda emitida y con número, y su envío a la Agencia se reintenta hasta que responde. Un hueco en la numeración es una infracción.

Una serie se bloquea en cuanto emite su primera factura. El formato, el prefijo y el modo en que se reinicia el contador se eligen al crearla y después dejan de ser editables. La razón: si alguien cambia el formato en octubre, las facturas de enero dejan de encajar con las de noviembre y no hay reconstrucción posible. Por eso la pantalla de creación pide el formato completo y enseña qué número saldrá. Quien migra desde otro programa puede fijar el número inicial para continuar su numeración anterior, y solo entonces.

Una rectificativa parcial recalcula, no resta. Corregir una factura tiene dos ejes que el usuario tiene que decidir: si sustituye a la original o si aplica una diferencia, y por qué motivo legal se corrige. Un impago con procedimiento no es lo mismo que un descuento posterior, y a la AEAT llega distinto. La rectificativa parcial recalcula base e impuestos sobre el importe corregido y deja la original en estado rectificado, que admite otra corrección después. La total sustituye a la original y la deja anulada, sin más correcciones posibles. En el producto eso se traduce en que no se puede escribir a mano el importe de una rectificativa total: lo calcula el sistema desde la factura original.

Un cliente sin NIF es una factura simplificada. La ley le pone límites que el software tiene que conocer antes de emitir. Por encima de tres mil euros con impuestos incluidos no es legal, y por encima de cuatrocientos hay que identificar al destinatario aunque sea simplificada. Además hay operaciones donde no se permite nunca, con independencia del importe. BeeL rechaza esas combinaciones en el borde de la API, con un error que dice cuál es la regla, en lugar de aceptarlas y dejar que el problema aparezca en una inspección. Quien integra no suele ser fiscalista, y un error de validación se lee mientras se programa.

Las recurrentes se diseñaron por el mes que fallan. El caso difícil es el mes en que el cliente ya no existe, la serie está agotada o la AEAT no responde. Cada generación deja rastro, se marca como no emitida con su causa, y se avisa el mismo día por correo y por webhook. No hay reintento silencioso que acabe emitiendo dos facturas por el mismo periodo.

Estado hoy

BeeL está en producción y lo operamos nosotros. Registra cada emisión en la AEAT, soporta varias empresas con NIF distinto en una misma cuenta y emite recurrentes sin intervención. La API pública está documentada y hay un servidor MCP abierto para que un agente pueda emitir contra ella con las mismas reglas que aplica la interfaz.

Cuando la Agencia cambia una especificación, la fecha no se negocia. Con ese punto de vista entramos en un proyecto de software a medida.

Qué puede comprobar un tercero

  1. Software a medidaServicio
  2. Zernio: el último paso se hacía a manoCaso

¿Tienes un sistema parecido en marcha?

Cuéntanos qué hace y quién lo usa. Te decimos en un día laborable si un diagnóstico tiene sentido y por dónde empezaríamos.

Pedir un diagnóstico