Saltar al contenido
Regifactu

VERI*FACTU · Ley 11/2021 · RD 1007/2023 · Orden HAC/1177/2024

VERI*FACTU resuelto de raíz: huella encadenada, QR y envío a la AEAT

No añadimos un sello al pie del PDF. Implementamos el reglamento. Cada factura recibe una huella SHA-256 que la encadena con la anterior, viaja a la Agencia Tributaria autenticada con tu certificado y sale impresa con el QR de verificación. Tú validas la factura. El resto ya está hecho.

Qué es VERI*FACTU y qué exige de verdad

VERI*FACTU es el sistema de control de facturación de la Agencia Tributaria. Nace con la Ley 11/2021, de medidas de prevención y lucha contra el fraude fiscal. El Real Decreto 1007/2023 fija los requisitos técnicos que debe cumplir el software. Y la Orden HAC/1177/2024 baja al detalle: formato de los registros, contenido, plazos y hasta el tamaño del código QR.

El objetivo del reglamento cabe en una frase: que ninguna factura pueda alterarse, eliminarse ni ocultarse una vez emitida.

Aquí está el matiz que casi nadie cuenta. La norma no te obliga a ti a rellenar nada nuevo. Obliga a tu programa de facturación. Si tu software no encadena, no remite y no imprime el QR, el incumplimiento existe aunque tú lo hagas todo bien.

Las fechas de entrada en vigor dependen del tipo de obligado y las fija la propia norma: confirma la tuya con tu asesor fiscal. Lo que no cambia con el calendario es el requisito técnico. Eso es lo que resolvemos nosotros.

Una factura sale hacia el registro VeriFactu de la AEAT y vuelve sellada con su CSV, su código QR y el acuse de aceptación.

Tres requisitos. Los tres, o ninguno

La norma no admite nota media. Un sistema que encadena pero no remite, o que remite sin QR, no cumple a medias: no cumple.

Huella digital encadenada

Cada factura lleva una huella única calculada sobre sus datos fiscales y sobre la huella de la anterior. Si alguien altera un dato de una factura registrada, la cadena deja de cuadrar. La integridad no depende de la buena fe de nadie: depende de la aritmética.

Código QR verificable

Cada documento sale con un QR que lleva al validador de la sede electrónica de la AEAT. Cualquiera —tu cliente, tu gestor, un inspector— comprueba en el sitio que ese registro consta.

Remisión a la AEAT

Los registros se envían a la Agencia, de inmediato al validar o diferidos en bloque. Sin exportar nada, sin subir ficheros a mano, sin una persona a cargo de que no se olvide.

2026/0410HUELLA ANTERIOR— primera —HUELLA DE ESTE REGISTRO7c1e…9ab2026/0411HUELLA ANTERIOR7c1e…9abHUELLA DE ESTE REGISTROb04d…31f2026/0412HUELLA ANTERIORb04d…31fHUELLA DE ESTE REGISTROa3f9…c212026/0413HUELLA ANTERIORa3f9…c21HUELLA DE ESTE REGISTROe58c…7d0CADA REGISTRO LLEVA LA HUELLA DEL ANTERIOR · RETIRAR UNO DEJA LA CADENA ROTA Y A LA VISTA

Lo que está en juego

El riesgo no es un titular sobre multas. Es concreto, es silencioso y aparece en una inspección.

Facturas emitidas que nunca llegaron a registrarse. Una cadena de huellas rota porque dos validaciones simultáneas se pisaron y ninguna avisó. Un QR por debajo del mínimo que fija la Orden. Un rechazo de la Agencia que nadie leyó porque el sistema no lo mostraba en ninguna pantalla. Nada de eso se ve desde la ventana de facturación. Se ve cuando ya no tiene arreglo, y con efecto retroactivo sobre todo lo emitido desde entonces.

Por eso la norma pide algo incómodo para bastantes fabricantes: que el productor del software suscriba una declaración responsable, con su nombre, su NIF y la versión exacta del producto. Quien no esté dispuesto a firmarla ya te ha contestado.

Cómo está montado por dentro

Esto no es una lista de intenciones. Es lo que hace el código, y cada punto se puede enseñar y comprobar en una demo.

Huella SHA-256, canon exacto

Ocho campos, en el orden que fija la norma: NIF del emisor, número de serie, fecha de expedición, tipo de factura, cuota total, importe total, huella anterior y fecha-hora con huso horario. En hexadecimal y en mayúsculas, como se espera. La anulación tiene su propio canon de cinco campos, porque la norma lo pide distinto.

Una cadena continua, no una por serie

El eslabón se toma del último registro enviado de la entidad, no del último de su serie ni del mes en curso. El marcador de primer registro solo vale «S» cuando de verdad no hay ninguno antes. Es la diferencia entre una cadena y una colección de trozos.

Cerrojo real de concurrencia

Dos facturas validadas en el mismo segundo no pueden leer el mismo eslabón anterior. El acceso a la cadena está bajo un cerrojo por entidad, tomado antes de leer y liberado siempre, y las cinco vías de envío del módulo pasan por él: la validación de factura, el envío por lotes, el reintento manual, el hook del TPV y la tarea programada.

Un rechazo no consume eslabón

Si la AEAT responde con error o la red se cae, la cadena no avanza. El reintento vuelve a partir de la misma huella anterior. Ese detalle es la diferencia entre reintentar y tener que reconstruir.

Envío autenticado con tu certificado

HTTPS con certificado de cliente, con verificación de par y de host activas. Dos entornos y solo dos: producción y el sandbox oficial de la AEAT. El mismo interruptor cambia altas, anulaciones y consultas a la vez, así que no existe la situación de estar medio en pruebas y medio en real.

XML validable contra los esquemas oficiales

Los XSD y el WSDL de la AEAT viajan dentro del módulo. El XML puede validarse antes de salir, con el acceso a red del parseador desactivado. Un error de estructura se ve aquí, no en el rechazo.

Trazabilidad completa de cada envío

Se conserva el XML exacto que salió, la respuesta cruda de la AEAT, el estado, el código seguro de verificación y la hora, vinculados a la factura. Y cada intercambio deja su línea de auditoría con dirección, código y mensaje. Cuando hay que demostrar algo, se demuestra con el documento, no con un recuerdo.

QR de 30 mm sobre cualquier plantilla

El QR se estampa sobre el PDF ya generado, después del generador. Por eso funciona con las plantillas estándar de Dolibarr y con las tuyas, sin tocarlas. Mide 30 mm de lado, el mínimo de la Orden, y la zona de silencio de cuatro módulos se calcula con el QR real de cada factura, no a ojo. En el ticket del TPV el QR va incrustado en el propio documento: imprime aunque el terminal no tenga salida a internet.

Aviso antes del rechazo, no después

Antes de enviar se comprueba el formato y el dígito de control del DNI, el NIE y el CIF, y el nombre fiscal, usando exactamente la misma cadena de resolución del NIF que usará el envío. Lo que se valida es lo que se manda. Y si la AEAT rechaza igual, el error se muestra traducido, con su código, y con un camino directo a corregir la ficha del cliente.

La ficha, en números

  • SHA-256Algoritmo de la huella de cada registro, encadenada con la anterior
  • 8 camposEntran en el canon de la huella de alta, en el orden que fija la norma
  • 30 mmLado del código QR: el mínimo exigido por la Orden HAC/1177/2024
  • 8 tiposF1, F2, F3 y R1 a R5, clasificados sin intervención manual
  • 5 víasCaminos de envío, todos bajo el mismo cerrojo de cadena
  • Cada horaFrecuencia del reintento automático de pendientes y errores
  • 1.a – 1.lApartados cubiertos de la declaración responsable del artículo 15
  • Dolibarr 22+Versión mínima sobre la que se declara el sistema

Tu día a día: cinco pasos, y cuatro no son tuyos

  1. Validas la factura

    Es lo único que haces distinto: nada. Creas la factura como siempre y pulsas VALIDAR. En el TPV, cobras. A partir de ahí no hay ningún botón de «enviar a Hacienda» que se pueda olvidar.

  2. Se calcula la huella

    El módulo toma los datos fiscales, lee el último eslabón de tu cadena y compone la huella con la fecha, la hora y el huso horario dentro. Bajo cerrojo, para que dos facturas simultáneas no compartan eslabón.

  3. Se remite a la AEAT

    El registro sale autenticado con tu certificado. Si el auto-envío está activo, en el mismo instante. Puedes desactivarlo por separado para facturas y para tickets de TPV y remitir en bloque: la norma admite el diferido.

  4. Se guarda la respuesta y se sella el PDF

    Estado, código seguro de verificación, hora y respuesta íntegra quedan pegados a la factura. El PDF se regenera con el QR y la leyenda de verificación en la sede electrónica de la AEAT.

  5. Si algo falla, no pierdes nada

    Caída de red, AEAT no disponible, un dato del cliente que la Agencia no acepta: la factura se valida igual, la huella ya está calculada y encadenada, y el registro queda pendiente. Se reintenta solo cada hora, y puedes forzarlo desde Reenvíos cuando quieras. Un fallo no consume eslabón.

Ocho tipos de documento, clasificados solos

La norma distingue tipos y cada uno se registra distinto. Nadie tiene que elegirlo desde un desplegable: el módulo lo deduce del origen y del contenido de la factura.

Factura ordinaria

Cliente identificado con sus datos fiscales completos. El caso habitual de facturación a empresa o profesional.

Ticket simplificado

El que genera TakePOS al cobrar. No requiere datos del destinatario y el QR sale impreso en el propio ticket.

Sustitución de simplificadas

Cuando el cliente pide factura completa después de haber comprado con ticket. Agrupa varios F2, importa sus líneas y se declara a la AEAT indicando a qué tickets sustituye.

Rectificativa por error fundado en derecho

Errores en los datos del destinatario, en la cuota repercutida u otros errores con fundamento jurídico.

Rectificativa por concurso de acreedores

Del destinatario. Como en toda rectificativa, eliges si va por sustitución o por diferencias; el módulo respeta esa elección y, si no la informas, la deduce de los importes que lleve el documento.

Rectificativa por créditos incobrables

Créditos que no se van a cobrar. Mismo mecanismo que R2: la forma de rectificar la decide quien emite, y el registro sale con el bloque de importes rectificados que la AEAT exige.

Rectificativa en otros supuestos

Los casos que no encajan en los tres anteriores. Admite tanto sustitución como diferencias, igual que el resto.

Rectificativa de factura simplificada

Se asigna sola cuando la factura de origen era un ticket F2, sin que nadie tenga que acordarse de marcarlo.

Lo que ves tú, y lo que ve tu gestoría

Cumplir por dentro no sirve si por fuera no se puede comprobar. Estas son las pantallas que usan de verdad quien factura y quien lleva los impuestos.

Verificadas pendientes

La lista incómoda y necesaria: facturas ya validadas en Dolibarr que la AEAT todavía no ha aceptado. Sin registro, en cola o con error. En una pantalla, sin buscarlas una a una.

Reenvíos

Todo lo pendiente y todo lo rechazado, con el mensaje concreto de la AEAT en cada línea. Envío individual o masivo. Los lotes largos se procesan con presupuesto de tiempo: si se acerca al límite, avisa cuántas quedan en vez de morir a medias en silencio.

Consulta del estado real

Preguntar a la AEAT qué consta de verdad sobre una factura ya enviada, desde el propio listado, sin salir de Dolibarr. Sirve para cerrar discusiones en treinta segundos.

Exportación para la gestoría

Emitidas, recibidas y trimestres por cliente, con base imponible, IVA, total, tipo de documento y estado de cobro. En CSV con marca UTF-8 para que Excel no destroce las tildes, y en PDF para adjuntar.

Multi-entidad de verdad

Los registros y las cadenas se segmentan por entidad de Dolibarr. Varias sociedades en una misma instalación, cada una con su cadena, su certificado y su información separada.

Certificado protegido

Acepta el certificado de la FNMT en sus tres formatos y convierte los que hagan falta. La contraseña se guarda cifrada con AES-256-GCM y clave derivada de tu instalación: nunca en claro. Y cada acción del módulo comprueba permiso, token de sesión y entidad.

Declaración responsable, no «sello de Hacienda»

Conviene decirlo claro, porque el mercado está lleno de anuncios que prometen lo contrario: la AEAT no certifica ni homologa programas de facturación. No hay sello oficial que colgarse ni registro público en el que aparecer. Lo que hay es una declaración responsable del productor del software, regulada en el artículo 15 de la Orden HAC/1177/2024. Si alguien te vende un «software certificado por Hacienda», está describiendo algo que no existe.

La nuestra está escrita apartado por apartado, del 1.a al 1.l, y se descarga en PDF desde el propio módulo. Identifica el nombre del sistema, su código de dos posiciones ante la AEAT y la versión concreta declarada. Y dice quién responde: BITCAR HOME, S.L., NIF B22657662, con dirección postal completa en Córdoba. Cada versión publicada lleva su propia declaración, con su fecha y su lugar de suscripción; las versiones sustituidas quedan en el histórico del productor.

Declara además dos cosas que no todos pueden declarar. Una: el producto funciona exclusivamente en modalidad VERI*FACTU, sin una modalidad alternativa por debajo. Dos: admite varios obligados tributarios manteniendo separada la información de cada uno.

Y una precisión técnica, porque la diferencia se nota en quien la conoce: en VERI*FACTU no se firma electrónicamente cada registro. Lo que hay es huella SHA-256 encadenada y comunicación autenticada con certificado electrónico. Quien te ofrezca «firma electrónica de cada factura» está hablando de otro régimen.

Pide la declaración antes de contratar. A nosotros, y a los demás. Te la damos entera.

Preguntas frecuentes

¿Tengo que hacer algo cada vez que emito una factura?

No. Configurado una vez el certificado y el modo de operación, todo ocurre al validar la factura o al cobrar en el TPV: se calcula la huella, se remite el registro y se sella el documento con el QR. Si la respuesta de tu proveedor a esta pregunta es «depende», el sistema no está bien montado.

¿Y si se cae la conexión con la AEAT justo cuando valido?

La factura se valida igual. La huella ya está calculada y encadenada, y el registro queda pendiente. Se reintenta solo: el módulo instala su propia tarea programada, con frecuencia de una hora y activada de fábrica. También puedes forzar el envío desde Reenvíos. Y como un fallo o un rechazo no consume eslabón, el reintento parte de la misma huella anterior: la cadena no queda coja.

¿Es obligatorio enviar en tiempo real?

No. La normativa admite el envío diferido. Puedes desactivar el auto-envío —por separado para facturas y para tickets del TPV— y remitir en bloque cuando prefieras. Recomendamos el inmediato por una razón práctica: el problema que se ve el mismo día se arregla en cinco minutos; el que se ve al trimestre, no.

¿Puedo probar sin tocar la AEAT real?

Sí, con el entorno de pruebas oficial de la Agencia Tributaria. Requiere certificado de empresa y los registros no tienen efectos legales. El módulo ofrece dos entornos y solo dos, producción y ese sandbox, y el mismo ajuste conmuta altas, anulaciones y consultas a la vez. No existe el estado intermedio de creer que estás en pruebas mientras algo va a producción.

¿Qué es exactamente la huella encadenada?

Un SHA-256 calculado sobre ocho campos concretos y en el orden que fija la norma: NIF del emisor, número de serie, fecha de expedición, tipo de factura, cuota total, importe total, huella del registro anterior y fecha-hora con huso horario. Cambiar un céntimo de una factura ya registrada cambiaría su huella, y con ella la de todas las siguientes. Por eso la integridad no descansa en la confianza que tengas en tu proveedor.

¿Puedo rectificar o anular una factura ya enviada?

Modificarla, no. Rectificarla o abonarla, sí. El módulo emite rectificativas R1 a R5 y notas de crédito. Rectificar por sustitución o por diferencias es una decisión tuya —así lo dice la propia AEAT— y el módulo la respeta en cualquier tipo, en vez de imponerte una regla que la norma no impone; cuando va por sustitución añade solo la base y la cuota rectificadas que la Agencia exige, que es el motivo habitual de rechazo cuando faltan. La anulación es otro registro encadenado, con su propia huella, que deja rastro. Y anular dos veces está bloqueado en el servidor, no con un botón escondido: la segunda no llega a la AEAT ni consume eslabón.

El cliente del TPV no tiene NIF, ¿es un problema?

No. Los tickets de TakePOS son facturas simplificadas y no requieren los datos del destinatario. El QR va incrustado en el propio ticket, así que se imprime aunque el terminal no tenga salida a internet en ese momento. Si el cliente pide después la factura completa, se emite una F3 que agrupa y sustituye esos tickets, y así se declara a la AEAT.

¿Vale mi certificado de la FNMT?

Sí, en sus tres formatos habituales: .p12 o .pfx nativo, .pem con certificado y clave juntos, y .crt.pem más .key.pem por separado. Los dos últimos se convierten solos, sin que tengas que pelearte con OpenSSL. La contraseña se guarda cifrada con AES-256-GCM y clave derivada del identificador de tu instalación: nunca en texto plano.

¿El código QR sale en todos los documentos?

En todos los que la norma lo pide: facturas y rectificativas en su PDF al validar, y tickets del TPV al imprimirse. Se estampa sobre el PDF ya generado, de modo que funciona con las plantillas de Dolibarr y con las que hayamos hecho a medida, sin tocarlas. Mide 30 mm de lado, el mínimo de la Orden, con la zona de silencio calculada sobre el QR real de cada factura. Lleva al validador de la sede electrónica de la AEAT con el NIF, el número de serie, la fecha y el importe: comprueba que el registro consta, no muestra el documento.

¿Sobre qué funciona?

Sobre Dolibarr 22 o posterior. Es un sistema exclusivamente de software, sin componentes de hardware propios, que se ejecuta sobre PHP y una base de datos soportada por Dolibarr. Así está declarado en la declaración responsable, y así se declara ante la AEAT.

Cuéntanos cómo facturas y te decimos qué te falta

Media hora basta para ver tu caso concreto: qué tipos de documento emites, si vendes con TPV, en qué estado están los datos fiscales de tus clientes y qué ocurre hoy exactamente cuando validas una factura. Salimos de ahí con un diagnóstico, no con un presupuesto genérico. Y si tu facturación incluye operaciones exentas o no sujetas, dínoslo en el primer minuto: son los casos que hay que mirar uno a uno antes de prometer nada.