Un fichero Facturae 3.2 es un documento XML con cuatro bloques. FileHeader recoge la versión, la modalidad y el tipo de emisor. Parties identifica fiscalmente al emisor y al receptor. Invoices contiene cada factura con su cabecera, fechas, impuestos, totales y líneas. Cierra el fichero la firma electrónica XAdES. Si falta alguno de sus campos obligatorios, el validador rechaza el fichero.
Los cuatro bloques del XML de Facturae y su orden
El elemento raíz se llama Facturae y contiene, siempre en este orden, FileHeader, Parties, Invoices y la firma (ds:Signature). El esquema XSD es estricto con el orden: un bloque desplazado invalida el documento aunque todos los datos sean correctos.
- FileHeader: describe el fichero en su conjunto, no cada factura. Indica la versión del esquema, si contiene una factura o un lote y quién lo emite.
- Parties: identifica al vendedor (SellerParty) y al comprador (BuyerParty) con su NIF, su nombre o razón social y su dirección.
- Invoices: agrupa una o varias facturas (Invoice). Cada una lleva sus propios datos de cabecera, impuestos, totales y líneas de detalle.
- Firma XAdES: firma electrónica avanzada sobre todo el documento. Acredita quién lo emite y que no se ha alterado.
Las etiquetas están en inglés aunque el formato sea español. Los importes usan el punto como separador decimal y no llevan separador de miles.
Datos requeridos en FileHeader y Parties de un XML de Facturae
La cabecera del fichero y las partes son lo primero que comprueba cualquier validador. La tabla resume los elementos imprescindibles y el fallo más habitual en cada uno.
| Elemento | Qué contiene | Error típico |
|---|---|---|
| SchemaVersion | Versión del esquema utilizada | No coincide con el espacio de nombres del XML |
| Modality | I (individual) o L (lote) | Marcar I con varias facturas dentro |
| InvoiceIssuerType | EM emisor, RE receptor o TE tercero | Usar TE sin rellenar el bloque ThirdParty |
| Batch | Identificador del lote, número de facturas y totales | Totales del lote distintos de la suma de facturas |
| TaxIdentification | Tipo de persona (F o J), residencia y NIF | NIF con espacios o guiones |
| LegalEntity o Individual | Razón social, o nombre y apellidos | Usar LegalEntity para un autónomo |
| AddressInSpain | Dirección, código postal, municipio, provincia y país | Código postal incompleto o provincia vacía |
El BatchIdentifier se forma concatenando el NIF del emisor con el número y la serie de la primera factura. Si el destinatario es una Administración pública, el comprador lleva además el bloque AdministrativeCentres con los códigos DIR3 de la oficina contable, el órgano gestor y la unidad tramitadora.
Subbloques de cada factura dentro de Invoices, paso a paso
Cada Invoice se construye con los siguientes subbloques. Todos son imprescindibles salvo TaxesWithheld, que depende de la operación, y PaymentDetails.
- InvoiceHeader: incluye el número (InvoiceNumber), la serie si existe, el tipo de documento (FC completa, FA simplificada, AF autofactura) y la clase (OO original, OR rectificativa). Una rectificativa exige el bloque Corrective con la factura corregida y el motivo.
- InvoiceIssueData: fecha de expedición, moneda de la factura, moneda del impuesto e idioma.
- TaxesOutputs: impuestos repercutidos, con tipo de impuesto, porcentaje, base y cuota. En España el IVA puede ser general del 21 %, reducido del 10 % o superreducido del 4 %.
- TaxesWithheld: retenciones, como el IRPF que practica la empresa que paga a un profesional.
- InvoiceTotals: importe bruto, base antes de impuestos, total de impuestos, total de retenciones, total de la factura e importe a pagar.
- Items: líneas de detalle con descripción, cantidad, precio unitario sin impuestos, importe bruto e impuestos de cada línea.
- PaymentDetails: vencimiento, importe, medio de pago y cuenta (IBAN). No siempre es obligatorio, pero facilita conciliar el cobro.
El tipo FA (simplificada) solo vale dentro de los límites del artículo 4 del Real Decreto 1619/2012: hasta 400 € IVA incluido, o hasta 3.000 € en determinados sectores minoristas.
Ejemplo de factura de 1.000 € con IVA e IRPF en el XML
Un profesional factura 1.000 € de honorarios a una empresa, con IVA del 21 % y retención de IRPF del 15 %. La tabla muestra cómo se reparten los importes entre los campos del fichero.
| Concepto de la factura | Cálculo | Importe | Campo en el XML |
|---|---|---|---|
| Base imponible | honorarios del servicio | 1.000,00 € | TotalGrossAmountBeforeTaxes |
| IVA (21 %) | 1.000,00 € × 21 % | 210,00 € | TotalTaxOutputs |
| Retención IRPF (15 %) | 1.000,00 € × 15 % | −150,00 € | TotalTaxesWithheld |
| Total factura (base + IVA) | 1.000,00 € + 210,00 € | 1.210,00 € | Sin campo propio: base más cuotas |
| Importe a cobrar | total − retención | 1.060,00 € | InvoiceTotal y TotalExecutableAmount |
Dos detalles evitan rechazos. El primero: TotalTaxesWithheld se escribe en positivo (150.00), porque el propio esquema lo resta. El segundo: InvoiceTotal es la base más el IVA menos la retención, no el total con IVA.
Si el cliente es un particular, la factura no lleva retención. En ese caso desaparece el bloque TaxesWithheld y TotalTaxesWithheld queda a 0.00. Para cuadrar las cifras antes de generar el fichero, puedes usar la calculadora de factura con IVA y retención.
Firma XAdES, validación y uso del formato en la factura electrónica B2B
La firma XAdES va dentro del propio XML y se genera con un certificado electrónico del emisor o de quien firma en su nombre. Cualquier cambio posterior, aunque sea un espacio, rompe la firma. Por eso conviene validar el fichero ya firmado, no el borrador.
Entre empresas, la Ley 18/2022 (Ley Crea y Crece), el Real Decreto 238/2026 y la Orden HAC/1028/2026 fijan dos plazos:
- 6 de octubre de 2027, para quien superó 8 millones de euros de volumen de operaciones el año anterior.
- 6 de octubre de 2028, para el resto de empresarios y profesionales, autónomos incluidos.
Facturae es uno de los formatos admitidos entre plataformas, como modelo EN 16931, junto a UBL, CII y EDIFACT. La solución pública de la AEAT trabaja en UBL. Quien emita por una plataforma privada debe enviarle a la vez una copia fiel en UBL. Tienes el resto de obligaciones en la guía de factura electrónica para autónomos.
Esta obligación no es VeriFactu. La factura electrónica regula el formato y el intercambio entre empresas. VeriFactu regula el programa que genera los registros de facturación y los remite a la AEAT.
Preguntas frecuentes
¿Qué diferencia hay entre Facturae y UBL?
Facturae y UBL son dos formatos XML de factura electrónica admitidos entre plataformas en España. Facturae es el formato español, con etiquetas propias y firma XAdES. UBL es un estándar internacional y es el formato que usa la solución pública de la AEAT, que exige una copia fiel en UBL.
¿Una factura en formato Facturae tiene que ir firmada?
Una factura en formato Facturae incluye la firma electrónica XAdES como último bloque del XML. Esa firma acredita la identidad del emisor y garantiza que el contenido no se ha modificado. Cualquier cambio posterior a la firma invalida el fichero, así que la validación debe hacerse sobre el XML ya firmado.
¿Cómo se indica la retención de IRPF en un XML de Facturae?
La retención de IRPF en un XML de Facturae se declara en el bloque TaxesWithheld, con su porcentaje, base y cuota. Los porcentajes habituales son el 15 % o el 7 % para nuevos autónomos. El total retenido figura en positivo en TotalTaxesWithheld y se resta para obtener InvoiceTotal.
¿Sirve Facturae 3.2 para la factura electrónica obligatoria entre empresas?
Facturae 3.2 sirve como formato de intercambio entre plataformas en la factura electrónica B2B, porque se admite como modelo EN 16931. Quien emita por una plataforma privada debe enviar además una copia fiel en UBL a la solución pública de la AEAT. Para la mayoría de autónomos, el plazo es el 6 de octubre de 2028.
Si quieres saber cómo te afectan estas obligaciones y en qué fecha, haz el diagnóstico gratuito de riesgo VeriFactu de Fakturia: en 2 minutos tendrás una visión clara de tu situación.