·6 min de lectura

Veri*Factu y AEAT: cómo se conecta tu facturación con Hacienda

Cada factura que emites viaja en tiempo real a los servidores de la Agencia Tributaria. Te explicamos qué pasa técnicamente, qué datos recibe Hacienda y qué garantías ofrece el sistema para ti y tu cliente.

verifactuaeatsoftware-facturacion

La idea detrás de la conexión

Antes de Veri*Factu, una factura era un documento privado: la emitías, la guardabas y Hacienda solo la veía si había una inspección. Con Veri*Factu, cada factura genera un registro firmado que se envía a la AEAT en el momento de la emisión. No es una copia; es un resumen criptográfico que Hacienda usa para verificar que la factura no ha sido modificada ni eliminada después.

Esto cambia la relación entre tu programa de facturación y Hacienda: de reactiva (inspecciones puntuales) a continua (registro en tiempo real).

Los tres componentes de la conexión

1. Tu certificado digital como llave de acceso

La comunicación con la AEAT no usa usuario y contraseña. Usa mTLS (mutual TLS): tanto el servidor de la AEAT como tu programa se autentican entre sí mediante certificados digitales. El tuyo es el certificado FNMT (.pfx o .p12) que ya usas para otros trámites con la Administración.

Sin ese certificado instalado en el software, la conexión se rechaza antes de que llegue ningún dato. Este es el primer punto donde pueden surgir problemas: certificados caducados, en formato RC2 antiguo incompatible con OpenSSL 3, o con el NIF incorrecto.

2. El XML SOAP: el formato del mensaje

Los datos de tu factura no viajan en JSON ni en PDF. El protocolo oficial es SOAP (XML), conforme al esquema SuministroInformacion.xsd publicado por la AEAT. Cada mensaje incluye, entre otros:

  • IDFactura: NIF del emisor, número de serie y fecha de expedición.
  • Desglose IVA: base imponible, tipo impositivo y cuota para cada tramo.
  • DescripcionOperacion: texto que describes en la factura (obligatorio; no puede ser genérico).
  • SistemaInformatico: identificación del programa que genera la factura (nombre, versión, NIF del fabricante).
  • Encadenamiento: la huella de la factura anterior en la misma serie, o la indicación de que es la primera.
  • Huella: el hash SHA-256 de los campos canónicos de esta factura.

3. La huella SHA-256: la firma inviolable

El elemento más importante del registro es la huella. Se calcula concatenando en un orden exacto los campos clave de la factura (NIF emisor, número de serie, fecha, tipo, importes, huella de la factura anterior…) y aplicando SHA-256. El resultado es una cadena hexadecimal de 64 caracteres en mayúsculas.

La clave está en el encadenamiento: la huella de cada factura depende de la huella de la anterior. Si alguien modifica o elimina una factura intermedia, todas las huellas posteriores dejan de ser válidas. Es el mismo principio que una blockchain, aplicado a la facturación.

El flujo completo paso a paso

  1. Creas o guardas la factura en tu programa.
  2. El software calcula la huella SHA-256 concatenando los campos canónicos con los importes en formato AEAT (210.0, no 210.00).
  3. Se construye el mensaje XML SOAP con todos los datos del registro de alta (RegistroAlta).
  4. El mensaje se envía mediante HTTP POST con mTLS al endpoint de la AEAT:
    https://www1.agenciatributaria.gob.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP
  5. La AEAT valida el esquema, el NIF y la huella. Responde con un estado (Correcto, ParcialmenteCorrecto o Incorrecto) y, si todo va bien, un CSV (Código Seguro de Verificación).
  6. El CSV y un código QR se incluyen en el PDF de la factura. Tu cliente puede escanearlos para verificar la factura en la sede electrónica de la AEAT.

¿Qué recibe exactamente la AEAT?

Es una pregunta frecuente. La AEAT recibe el registro del alta, no el PDF ni los adjuntos. Recibe los metadatos fiscales: identificación de emisor y receptor, importes, tipo de IVA, descripción de la operación y la huella. No recibe archivos binarios, imágenes ni datos bancarios.

Lo que sí queda registrado de forma permanente en la AEAT es que la factura existe, con esos importes, en esa fecha, y que su huella es la que indica el registro. Cualquier discrepancia posterior es detectable.

¿Qué ocurre si la conexión falla?

La conexión con la AEAT puede fallar puntualmente (mantenimiento, timeout, error de red). Un sistema bien diseñado como Simple*Factu gestiona esto con un sistema de jobs con reintentos y backoff exponencial: el registro se vuelve a intentar automáticamente hasta 8 veces antes de marcarse como fallido y notificar al operador. La factura queda registrada localmente desde el primer momento; el envío a la AEAT se completa en cuanto la conexión se restablece.

Entorno de preproducción para pruebas

La AEAT ofrece un entorno de preproducción (prewww1.aeat.es) donde puedes enviar facturas de prueba con el mismo certificado real, sin consecuencias fiscales. Es el entorno habitual para validar que tu configuración es correcta antes de empezar a emitir facturas reales.

Simple*Factu usa preproducción por defecto en el entorno QA y producción en el entorno live. No hay riesgo de enviar facturas de prueba a Hacienda por accidente si usas el panel de desarrollo.

Resumen

La conexión entre tu facturación y la AEAT es técnicamente sencilla: un mensaje XML firmado con tu certificado, que incluye una huella encadenada con la factura anterior. Lo que hace especial a Veri*Factu no es la tecnología, sino la consecuencia: cada factura queda registrada de forma inmutable en Hacienda en el momento de emitirla. Para la mayoría de autónomos y pymes, esto es transparente si el software está bien configurado.

¿Listo para cumplir con Veri*Factu?

Simple*Factu es la API y aplicación que gestiona el envío de facturas a la AEAT por ti. Empieza gratis.

Crear cuenta gratis