← Volver al índice

Guía Técnica: Integración VeriFactu (SOAP, XML y Firma Digital)

VeriFactu AEAT SOAP / XML Firma XAdES Flutter & Spring Boot

El Reto del "Sobre Perfecto"

La implementación del reglamento VeriFactu (normativa de la Agencia Tributaria al amparo de la Ley 11/2021 de medidas de prevención del fraude fiscal y el Real Decreto 1007/2023) exige que los sistemas informáticos de facturación garanticen la inalterabilidad, trazabilidad, legibilidad y conservación de todos los registros de ventas. El objetivo fundamental es erradicar el denominado "software de doble uso" o contabilidades paralelas.

Técnicamente, enviar una factura a la AEAT no se limita a transmitir una estructura de datos JSON. Es un ejercicio de precisión burocrática comparable a enviar una carta certificada donde el envoltorio o sobre (el encabezado SOAP Header respaldado por la norma WS-Security) debe construirse con exactitud matemática. Si la canonización de la firma digital X.509 o la jerarquía de etiquetas difiere por un solo carácter de la especificación oficial, los servidores de la AEAT rechazarán la petición en la capa de transporte antes de llegar a leer el cuerpo del mensaje (SOAP Body).

📨

Protocolo Estricto

SOAP 1.1 / 1.2 sobre HTTPS mTLS con validación de esquema WSDL estricto.

🔐

Seguridad Criptográfica

Encabezado WS-Security firmado mediante certificado digital X.509 de emisor.

📱

Desafío Cliente Móvil

Flutter y Dart carecen de motor nativo para serializar y firmar WS-Security.

Análisis de Complejidad Criptográfica y Estrategia

Al evaluar el desarrollo del software Novapay para terminales punto de venta (TPV) en Android, iOS y Windows, analizamos el esfuerzo requerido para implementar la pila criptográfica VeriFactu de forma nativa frente a delegarla en un servidor intermedio.

Anatomía del Problema SOAP

Distribución del esfuerzo de desarrollo en clientes ligeros. Como se observa, la construcción y canonización del sobre de seguridad representa más del 65% de la carga técnica total.

Estrategia: Nativo vs. Intermediario

Comparativa de riesgos y mantenibilidad entre intentar empaquetar WS-Security en el cliente Dart vs. desacoplar la firma en un Middleware especializado en Spring Boot.

Conclusión Técnica: Implementar la firma nativa en tablets TPV incrementa la probabilidad de fallos por diferencias entre almacenes de certificados de Android, iOS y Windows. El Middleware centraliza los certificados y garantiza la conformidad tributaria.

Arquitectura de Integración Novapay

El sistema se diseñó utilizando un patrón de arquitectura desacoplada. La aplicación TPV en Flutter envía una petición HTTP/REST ligera con los datos de la venta en formato JSON. El backend Spring Boot valida el DTO, recupera el hash criptográfico de la factura anterior, genera la nueva huella SHA-256 encadenada, aplica la firma digital X.509 utilizando el almacén de claves (KeyStore) de la empresa y realiza la transmisión SOAP con los servidores de la Agencia Tributaria.

graph LR User((TPV Flutter / App)) -- JSON HTTP/REST --> Middleware[Spring Boot Proxy Novapay] subgraph "Middleware Backend (Java 21)" Middleware -- 1. Valida DTO --> Service[Invoice Service] Service -- 2. Hash SHA-256 --> Hash[Firmador Hash Encadenado] Service -- 3. Firma X.509 --> Cert[Certificado .p12 / KeyStore] Service -- 4. Genera SOAP --> CXF[Cliente SOAP / WSDL] end CXF -- HTTPS / WS-Security --> AEAT((Servidores AEAT VeriFactu)) style User fill:#e1f5fe,stroke:#0288d1,stroke-width:2px style Middleware fill:#ffecb3,stroke:#fbc02d,stroke-width:2px style Cert fill:#e1bee7,stroke:#714b67,stroke-width:2px style AEAT fill:#ffcdd2,stroke:#d32f2f,stroke-width:2px

Arsenal de Librerías Dart Investigadas

En caso de requerir una ejecución cliente pura ("Hard Mode" sin servidor intermedio), se investigó la compatibilidad y viabilidad de las librerías del ecosistema Dart/Pub.dev para emular la pila SOAP en dispositivos móviles y de escritorio.

Servicios Web SOAP Definidos por la AEAT

La normativa VeriFactu establece un conjunto estandarizado de servicios web definidos por archivos WSDL. En el flujo operativo habitual de un TPV Novapay, cada tipo de evento en caja activa una llamada a la operación correspondiente:

Servicio (WSDL) Operación Función Operativa TPV / Novapay
SuministroFacturas AltaFactu Envío e inscripción inmediata del registro de facturación de expedición al completar un cobro de venta.
SuministroFacturas AnulacionFactu Registro de anulación o corrección de facturas emitidas por error o devolución de mercadería.
Consultas ConsultaLRFacturas Auditoría y cotejo periódico entre la base de datos local del negocio y los libros de la AEAT.
Verificacion Veri*Factu Validación externa de la huella digital y el código QR impreso en el ticket o factura recibida por el cliente.

🔍 Detalle de Seguridad Criptográfica

Cada petición transmitida debe incrustar la marca temporal de envío y el bloque ds:Signature. El encadenamiento se garantiza introduciendo la huella SHA-256 de la factura inmediatamente anterior como parámetro de entrada obligatorio del registro actual.

Simulador Interactivo de "Sobre" SOAP

Experimente la rigidez del protocolo WS-Security. Haga clic en las etiquetas para construir la jerarquía del encabezado SOAP. El validador simula la verificación que ejecutan los servidores de la Agencia Tributaria.

📬

Esperando envío...

Configure el encabezado en el orden jerárquico estricto exigido por la AEAT.

← Volver a la portada ↑ Volver arriba
🏠