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.
- 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
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é es | Por qué cuesta |
|---|---|---|
| 01 | Emisión | Una factura emitida ya no se puede editar ni borrar. Todo lo que se valide después llega tarde |
| 02 | Numeración sin huecos | El contador tiene que ser correlativo aunque dos peticiones lleguen a la vez y aunque una falle a mitad |
| 03 | Series bloqueadas tras la primera emisión | Cambiar el formato de una serie que ya emitió reescribe el pasado. Hay que impedirlo desde el producto |
| 04 | PDF con validez legal | Lleva el QR de verificación y los datos obligatorios, y tiene que salir igual dentro de un año |
| 05 | Envío y entrega | Sin acuse de entrega no se sabe si el cliente ha recibido la factura |
| 06 | Rectificativas proporcionales | Corregir en parte exige un registro nuevo con su tipo de rectificación y su motivo legal |
| 07 | Facturas recurrentes | Se generan solas, y el problema es el mes que no salen |
| 08 | Multi-NIF | Una gestoría lleva muchas empresas. Cada una con su NIF, sus series y sus permisos, sin mezclarse |
| 09 | Clientes sin NIF | La factura simplificada tiene límites de importe y casos prohibidos por ley que el sistema debe conocer |
| 10 | Registro en la AEAT | La factura solo está terminada cuando la Agencia la acepta, y eso ocurre después de guardarla |
| 11 | Verifactu | Cada 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
- beel.esEl producto está publicado y se puede probar en beel.es.Enlace público
- beel-es/beel-mcpEl servidor MCP es público en GitHub: beel-es/beel-mcp. Ahí se leen las reglas fiscales que aplica antes de emitir, incluidas las de series, rectificativas y recargo de equivalencia.Enlace público
- docs.beel.esLa documentación de la API está abierta en docs.beel.es, con el registro de cambios y las fechas de retirada de las rutas antiguas.Enlace público
Ver también
¿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.