FacturaE 3.2.x: formato técnico, validación XAdES y lo que necesita saber tu equipo AP
Guía del equipo de ininvoice · Conciliación automática de facturas.
FacturaE es el estándar XML de factura electrónica en España, definido por el Ministerio de Hacienda y disponible en facturae.gob.es. La versión vigente es la 3.2.x, que añade sobre la 3.2 mejoras en la firma XAdES-EPES y campos extendidos de línea. Para cuentas a pagar, procesar FacturaE significa leer campos estructurados en lugar de hacer OCR sobre PDF. Precio unitario, cantidad, tipo de IVA y número de pedido llegan en etiquetas XML verificables. La firma XAdES garantiza que el contenido no ha sido modificado desde que el emisor lo firmó.
FacturaE lleva más de una década en el mercado, pero la mayoría de equipos AP la conocen solo de oídas. Cuando una factura FacturaE llega al buzón, lo habitual es abrirla en el visor, leer el PDF de presentación y reteclear los datos. El XML va a la papelera.
Ese es el error que Crea y Crece va a hacer muy caro. Si los datos están en el XML estructurado y tú trabajas desde el PDF, estás añadiendo fricción donde el formato fue diseñado para eliminarla.
Este artículo explica cómo funciona FacturaE 3.2.x técnicamente, qué diferencia hay con la versión 3.2, qué hace la firma XAdES y cómo impacta en tu flujo de cuentas a pagar. Sin teoría de más.
Qué es FacturaE y de dónde viene
FacturaE es el formato de factura electrónica oficial de la Administración Española. Lo define el Ministerio de Hacienda y su documentación técnica, incluyendo el schema XSD, está disponible en facturae.gob.es.
Nació principalmente para la facturación entre empresas y administraciones públicas (B2G). FACe —la Plataforma de Facturación Electrónica del Estado— usa FacturaE como formato obligatorio para proveedores que facturan a la Administración General del Estado. Desde que se aprobó la Ley Crea y Crece, FacturaE es uno de los dos formatos reconocidos también para la facturación B2B privada, junto con Peppol BIS 3.0.
El formato es XML con un schema propio. No es UBL estándar. No es CII. Es el schema MINHAC (Ministerio de Hacienda). Esto tiene implicaciones prácticas: un sistema que lee Peppol UBL no lee FacturaE sin un mapper de campos específico. Esta información es orientativa. Consulte con su asesor fiscal.
FacturaE 3.2 vs FacturaE 3.2.x: qué cambió
La diferencia entre 3.2 y 3.2.x no es trivial para AP. Los cambios más relevantes son de dos tipos: campos nuevos y mejoras en la firma.
| Aspecto | FacturaE 3.2 | FacturaE 3.2.x |
|---|---|---|
| Firma electrónica | XAdES-BES o XAdES-EPES básico | XAdES-EPES con política de firma actualizada |
| Referencia de pedido | Campo opcional de texto libre | Campo estructurado con código de pedido |
| Identificación línea | Descripción de texto por línea | Código de artículo + descripción separados |
| Fechas adicionales | Solo fecha de factura | Fecha de operación separada de fecha de emisión |
| Tipos de IVA | Estructura básica | Mejor soporte para IVA intracomunitario e inversión sujeto pasivo |
| FACe | Compatible | Requerida en algunas entidades |
Para AP, los cambios más prácticos son el campo de referencia de pedido estructurado y la separación entre código de artículo y descripción. Ambos facilitan el fuzzy matching contra el pedido de compra: ya no hay que inferir el número de pedido a partir del texto libre de la línea.
Estructura XML: qué viene en una factura FacturaE
Un archivo FacturaE es un XML con tres bloques principales:
- Cabecera (
FileHeader). Versión del formato, número de facturas en el archivo (un XML puede contener múltiples facturas), modalidad (individual o por lotes), esquema de moneda. - Partes (
Parties). Datos del emisor (NIF, razón social, dirección) y del receptor. Cada campo tiene su etiqueta propia:TaxIdentificationNumber,CorporateName,AddressInSpain. - Facturas (
Invoices). Una o varias facturas. Cada una contiene:InvoiceHeader: número, serie, tipo (completa, abreviada, resumen), clase (original, duplicado, rectificativa).InvoiceDates: fecha de emisión, fecha de operación.InvoiceTotals: base imponible, cuota IVA, total bruto, descuentos globales, total a pagar.Items: lista de líneas. Cada línea tieneDescription,Quantity,UnitPriceWithoutTax,TotalCost,DiscountsAndRebates,GrossAmount.TaxesOutputs: tipos de IVA aplicados, base de cada tipo, cuota.PaymentDetails: IBAN, fecha de vencimiento, método de pago.
Lo que esto significa para AP: todos los datos que necesitas para el three-way matching están en campos etiquetados. UnitPriceWithoutTax es el precio unitario sin IVA, que es el que debes comparar con el precio del pedido de compra. Quantity es la cantidad facturada. TotalCost es el importe de línea antes de descuentos.
XAdES: qué es y por qué importa
XAdES (XML Advanced Electronic Signatures) es el estándar europeo de firma electrónica avanzada sobre documentos XML. Está definido en el estándar ETSI EN 319 132 y es el mecanismo que FacturaE usa para garantizar la integridad y autenticidad de la factura.
Hay varios niveles de XAdES. FacturaE usa XAdES-EPES (Explicit Policy Electronic Signature), que incluye una referencia explícita a la política de firma aplicada. En la práctica esto significa que la firma incorpora:
- El certificado del firmante (NIF del emisor vinculado a la firma).
- El timestamp de la firma.
- Una referencia criptográfica a la política de firma publicada por el Ministerio de Hacienda.
- El hash SHA-256 del contenido del documento.
Para AP, la consecuencia práctica es doble. Primero: puedes verificar que el contenido XML no ha sido modificado desde que el emisor lo firmó. Si el hash del XML que recibes coincide con el hash encapsulado en la firma, el documento es íntegro. Segundo: el NIF del emisor está vinculado criptográficamente a la firma. No es posible suplantar a un emisor sin acceso a su certificado.
Esto es relevante para la detección de fraude en AP. Una factura FacturaE con firma XAdES válida del NIF de un proveedor conocido es más difícil de falsificar que un PDF enviado por correo.
FACe: la plataforma pública de facturas electrónicas
FACe (Punto General de Entrada de Facturas Electrónicas de la Administración General del Estado) es la plataforma pública para recibir facturas de proveedores dirigidas a la Administración. Si tu empresa provee a organismos públicos, ya conoces FACe. Si tu empresa recibe facturas de proveedores que también tienen contratos públicos, es posible que esos proveedores usen FACe para todas sus emisiones, incluyendo las B2B privadas.
Para el receptor en un contexto B2B privado, FACe no es una plataforma obligatoria. Las facturas FacturaE pueden llegar por correo, por portal del proveedor, o por plataformas intermediarias privadas. FACe es la vía obligatoria solo para facturas dirigidas a la Administración. Esta información es orientativa. Consulte con su asesor fiscal.
Lo que sí es relevante para AP: si recibes una factura generada desde FACe, el XML viene con estructura FacturaE estándar y con firma XAdES. Tu sistema AP puede procesarla exactamente igual que cualquier otra FacturaE.
Cómo procesar FacturaE en tu flujo AP
El flujo correcto para una factura FacturaE recibida tiene cuatro pasos:
- Recepción e identificación del formato. El archivo tiene extensión
.xsigo.xml. El sistema AP debe detectar que es FacturaE leyendo el namespace del XML (http://www.facturae.es/Facturae/2009/v3.2/Facturaepara 3.2, con variante para 3.2.x). - Validación de la firma XAdES. Verificar que el hash del contenido coincide con el encapsulado en la firma y que el certificado es válido. Esto puede hacerse con librerías estándar o delegarse en una plataforma intermediaria.
- Extracción de campos por etiqueta. Leer
UnitPriceWithoutTax,Quantity,TaxIdentificationNumbery el campo de referencia de pedido. Sin OCR. Sin interpretación de píxeles. - Three-way matching. Comparar los campos extraídos con el pedido de compra y el albarán de entrega. Con datos limpios, la precisión del matching sube significativamente.
El punto crítico es el paso 3. Si tu sistema AP no tiene un parser FacturaE, los pasos 2 y 4 también fallan. El parser debe conocer el schema XSD de FacturaE 3.2.x para mapear correctamente los campos.
Formatos aceptados en AP: tabla de referencia
| Formato | Tipo | Firma | Parser requerido | Uso típico |
|---|---|---|---|---|
| FacturaE 3.2.x | XML XSD MINHAC | XAdES-EPES | Parser FacturaE específico | B2G y B2B ES |
| Peppol BIS 3.0 | XML UBL 2.1 | Firma Peppol (red 4-corner) | Parser UBL/EN16931 | B2B cross-border EU |
| PDF/A firmado | PDF + firma digital | PAdES o XAdES | OCR + extractor PDF | No válido bajo Crea y Crece como formato principal |
| PDF sin firma | Sin firma | OCR | Período de transición, proveedores sin adaptar |
Errores frecuentes al procesar FacturaE
Cuatro problemas que aparecen una y otra vez en equipos AP que empiezan a procesar FacturaE:
Problema 1: usar el PDF de presentación en lugar del XML. Muchas facturas FacturaE se envían con un PDF de representación visual adjunto. El PDF es para que el lector humano entienda la factura. El XML es la fuente oficial de datos. Procesar el PDF con OCR y descartar el XML es desperdiciar el formato.
Problema 2: no validar la firma XAdES. Si tu sistema extrae datos del XML sin verificar la firma, no puedes saber si el documento ha sido modificado en tránsito. Para facturas de importe elevado, esto es un riesgo de fraude significativo.
Problema 3: confundir el precio unitario con el precio total de línea. UnitPriceWithoutTax es el precio por unidad sin IVA. TotalCost es el importe total de la línea antes de descuentos. Para el three-way matching, debes comparar precio unitario de la factura contra precio unitario del pedido, no totales. El total de línea depende de la cantidad y puede enmascarar discrepancias de precio.
Problema 4: ignorar las rectificativas. FacturaE tiene un campo InvoiceClass que puede ser OO (original), OR (rectificativa por reemplazo) o OC (rectificativa por diferencias). Si recibes una rectificativa y tu sistema la trata como factura original, vas a duplicar o confundir importes en el libro de facturas recibidas.
¿Tu sistema AP procesa FacturaE XML correctamente?
ininvoice parsea FacturaE 3.2.x directamente, extrae campos por etiqueta y los cruza línea a línea con tu pedido y albarán. Reserva plaza y pruébalo con una factura real.
Caso: asesoría que gestiona AP de 8 clientes
Una asesoría en Tarragona gestiona las cuentas a pagar de ocho PYMEs del sector industrial. En total, procesan unas 240 facturas al mes entre todos los clientes. Antes de adaptar el flujo, el proceso era: descargar PDF de correo de cada cliente, reteclear en el ERP de cada uno, verificar a mano.
Cuando tres de sus proveedores principales empezaron a emitir FacturaE voluntariamente, la asesoría siguió procesando el PDF adjunto por costumbre. Resultado: en un trimestre se detectaron cuatro divergencias entre los importes del XML y los importes tecleados a mano. Dos eran errores de captura sin consecuencias. Uno era un descuento de línea que había ignorado el humano al copiar. El cuarto era una rectificativa que había entrado como factura original y duplicó el importe en el libro de IVA.
La corrección del cuarto error requirió cuatro horas de trabajo y una declaración complementaria. El coste del error superó en varios meses el coste de tener un parser FacturaE correcto.
Preguntas frecuentes
- ¿FacturaE 3.2.x es obligatorio o es suficiente 3.2?
- FACe requiere 3.2.x para algunas entidades públicas. Para B2B privado bajo Crea y Crece, el reglamento de desarrollo especifica los formatos válidos. Consulta la documentación actualizada en facturae.gob.es y con tu asesor. [Consulte con su asesor fiscal]
- ¿Cómo valido que una firma XAdES es correcta?
- Hay librerías de código abierto (Java, .NET, Python) que validan XAdES-EPES. También puedes usar el validador de FACe o plataformas intermediarias que lo hacen automáticamente en el flujo de ingesta.
- ¿Un PDF enviado por correo con firma digital es FacturaE?
- No. FacturaE es el formato XML con schema XSD de Hacienda. Un PDF firmado digitalmente es un PDF con firma, no es FacturaE aunque incluya firma electrónica.
- ¿Puede haber múltiples facturas en un solo archivo FacturaE?
- Sí. El formato permite incluir varias facturas en un único archivo XML. El campo
BatchIdentifieren la cabecera identifica el lote. Tu sistema AP debe iterar sobre el bloqueInvoicespara procesar cada factura del lote. - ¿Cómo trato una factura rectificativa en AP?
- Lee el campo
InvoiceClass. Si esORoOC, es una rectificativa. Debes identificar la factura original que rectifica (campoReasonDescriptiony referencia a la factura original) y aplicar el ajuste correspondiente en el libro de facturas recibidas. No la trates como factura nueva. - ¿FacturaE sirve para facturas intracomunitarias?
- Sí, el formato tiene campos específicos para IVA intracomunitario e inversión del sujeto pasivo. Para proveedores europeos, sin embargo, es más probable recibir Peppol BIS 3.0. [Consulte con su asesor fiscal]
Lo que necesita saber tu equipo AP
FacturaE 3.2.x es el formato XML con firma XAdES que llegará a tu correo cuando tus proveedores adopten Crea y Crece. Tres cosas concretas:
- El XML es la fuente de datos oficial. El PDF adjunto es para visualización. Tu sistema AP debe leer el XML, no el PDF.
- La firma XAdES garantiza que los datos no han sido alterados. Validarla es una capa de seguridad contra facturas fraudulentas.
- Las rectificativas tienen su propia clase (
InvoiceClass). Un parser que no las distinga de las originales genera errores en el libro de IVA.
Esta información es orientativa. Consulte con su asesor fiscal.
Contenido relacionado
Procesa FacturaE XML sin reteclear nada
ininvoice parsea FacturaE 3.2.x, extrae campos por etiqueta y los cruza línea a línea con tu pedido. Sin consultor, sin permanencia.
Reservar plaza