Facturación electrónica

Ejemplo XML Verifactu: cómo generar el archivo correctamente

Aprende paso a paso cómo generar el archivo XML Verifactu sin errores y cumplir con los requisitos de la AEAT para tus facturas electrónicas.

Pablo Gil

La implantación de Verifactu va a marcar un antes y un después en la facturación electrónica en España. Con este sistema, la Agencia Tributaria está buscando garantizar un mayor control sobre las facturas emitidas, lo que va a permitir la validación en tiempo real mientras se reduce el riesgo de errores o de fraudes fiscales.

Si eres autónomo o empresa, es fundamental comprender cómo generar correctamente un archivo XML Verifactu para cumplir con la normativa vigente. En este artículo, te explicamos paso a paso cómo hacerlo, con un ejemplo de XML Verifactu y algunos consejos clave para asegurarte de que tu facturación esté siempre en regla.

Webinar: 'Ponte al día con Verifactu'

Regístrate y resuelve todas tus dudas sobre las actualizaciones más recientes, legislación, requisitos y qué papel jugarán los programas de facturación homologados como Holded para ayudarte.

Regístrate

La importancia de generar correctamente el archivo XML Verifactu

El Sistema Verifactu ha sido desarrollado para garantizar un mayor control y trazabilidad en la facturación electrónica en España. Como parte de las medidas establecidas por la Ley Antifraude, el objetivo principal del Reglamento Verifactu es evitar el fraude fiscal y asegurar que todas las facturas sean declaradas de forma precisa y en tiempo real ante la Agencia Estatal de Administración Tributaria (AEAT).

Uno de los puntos más importantes de este sistema, es generar correctamente el archivo XML Verifactu. Este archivo debe incluir información detallada sobre las facturas emitidas y ajustarse estrictamente al formato establecido por la normativa. Cualquier tipo de error en su estructura puede provocar que rechacen el documento en la AEAT, lo que supondría incumplimientos fiscales y posibles sanciones.

Adaptarse a este nuevo sistema no solo es una obligación legal, sino que también aporta ventajas en la gestión empresarial. Ya que contar con un proceso de facturación digital normalizado te va a permitir mejorar la eficiencia, reducir errores y garantizar la transparencia de todas las operaciones.

Aunque parece un cambio complejo, con las herramientas adecuadas, la implementación de Verifactu XML es un proceso fácil y beneficioso para cualquier negocio.

Requisitos para generar el XML Verifactu según la normativa

Dentro de poco el Sistema Verifactu para autónomos o empresas será de uso obligatorio, por lo que es imprescindible que aprendas a realizar el archivo XML Verifactu de forma correcta según la normativa, es decir, estructurado de una manera precisa. Este archivo debe incluir información clave, que identifique la transacción de forma clara y transparente.

Estos son algunos de los datos esenciales que debe contener el archivo XML Verifactu:

  • Número de factura: que es el identificador único para cada transacción.
  • Datos del emisor y receptor: todos los datos fiscales tanto del emisor como del receptor de la factura.
  • Fecha de emisión: día en que se emite la factura.
  • Importe de la factura y los impuestos aplicables: desglose del valor total y los impuestos asociados.
  • Información adicional: como el tipo de operación y el método de pago utilizado.

Los autónomos y las empresas tendrán que adaptarse a nuevos sistemas de facturación capaces de generar estos archivos XML Verifactu de manera automática, de forma que cumplan estrictamente con la estructura y el formato especificado por la normativa. Si el archivo no se genera correctamente, puede que la AEAT no lo acepte, lo que podría derivar en sanciones por no cumplir con las obligaciones fiscales.

Pasos a seguir para generar un archivo XML Verifactu correcto

A la hora de comenzar a implementar Verifactu, generar correctamente el archivo XML para que sea compatible con los requisitos de la Agencia Tributaria es lo primero que debes tener en cuenta.

Por eso vamos a explicarte paso a paso todo lo que necesitas hacer para asegurarte de que tu factura electrónica cumpla con el formato adecuado. Aunque existen programas que automatizan este proceso, como Holded, entender la lógica detrás del archivo XML te va a ayudar a tener un mayor control y evitar posibles errores.

Vamos a ver un ejemplo de verifactu XML que puedes seguir como guía.

Recopila todos los datos para la factura

Antes de crear el archivo XML, es fundamental que reúnas toda la información obligatoria que debe contener la factura, tal y como hemos visto anteriormente. Estos datos son esenciales, ya que cualquier omisión puede provocar que Hacienda rechace el archivo.

Algunos de los datos imprescindibles son:

  • Número de factura, incluyendo la serie si corresponde.
  • Datos del emisor: nombre o razón social y NIF.
  • Datos del receptor o cliente.
  • Fecha de emisión y, si aplica, fecha de cobro.
  • Descripción del producto o servicio facturado.
  • Importe total, con desglose de impuestos como IVA, IRPF, etc.

Este paso es clave en cualquier ejemplo XML Verifactu, ya que garantiza que todos los campos requeridos estén disponibles antes de estructurar el documento.

Estructura la información en el archivo XML

Una vez que tienes todos los datos listos, el siguiente paso es darles forma dentro del archivo XML. Puedes usar un programa de facturación que genere automáticamente el XML, pero también es posible hacerlo manualmente si tienes conocimientos técnicos.

El archivo XML debe respetar una estructura jerárquica con etiquetas específicas, como en este ejemplo:

<Factura>
  <Cabecera>
    <Version>1.0</Version>
    <Emisor>
      <NombreRazon>Tu Empresa S.L.</NombreRazon>
      <NIF>12345678X</NIF>
    </Emisor>
  </Cabecera>
  <DetalleFactura>
    <NumeroFactura>F2025-001</NumeroFactura>
    <FechaEmision>2025-04-07</FechaEmision>

    <Cliente>
      <Nombre>Juan Pérez</Nombre>
      <NIF>87654321Z</NIF>
    </Cliente>
    <ImporteTotal>121.00</ImporteTotal>
    <Impuestos>
      <IVA>
        <Base>100.00</Base>
        <Cuota>21.00</Cuota>
      </IVA>
    </Impuestos>
  </DetalleFactura>
</Factura>

Este sería un ejemplo de Verifactu XML básico. En realidad, la estructura puede incluir más elementos, como la firma digital, un encadenamiento con la factura anterior o datos de control, pero lo más importante es que cada campo esté correctamente etiquetado y posicionado.

Valida el archivo XML antes de enviarlo

El último paso, pero no por ello menos importante, es validar el archivo XML antes de enviarlo a Hacienda. Esto te asegurará que cumple con el estándar exigido y que no hay errores de sintaxis o de datos.

Puedes hacerlo de varias formas:

  • Utilizar validadores XML online gratuitos.
  • Usar herramientas específicas proporcionadas por desarrolladores de software de facturación.
  • Verificarlo directamente con tu proveedor de facturación electrónica, si ofrece esta funcionalidad.

Holded incorpora la validación automática del XML, pero si generas el archivo de forma manual o con herramientas propias, te aconsejamos que no te saltes esta revisión: comprueba que el archivo sea legible, estructurado y fiel a los requisitos técnicos exigidos.

Anticípate a la llegada de Verifactu con Holded

Holded es un software que te permite crear, gestionar y enviar facturas fácilmente en la nube, garantizando el cumplimiento legal del Reglamento VeriFactu.

Descubre más

Ejemplo de la estructura del XML Verifactu

A la hora de generar un archivo XML Verifactu, es esencial seguir la estructura y los estándares establecidos por la Agencia Tributaria para garantizar su correcta validación y aceptación. Por eso, vamos a plantear dos ejemplos de XML verifactu, uno correcto y otro con errores, para resolver así posibles dudas que puedan surgir a la hora de realizarlos.

Ejemplo correcto

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"
                  xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <soapenv:Header/>
    <soapenv:Body>
        <sum:RegFactuSistemaFacturacion>
            <sum:Cabecera>
                <sum1:IDVersion>1.0</sum1:IDVersion>
                <sum1:ObligadoEmision>
                    <sum1:NombreRazon>Empresa Ejemplo S.L.</sum1:NombreRazon>
                    <sum1:NIF>B12345678</sum1:NIF>
                </sum1:ObligadoEmision>
                <sum1:IDFactura>
                    <sum1:IDEmisorFactura>B12345678</sum1:IDEmisorFactura>
                    <sum1:NumSerieFactura>F2025-001</sum1:NumSerieFactura>
                    <sum1:FechaExpedicionFactura>2025-04-07</sum1:FechaExpedicionFactura>
                </sum1:IDFactura>
            </sum:Cabecera>
            <sum:RegistroFactura>
                <sum1:DatosFactura>
                    <sum1:DescripcionOperacion>Servicios de 
consultoría</sum1:DescripcionOperacion>
                    <sum1:ImporteTotal>1000.00</sum1:ImporteTotal>
                    <sum1:Impuestos>
                        <sum1:DetalleIVA>
                            <sum1:TipoImpositivo>21</sum1:TipoImpositivo>
                            <sum1:BaseImponible>826.45</sum1:BaseImponible>
                            <sum1:CuotaRepercutida>173.55</sum1:CuotaRepercutida>
                        </sum1:DetalleIVA>
                    </sum1:Impuestos>
                </sum1:DatosFactura>
            </sum:RegistroFactura>
        </sum:RegFactuSistemaFacturacion>
    </soapenv:Body>
</soapenv:Envelope>
  • Encabezado (<soapenv:Envelope>): Define el espacio de nombres y las estructuras necesarias para el mensaje SOAP.
  • Cuerpo (<soapenv:Body>): Contiene la información principal de la factura.
  • Cabecera (<sum:Cabecera>): Incluye la versión del esquema, datos del emisor y la identificación de la factura.
  • Registro de Factura (<sum:RegistroFactura>): Detalla la descripción de la operación, importe total e impuestos aplicados.

Este formato de estructura sigue las especificaciones detalladas en la documentación oficial de la Agencia Tributaria.

Ejemplo incorrecto con errores

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:sum="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"
                  xmlns:sum1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
    <soapenv:Header/>
    <soapenv:Body>
     <sum:RegFactuSistemaFacturacion>
            <sum:Cabecera>
                <sum1:IDVersion>1.0</sum1:IDVersion>
                <sum1:ObligadoEmision>
                    <sum1:NombreRazon>Empresa Ejemplo S.L.</sum1:NombreRazon>
                    <!-- Falta el NIF del emisor -->
                </sum1:ObligadoEmision>
                <sum1:IDFactura>
                    <sum1:IDEmisorFactura>B12345678</sum1:IDEmisorFactura>
                    <sum1:NumSerieFactura>F2025-001</sum1:NumSerieFactura>
                    <!-- Fecha de expedición en formato incorrecto -->
                    <sum1:FechaExpedicionFactura>07-04-2025</sum1:FechaExpedicionFactura>
                </sum1:IDFactura>
            </sum:Cabecera>
            <sum:RegistroFactura>
                <sum1:DatosFactura>
                    <sum1:DescripcionOperacion>Servicios de consultoría</sum1:DescripcionOperacion>
                    <sum1:ImporteTotal>1000.00</sum1:ImporteTotal>
                    <sum1:Impuestos>
                        <sum1:DetalleIVA>
                            <sum1:TipoImpositivo>21</sum1:TipoImpositivo>
                            <sum1:BaseImponible>800.00</sum1:BaseImponible>
                            <!-- Cuota repercutida incorrecta; debería ser 168.00 -->
                            <sum1:CuotaRepercutida>173.55</sum1:CuotaRepercutida>
                        </sum1:DetalleIVA>
                    </sum1:Impuestos>
                </sum1:DatosFactura>
            </sum:RegistroFactura>
        </sum:RegFactuSistemaFacturacion>
    </soapenv:Body>
</soapenv:Envelope>

Errores identificados:

Falta del NIF del emisor:

  • Error: El campo <sum1:NIF> dentro de <sum1:ObligadoEmision> es obligatorio. Su ausencia impide la correcta identificación del emisor.
  • Corrección: Añadir el NIF correspondiente, por ejemplo: <sum1:NIF>B12345678</sum1:NIF>.

Formato incorrecto de la fecha de expedición:

  • Error: La fecha en <sum1:FechaExpedicionFactura> está en formato dd-MM-yyyy (07-04-2025), mientras que el formato requerido es yyyy-MM-dd (2025-04-07).
  • Corrección: Ajustar la fecha al formato correcto: <sum1:FechaExpedicionFactura>2025-04-07</sum1:FechaExpedicionFactura>.

Discrepancia en la cuota repercutida del IVA:

Error: La base imponible es de 800.00 y el tipo impositivo del 21% debería resultar en una cuota de 168.00

Errores comunes en la generación del archivo XML Verifactu

Aunque el sistema Verifactu sigue en proceso de implantación definitiva, ya podemos anticipar algunos de los errores más comunes que suelen darse al generar archivos XML para otros sistemas similares. Como Verifactu, el SII (Suministro Inmediato de Información) o TicketBAI tienen un uso similar.

Falta de datos obligatorios

Es el error más común, pese a que suelen ser datos que tenemos tan interiorizados que incluimos de forma automática. Omitir esta información es un error que la Agencia Tributaria considera inaceptable. Algunos ejemplos clave:

  • No incluir el número de factura o la serie correspondiente.
  • Olvidar los datos fiscales del receptor (nombre o razón social, NIF).
  • No indicar la fecha de emisión o el importe total.

Consejo: Antes de generar el archivo XML, asegúrate de que todos los campos obligatorios están correctamente completados.

Formato incorrecto de los campos

Aunque todos los datos estén presentes, si no sigues el formato exigido por la Agencia Tributaria, el XML puede resultar inválido. Estos son los errores de formato más comunes:

  • Fechas mal escritas: siempre deben seguir el formato YYYY-MM-DD. 
  • Importes con símbolos o comas: No se deben usar signos como € o comas decimales. Usa puntos (.) para decimales, como 1000.00, y evita 1.000,00 o €1000.

Consejo: Si generas el archivo XML manualmente o desde una plantilla, revisa siempre que los formatos coincidan con los establecidos en la documentación oficial.

Errores de validación del archivo XML

Incluso si todos los datos son correctos y están en el formato adecuado, un fallo en la estructura del XML puede invalidar el documento completo.

  • Etiquetas mal escritas o sin cerrar correctamente.
  • Orden incorrecto de los nodos XML.
  • Falta de coherencia en los espacios de nombres (xmlns).

Consejo: utiliza siempre un validador XML antes de enviar el archivo. Muchas plataformas de facturación lo hacen automáticamente, pero también puedes usar herramientas online gratuitas. Si el XML no pasa la validación, no se podrá enviar correctamente a Hacienda.

¿Cómo evitar estos errores?

Generar el archivo XML Verifactur de forma correcta no solo te ahorra tiempo, sino que asegura que tus registros de facturación se gestionen correctamente desde el principio. Revisa cada archivo como si fuera tu tarjeta de presentación ante Hacienda: asegúrate de que esté claro, limpio y bien estructurado.

Utilizar un software actualizado y adaptado a los requisitos técnicos de Verifactu, como Holded, te ayudará a generar archivos correctos sin errores que puedan comprometer a tu empresa ante la Agencia Tributaria.

Verifactu estará conectado con Holded

Holded es un software que te permite crear, gestionar y enviar facturas fácilmente en la nube, garantizando el cumplimiento legal del Reglamento VeriFactu.

Descubre más

Suscríbete a nuestra newsletter.

En Holded traducimos lo complejo y lo hacemos fácil e intuitivo. Utiliza nuestro programa junto con tu asesoría y comprende mejor el estado de tu negocio.

Descubre cómo

Te recomendamos