La factura electrónica B2B en España en breve
El Real Decreto 238/2026, de 25 de marzo, hace electrónicas las facturas entre empresarios y profesionales españoles, salvo las facturas simplificadas. Se aplica desde una fecha que se cuenta a partir de la orden ministerial sobre la solución pública: la Orden HAC/1028/2026, en vigor desde el 6 de octubre de 2026. Desde entonces, las empresas con un volumen de operaciones superior a 8 millones de euros el año anterior tienen doce meses, hasta octubre de 2027, y las demás veinticuatro, hasta octubre de 2028. Durante sus primeros doce meses, las empresas más grandes envían además un PDF de cada factura electrónica, salvo que el destinatario acepte solo el XML.
Una factura sigue el modelo de datos de EN 16931 en una de cuatro sintaxis: UBL, CII, EDIFACT o Facturae. Las empresas pueden enviarla por una plataforma privada o por la Solución Pública de Facturación Electrónica (SPFE) de la AEAT, que solo admite UBL y es gratuita; una plataforma privada remite a la SPFE una copia fiel de cada factura en UBL. Los destinatarios informan del estado de las facturas, también de cuándo se pagan por completo.
El formato de la SPFE lo fija el Anexo I de la Orden: facturas UBL con el identificador de especificación (BT-24) urn:cen.eu:en16931:2026#conformant#urn:aeat.es:spfe:1.0.0:extended y campos españoles como la clave de régimen de cada línea.
Otros dos formatos ya están en vigor. Los proveedores de las administraciones públicas envían facturas Facturae a través de FACe. Y con el Reglamento VERI*FACTU, los sistemas informáticos de facturación guardan registros de facturación encadenados, que un sistema VERI*FACTU envía a la AEAT: desde el 1 de enero de 2027 para los contribuyentes del Impuesto sobre Sociedades y desde el 1 de julio de 2027 para los demás (Real Decreto-ley 15/2025).
Cómo comprobar una factura española
- Abra el validador con el perfil de factura SPFE, o el de Facturae o VERI*FACTU. Un archivo abierto o pegado elige el perfil adecuado por su identificador o su elemento raíz.
- Pegue el XML o arrastre el archivo y pulse Validate.
- Cada hallazgo muestra su línea; haga clic en él para saltar a ella en el editor.
Qué se comprueba
Para la SPFE, el esquema UBL 2.5: la primera de las tres validaciones que la AEAT describe en su documento de validaciones (versión 0.1.0, octubre de 2026), con los esquemas normativos de la versión de OASIS que la AEAT indica. La AEAT solo admite documentos Invoice, no notas de crédito.
La segunda validación son las reglas de EN 16931 en su edición de 2026, que el CEN aún no ha publicado como artefactos de validación. Las actuales (1.3.17) rechazan el NIF con schemeID "FC" que pide el Anexo I, así que aplicarlas haría fallar facturas correctas; añadiremos las reglas cuando salga la edición de 2026. La tercera son las reglas de negocio propias de la AEAT, que publicará poco a poco.
Para VERI*FACTU, el esquema de la AEAT y después las validaciones de su documento de validaciones (versión 1.2.2) que solo necesitan el archivo, con sus propios códigos de error: la cuota a menos de 10 euros de base por tipo (VF-1142), los totales del registro (VF-2005, aceptado con errores), la clave de régimen (VF-1245), los destinatarios de una factura completa (VF-1189), los tipos y recargos permitidos en cada fecha, la forma de las huellas de la cadena y la huella del propio registro, recalculada a partir de sus campos como lo hace la AEAT (VF-2000, aceptado con errores). Un NIF español con un carácter de control erróneo y un número de IVA europeo con una forma incorrecta son comprobaciones nuestras. Las consultas al censo de la AEAT y los registros enviados antes no se comprueban aquí.
Para Facturae, el esquema del Ministerio de Hacienda y después las reglas de validación que aplican el registro contable de facturas de cada administración pública y FACe (Orden HAP/1650/2015): el NIF del emisor, los importes de línea como cantidad por precio redondeado a céntimos (HAP1650-6a), los totales de la factura, la factura rectificada de una rectificativa y los tres códigos DIR3 cuando el destinatario es una administración pública (HAP1650-8a). La firma y la existencia de los códigos DIR3 las comprueba FACe.
La AEAT ofrece un servicio de validación de facturas SPFE solo en su entorno de pruebas, con certificado, factura a factura, y pide a los desarrolladores que validen en local. Esta página lo hace en su navegador.
Perfiles para comprobar
- Spain B2B e-invoice (SPFE, UBL 2.5): A Spanish B2B e-invoice in the format of the AEAT's public e-invoicing solution (SPFE), checked against the UBL 2.5 schema the AEAT validates with. Validar
- Facturae 3.2.2: The Spanish e-invoice format, required for invoices to the public sector through FACe. Validar
- VERI*FACTU invoice records: The invoice records a Spanish invoicing system sends to the AEAT under VERI*FACTU: one record per invoice issued (alta) or cancelled (anulación), chained by their SHA-256 fingerprints. Validar
- UBL 2.5 Invoice: The UBL invoice in its latest version, 2.5 (August 2026), the version Spain's public e-invoicing solution checks against. Validar
Las reglas que más se incumplen
Cada una tiene una página con lo que comprueba, su prueba y, en muchos casos, cómo corregirla.
VF-1142: El campo CuotaRepercutida tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujeto y TipoImpositivo suministrados (…, …).VF-2005: El campo ImporteTotal tiene un valor incorrecto para el valor de los campos BaseImponibleOimporteNoSujeto, CuotaRepercutida y CuotaRecargoEquivalencia suministr...VF-1245: Si el campo Impuesto está vacío o tiene valor IVA(01) o IPSI(02) o IGIC(03) el campo ClaveRegimen debe de estar cumplimentado.VF-1189: Si TipoFactura es F1 o F3 o R1 o R2 o R3 o R4 el bloque Destinatarios tiene que estar cumplimentado.HAP1650-6a: In an invoice in euros, a line's TotalCost (…) must be Quantity × UnitPriceWithoutTax rounded to cents (…), its GrossAmount (…) TotalCost - discounts + charges...HAP1650-8a: The buyer is a public administration (NIF …), so its administrative centres must give all three DIR3 codes: the accounting office (01), the managing body (02) a...
Preguntas
¿Se sube la factura a un servidor?
No. La comprobación del esquema se ejecuta en su navegador. Solo la API y los monitores de URL validan en nuestros servidores.
¿Un resultado válido significa que la SPFE aceptará la factura?
Todavía no: significa que la factura cumple el esquema UBL 2.5. La SPFE aplica además las reglas de EN 16931 (edición de 2026) y las reglas de negocio de la AEAT, que aún no se han publicado como artefactos.
¿Un registro VERI*FACTU válido significa que la AEAT lo aceptará?
Cumple el esquema y las validaciones de la AEAT que solo necesitan el archivo, con los códigos de error de la propia AEAT (VF-1108 es el 1108 de la AEAT). La huella se recalcula aquí como lo hace la AEAT. La AEAT además consulta los NIF en su censo y compara el registro con los enviados antes, algo que esta comprobación no hace.
¿Por qué el ejemplo de la AEAT usa otro proceso de negocio (BT-23)?
El Anexo I de la Orden indica urn:aeat:names:specification:ubl:schema:profile:B2B, mientras que la factura de ejemplo de la AEAT lleva urn:aeat:names:specification:schema:profile:B2B. El esquema acepta los dos; nuestro ejemplo sigue la Orden.
¿Puedo comprobar facturas desde código?
Sí: con la API y el cliente de línea de comandos con --schema es-spfe-invoice, facturae-3.2.2 o verifactu-1.0, o --schema auto para una carpeta con archivos de varios tipos.
Fuentes oficiales
- BOE: Real Decreto 238/2026, factura electrónica B2B
- BOE: Orden HAC/1028/2026, la solución pública de facturación electrónica, con el Anexo I (PDF)
- AEAT desarrolladores: Solución Pública de Facturación Electrónica (SPFE), con el documento de validaciones y el ejemplo
- AEAT: noticia sobre la facturación electrónica obligatoria, 31 de marzo de 2026
- AEAT: esquemas de VERI*FACTU
- AEAT desarrolladores: validaciones y errores de VERI*FACTU
- BOE: Orden HAP/1650/2015, reglas de validación de las facturas electrónicas al sector público (PDF)
- BOE: Real Decreto-ley 15/2025, nuevas fechas de VERI*FACTU
- OASIS: UBL 2.5 (en inglés)