Herramienta gratuita · para quien desarrolla software de facturación
Validador de registros Verifactu
Sube el XML de registros que genera tu sistema y te decimos dónde incumple el Reglamento de los sistemas de facturación, citando el artículo o el error de la AEAT: huella, encadenamiento, rectificativas, eventos e importes. Antes de que lo vea un cliente o Hacienda.
Arrastra aquí los XML de registros que genera tu sistema, o
…o pega el XML aquí
Tu XML no sale del navegador: se analiza aquí mismo con verifactu-lint 0.4.0, el mismo código que pip install verifactu-lint.
Qué comprueba
Hay buenas librerías para generar registros Verifactu. Esto responde a la otra pregunta: ¿lo que estás generando cumple? Son 34 reglas sobre el Reglamento de los sistemas de facturación (RD 1007/2023) y la Orden HAC/1177/2024, y cada hallazgo cita el artículo o el código de error de la AEAT que lo respalda. Hay una más, RRSIF014, que compara instalaciones entre ejecuciones y por eso solo vive en la línea de comandos, con --historico.
- Huella y encadenamiento RRSIF001-005
- Recalcula la huella SHA-256 de cada registro con sus propios campos y comprueba que coincide con la declarada, que encadena con la del registro anterior y que la cadena tiene un único inicio. Si el fichero trae varios obligados tributarios, cada uno tiene su cadena y se comprueba por separado. Es lo que una cadena rota, un registro reordenado o uno modificado después de emitirlo no pueden ocultar.
- Identificación del sistema RRSIF010-013
- Numeración de factura sin duplicados, el sistema identificado con NIF, identificador y número de instalación, coherencia multi-obligado y un aviso cuando el fichero mezcla varios obligados tributarios.
- Registro de eventos RRSIF020-028
- La cadena de eventos por separado: tipos válidos, huella y encadenamiento propios, firma, los datos que corresponden a cada evento y los inicios y fines de funcionamiento como NO VERI*FACTU.
- Rectificativas RRSIF030-035
- Que el tipo de factura existe, que una rectificativa dice qué rectifica y cómo, que el importe de rectificación va solo en las sustitutivas y que una subsanación no se confunda con rectificar.
- Desglose e importes RRSIF040-049
- Que la cuota total y el importe total cuadran con el desglose, que cada cuota sale de su base y su tipo, signos, valores de las listas oficiales, recargo de equivalencia y macrodato. Aplican el mismo margen de ±10 € que el validador de la AEAT y anticipan sus códigos: rechazos como el 1142 o el 1190, y errores admisibles como el 2005 y el 2006, con los que el registro se acepta pero queda pendiente de subsanar.
Para quién es, y para quién no
Hace falta el XML de los registros, y ese fichero no lo tiene todo el mundo. Mejor saberlo antes de buscarlo:
| Tu situación | ¿Tienes el fichero? |
|---|---|
| Desarrollas o mantienes un sistema de facturación: tus tests o tu entorno generan registros | Sí, siempre |
| Usas un sistema NO VERI*FACTU que exporta sus registros conservados | Solo si exporta en el formato del registro |
| Un requerimiento de la AEAT o una migración entre sistemas | Depende de cómo exporte tu sistema |
| Eres usuario final de un programa VERI*FACTU | No: el programa ya remitió los registros y no tiene por qué guardarlos |
Si solo quieres saber si Verifactu te afecta y cuándo, lo que necesitas es el comprobador de cuatro preguntas, no este validador.
Lo que el resultado no es
Un resultado sin errores significa que estas reglas, sobre esos registros, no han encontrado un incumplimiento. No acredita conformidad: la declaración responsable del artículo 13 del RD 1007/2023 la emite el productor del sistema bajo su propia responsabilidad, y ninguna herramienta puede emitirla por él.
Por eso hay tres niveles y no dos. Además de error y aviso, está sin determinar: cuando una regla no puede decidir con lo que hay en el fichero —un campo que falta, un dato que vive fuera de él—, no adivina; dice exactamente qué haría falta mirar.
Preguntas frecuentes
- ¿Mi XML se sube a algún servidor?
- No. El fichero se analiza dentro de tu navegador: la herramienta descarga una vez el intérprete de Python (unos 12 MB, que quedan en caché) y verifactu-lint, y ejecuta las reglas en tu equipo. El contenido de tus registros no viaja a ninguna parte.
- ¿Un resultado sin errores significa que mi sistema cumple Verifactu?
- No. Significa que estas reglas no han encontrado un incumplimiento en esos registros. La declaración responsable del artículo 13 del RD 1007/2023 la emite el productor del sistema, bajo su responsabilidad.
- Uso un programa de facturación VERI*FACTU, ¿puedo comprobar aquí mis facturas?
- Normalmente no tendrás el fichero: un sistema VERI*FACTU remite los registros a la AEAT y no está obligado a conservarlos. La herramienta está pensada para quien desarrolla o mantiene el software de facturación.
- ¿Es lo mismo que la línea de comandos?
- Sí: ejecuta verifactu-lint 0.4.0, el mismo paquete que se instala con pip install verifactu-lint, y devuelve el mismo informe. Para ficheros grandes o para comprobar cada cambio en tu integración continua, usa la línea de comandos o la GitHub Action.
- ¿Qué significa «sin determinar»?
- Que una regla no puede decidir con lo que hay en el fichero, por ejemplo porque falta un campo o porque el dato vive fuera de él. En vez de adivinar, el informe dice qué haría falta revisar.
El validador es verifactu-lint, de código abierto (Apache-2.0). Si lo que buscas es entender la norma, está en nuestra guía Verifactu: qué es, a quién obliga y cuándo.