Implementación de VeriFactu en Local: Hash Encadenado SHA-256 y Cola Asíncrona Store-and-Forward
El Reglamento de requisitos de los sistemas informáticos de facturación (VeriFactu / RD 1007/2023) exige inalterabilidad y trazabilidad en cada ticket emitido.
1. Algoritmo de Huella Digital Encadenada
Cada registro calcula una huella SHA-256 que incorpora el hash del registro precedente:
import hashlib def calcular_hash_verifactu(nif, num_factura, fecha, cuota_iva, total, hash_previo): cadena = f"NIF={nif}&NUM={num_factura}&FECHA={fecha}&CUOTA={cuota_iva:.2f}&TOTAL={total:.2f}&PREV={hash_previo}" return hashlib.sha256(cadena.encode('utf-8')).hexdigest().upper() 2. Desacoplamiento Store & Forward
Para evitar que la caja se bloquee si la sede electrónica de la AEAT sufre congestión o caída de red:
- Hilo 1 (Mostrador): Cobra en < 500 ms, imprime ticket con código QR oficial y libera al cliente.
- Hilo 2 (Worker de fondo): Sincroniza los paquetes XML firmados con la AEAT cuando la conexión esté disponible.
Documentación legal y técnica completa en VeriFactu Access y en la comparativa de software TPV.

