SII AEAT: Procesamiento Paralelo de Facturas con QR por Lotes

Las empresas españolas sujetas al SII (Suministro Inmediato de Información) están obligadas a remitir los datos de sus facturas a la AEAT en un plazo máximo de cuatro días desde su emisión o recepción. En escenarios de gran volumen —almacenes logísticos, distribuidores mayoristas o gestorías que procesan miles de facturas diarias con código QR— el procesamiento secuencial resulta inviable dentro de ese margen temporal. El uso de hilos paralelos con MaxParallelThreads permite a la aplicación procesar varias imágenes simultáneamente, reduciendo significativamente el tiempo total de ejecución y garantizando el cumplimiento del plazo SII.

El procesamiento secuencial de grandes lotes de documentos o imágenes puede llevar mucho tiempo y crear cuellos de botella en aplicaciones de gran volumen. El uso de hilos paralelos permite a la aplicación procesar varias imágenes simultáneamente, lo que reduce significativamente el tiempo total de ejecución. En este ejemplo de código, demostraremos cómo configurar IronBarcode para utilizar subprocesos múltiples para una lectura de códigos de barras por lotes más rápida.

Guía de 5 pasos para usar hilos paralelos para leer códigos de barras

  • using IronBarCode;
  • using System.Threading.Tasks;
  • List<string> imagePaths = new List<string>() { "sample_a.png", "sample_b.png" };
  • BarcodeReaderOptions options = new BarcodeReaderOptions(){ Multithreaded = true, MaxParallelThreads = 4 };
  • BarcodeResults results = BarcodeReader.Read(imagePaths, options);

Explicación del código

Primero, se importan la biblioteca IronBarcode y el namespace de threading, y se define un List<string> que contiene las rutas de archivo de las imágenes a procesar. En el ejemplo anterior, "sample_a.png" y "sample_b.png" están preparados para ser escaneados.

Luego, se instancia un objeto BarcodeReaderOptions para configurar el comportamiento de escaneo. Multithreaded Adicionalmente, la propiedad ParallelProcessing se establece en true para habilitar el procesamiento paralelo. Multithreaded La propiedad MaxDegreeOfParallelism también se establece en 4, instruyendo al lector a usar hasta 4 hilos simultáneos mientras se equilibra el rendimiento con el uso de recursos del sistema. MaxParallelThreads MaxParallelThreads Read BarcodeReader.Read

Finalmente, se llama a ReadBarcodes, pasando tanto la lista de rutas de imagen como las opciones configuradas para recuperar el BarcodeResults.

Procesamiento paralelo para el cumplimiento SII y declaraciones AEAT

En un flujo de trabajo SII-compatible, el procesador de facturas recibe un directorio de imágenes escaneadas de facturas recibidas, cada una con un código QR AEAT que contiene la URL de verificación de la VERI*FACTU. El siguiente patrón ilustra cómo dimensionar correctamente MaxParallelThreads para este caso de uso:

  • Servidores de 4 núcleos (entornos de desarrollo o pymes): MaxParallelThreads = 4 ofrece un procesamiento eficiente sin saturar el sistema.
  • Servidores de 8-16 núcleos (grandes empresas con obligación SII): valores entre 8 y 12 permiten procesar varios miles de facturas por hora, cumpliendo el plazo de cuatro días de la AEAT.
  • Entornos en la nube (Azure App Service, AWS EC2): ajuste MaxParallelThreads según el número de vCPU disponibles para maximizar el rendimiento sin incurrir en costes innecesarios.

Para empresas del País Vasco que también emiten recibos bajo TicketBAI (aplicable en Bizkaia, Gipuzkoa y Araba), el mismo procesador paralelo puede reutilizarse para leer los QR de TicketBAI junto con los QR de la AEAT, unificando el flujo de verificación en un único proceso de alto rendimiento.

Una vez extraída la URL de verificación de cada QR, el sistema puede encolar las llamadas a sede.agenciatributaria.gob.es para confirmar la validez del registro VERI*FACTU antes de archivar el documento, todo dentro de los márgenes temporales exigidos por la normativa española.

Aprende a establecer el máximo de hilos paralelos con IronBarcode

¿Listo para empezar?
Nuget Descargas 2,240,258 | Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package BarCode
ejecuta una muestra observa cómo tu cadena se convierte en un código de barras.