Revisa facturas XML Facturae 3.2.2 antes de enviarlas a FACe: NIF/CIF con dígito de control, sumas del lote, cuotas de IVA e IRPF y firma XAdES. Se ejecuta entero en tu navegador: el XML no sale de tu equipo.
El mismo motor que la extension de VS Code, byte a byte. 18 reglas.
Gratis para el archivo abierto en tu editor: sin clave ni límite. El barrido del workspace y el informe piden una clave.
npmMCP server (npx)Docker Hubnpx @readystack/facturae-verifactu-lint <file> npx @readystack/facturae-verifactu-lint --mcp docker run --rm -v "$PWD:/w" getreadystack/facturae-verifactu-lint /w
Equipo: una clave para todos los linters de ReadyStack, 5 puestos, $149 una vez
Barre todo el espacio de trabajo (la carpeta entera de un cliente, un mes de facturas) y escribe un informe fechado en un fichero que te llevas
Un solo pago, una clave de licencia para esta herramienta. La clave aparece justo después del pago.
Una hora de gestoria en España se factura habitualmente entre 40 y 60 EUR
Comprar la versión completa — $29· ReadyStack
Números reales de esta herramienta, línea por línea.

Quince hallazgos en una sola factura: eso es lo que devuelve el lint sobre un XML Facturae 3.2.2 de 4.250,00 EUR de base imponible, del tipo que emite a diario cualquier equipo de facturación español que genera las facturas desde código.
Trece son errores que FACe rechaza y dos son avisos. Ninguno rompe el XML ni salta a la vista leyendolo.
El fichero que parece correcto
El XML de una factura electrónica española es largo y repetitivo, y casi nadie lo escribe a mano: lo genera un ERP, una plantilla o, cada vez más, un asistente de IA al que se le pide "una Facturae de ejemplo". La estructura sale bien. La aritmetica, no.
En el fichero de ejemplo _fixtures/dirty.xml el emisor lleva el CIF B12345678: aspecto impecable, dígito de control imposible. El algoritmo de personas juridicas suma las posiciones pares tal cual, dobla las impares y reduce sus cifras, y de ahi sale un control que no es el 8. La versión correcta es B98765431. Ningún modelo de lenguaje calcula eso mientras redacta.
Donde se pierde el dinero
El mismo fichero declara un tipo de IVA del 18,00 %. En España los tipos vigentes son 21, 10, 4 y 0: el 18 % solo sobrevive en ejemplos copiados. Y la cuota declarada, 892,50 EUR, es exactamente el 21 % de la base: el fichero mezcla el tipo de un ejemplo con la cuota de otro. Base por tipo: 4.250,00 x 18 % = 765,00. El fichero dice 892,50. Son 127,50 EUR de diferencia en una sola línea de impuestos.
Y luego esta el total. La factura lleva una retención de IRPF del 15 % sobre la misma base, 637,50 EUR. La cuenta correcta es bruto antes de impuestos mas repercutidos menos retenidos: 4.250,00 + 892,50 - 637,50 = 4.505,00. El fichero declara 4.505,00 en la cabecera del lote y 4.400,00 en la factura. Un descuadre de 105,00 EUR entre dos campos del mismo documento, que además hace que TotalInvoicesAmount no cuadre con la suma de los InvoiceTotal. Ese es el fallo que más veces vuelve: la retención se resta en un sitio y no en el otro.
Lo que comprueban las 18 reglas
La cabecera: SchemaVersion no anterior a 3.2.2, Modality en I o L, InvoiceIssuerType en EM, RE o TE, InvoicesCount igual al número real de elementos <Invoice> y TotalInvoicesAmount igual a la suma de los totales del lote.
La identificacion fiscal: NIF por modulo 23, NIE con prefijo X, Y o Z, CIF con el algoritmo completo, PersonTypeCode en F o J, ResidenceTypeCode en E, R o U.
La factura: InvoiceDocumentType, InvoiceClass, IssueDate en formato AAAA-MM-DD y no posterior a hoy, moneda distinta de EUR sin ExchangeRateDetails.
La aritmetica: tipo de IVA fuera de los vigentes, cuota contra base por tipo, total contra bruto más repercutidos menos retenidos. Y el cierre: sin ds:Signature no hay Facturae admisible en FACe, y un registro Veri*factu necesita Huella, Encadenamiento e IDVersion.
Sobre _fixtures/clean.xml, corregido, las 18 reglas devuelven cero.
El eje de corte
La comprobación de la factura abierta en el editor es gratuita, sin clave y sin límite de usos: las 18 reglas y todos los hallazgos, sin marca de agua ni cuenta atras. El mismo motor corre en el navegador, sin registro y sin subir nada.
La clave se pide en otro eje distinto: barrer el espacio de trabajo entero (la carpeta de un cliente, un mes de facturas) y escribir un informe fechado en un fichero que te llevas y adjuntas a un expediente. 29 dolares una vez, una clave por persona o puesto de integracion continua. Para comparar: una hora de gestoria en España se factura habitualmente entre 40 y 60 EUR.
Lee el XML Facturae que tienes abierto en VS Code y aplica 18 reglas: versión de esquema, códigos obligatorios, dígito de control del NIF, NIE y CIF, cuadre del lote, cuota contra base por tipo, total contra bruto más repercutidos menos retenidos, firma XAdES y encadenamiento Veri*factu. Marca cada fallo en su línea.
Para quien genera facturas electrónicas españolas desde código: desarrolladores de ERP y de tiendas, equipos de facturación que emiten a FACe o a la administracion autonomica, y despachos que revisan el XML antes de firmarlo. Si nunca tocas el XML a mano y solo usas un portal web, esto no te hace falta.
El validador oficial comprueba un fichero cada vez, en una web, y te responde cuando ya has decidido enviar. Un asistente de IA escribe XML plausible pero no recalcula la letra de control del NIF ni la cuota del IVA. Aquí la comprobación ocurre en el editor, sobre el fichero que estas escribiendo, y señala la línea.
Gratis, sin clave y sin límite de usos: la factura abierta en el editor, con las 18 reglas y todos los hallazgos. Sin marca de agua ni cuenta atras. La clave se pide en otro eje: barrer todo el espacio de trabajo, es decir la carpeta entera de un cliente o un mes de facturas, y escribir un informe fechado en un fichero.
Una hora de gestoria en España se factura habitualmente entre 40 y 60 EUR, y revisar a mano el dígito de control y las cuotas de un lote de facturas lleva más de una hora. La licencia completa cuesta 29 dolares una sola vez, con una clave por persona o puesto de integracion continua.
Un chat de IA general responde con datos de entrenamiento con fecha de corte, no puede leer tu repositorio y no indica la versión de la norma. Facturae 3.2.2 / Veri*factu Lint (España) revisa el archivo abierto con 18 reglas de un conjunto fechado el 2026-09-20 y señala la línea exacta. Para una declaración, una auditoría o un cliente necesitas ese resultado fechado sobre tus propios archivos.
Una pregunta, respondida por quien la construyó. Email solo si quiere la respuesta por correo.
Pega este código en tu página. Funciona en el navegador de tus visitantes y se mantiene actualizado. No se guarda nada de lo que escriben.
Todas las herramientas para insertar
Para negocios: tu nombre y logo en lugar del nuestro, y el resultado + correo de cada visitante en tu bandeja (solo si lo autoriza) — Pro desde 19 $/mes. Ver Pro →