Skip to main content

Facturación masiva en lotes

La facturación en lotes te permite emitir múltiples facturas electrónicas en una sola operación asincrónica. Es ideal para e-commerce, facturación mensual recurrente, sistemas ERP y cualquier caso donde necesitás procesar muchas facturas juntas.

Lotes desde el dashboard (CSV)

Si cargás comprobantes con archivo CSV desde la web (sin armar integración propia), el flujo, las columnas y el archivo de ejemplo están detallados en Facturación por lotes desde la app. En la web hay dos caminos: Cargar CSV (hasta 500 facturas o 2 MB, pasa por la tabla) y Subir CSV grande (hasta 512 MB, unas 4,8 millones de facturas: el archivo se sube una sola vez y lo emitimos en lotes de 500). Ver Dos formas de subir el CSV. Incluye la columna opcional cbte_fch, correlatividad de fechas dentro del lote y contra ARCA. En el dashboard, el lote sale siempre del CUIT activo (el que elegiste en el selector del header): el CSV ya no lleva columna de CUIT emisor. El CSV también acepta una columna email (o mail/correo): cada factura se manda sola a esa dirección apenas ARCA la autoriza. Por API no hay CUIT activo: cada ítem indica su emisor con cuitId o cuit y, si no mandás ninguno, se usa el CUIT por defecto de la cuenta.

Fecha del comprobante (cbteFch) en la API

En cada ítem que envíes al batch (mismo cuerpo que una factura suelta en /api/invoices), podés incluir el campo opcional cbteFch en formato YYYYMMDD. Si no lo enviás, Facturear usa la fecha actual al ejecutar el trabajo contra ARCA. Reglas que aplican igual que en ARCA:
  • Por CUIT + punto de venta + tipo de comprobante, la fecha del nuevo comprobante no puede ser menor que la del último comprobante autorizado en ese circuito.
  • Orden dentro del lote: para el mismo circuito, las fechas efectivas deben ser no decrecientes en el orden en que se procesan los ítems.
Para facturación retroactiva (por ejemplo cerrar un mes anterior), solo es coherente si no emitiste después con fechas más nuevas en ese mismo punto de venta y tipo.

¿Cuándo usar lotes?

Los lotes procesan las facturas de forma asincrónica. Enviás el lote, Facturear lo procesa con ARCA y podés consultar el estado cuando quieras. No necesitás esperar a que termine para continuar con otras operaciones.

Flujo de trabajo con lotes


Crear un lote

El cuerpo es un array donde cada elemento tiene el mismo formato que una factura suelta (ver Emitir tu primera factura). Cada ítem puede tener su propio cuitId, tipo de comprobante, receptor e importes, y un emailTo opcional (hasta 5 direcciones) para que el PDF se mande solo cuando ARCA la autoriza:
Respuesta:
Antes de encolar, Facturear valida todos los ítems. Si alguno tiene datos inválidos, la API responde 400 con { "error": "Datos inválidos en el lote", "details": [...] } y no encola ninguno.

Agregar facturas al lote

El cuerpo es directamente un array de facturas, con el mismo formato que al crear el lote (hasta 500 por llamada):
Mandá un header Idempotency-Key en cada POST o PATCH de lote: si la llamada se corta y la reenviás con la misma clave, recibís el mismo batchId y ninguna factura se duplica. Cada ítem queda identificado como <clave>:<posición>. Ver Reintentar sin duplicar facturas.
Podés agregar facturas en múltiples llamadas al mismo lote mientras no haya terminado. Si el lote ya está en completed, completed_with_errors o error, la API responde 400: en ese caso creá un lote nuevo con POST /api/invoices.

Consultar el estado del lote

Respuesta:
El status del lote pasa por pending y processing y termina en completed, completed_with_errors o error. Cada ítem queda en completed (con el CAE en responseBody) o en error (con los mensajes de ARCA o de validación).

Manejar errores y reintentos

Los ítems en estado error se pueden reintentar individualmente:
El reintento vuelve a encolar el ítem con los mismos datos: sirve para errores transitorios (ARCA caído, timeouts, un certificado que ya corregiste). Cada ítem admite hasta 5 reintentos manuales. Si el error está en los datos (por ejemplo, un CUIT de receptor equivocado), emití una factura nueva con los datos corregidos con POST /api/invoices y un Idempotency-Key nuevo. Si el ítem falló con errorCategory: "ARCA_OUTCOME_UNKNOWN" (ARCA no respondió y la factura puede estar autorizada), no la emitas de nuevo: reintentá el ítem, que consulta a ARCA antes de volver a emitir.

Listar todos los lotes

Parámetros disponibles:
  • page / limit: paginación (máximo 100 por página)
La lista incluye los lotes del entorno de tu API key (producción u homologación).

Ejemplo completo: facturación mensual de un SaaS

Este script procesa todos los clientes activos de un SaaS y emite una factura mensual para cada uno, en lotes de hasta 500:

Límites y consideraciones

Aunque los lotes son asincrónicos, ARCA puede tener límites de tasa. Si procesás volúmenes muy altos, implementá backoff exponencial en los reintentos de errores de ARCA.

Preguntas frecuentes

No se puede cancelar un lote que ya está siendo procesado. Los ítems que ya obtuvieron CAE están emitidos y son válidos. Si necesitás anularlos, debés emitir Notas de Crédito.
No. Cada ítem del lote se procesa de forma independiente. Si un ítem falla por un error de ARCA (CUIT inválido, etc.), el resto sigue procesándose normalmente y el lote termina en completed_with_errors.
Consultá el lote con GET /api/invoices/batches/{batchId} hasta que el status sea completed, completed_with_errors o error, o suscribite a invoice.completed/invoice.failed (resultado de cada factura) y batch.completed (fin del lote) con webhooks.
Sí, mientras el lote esté en pending o processing podés seguir agregando facturas con PATCH /api/invoices/batches/{batchId}. Los nuevos ítems se encolan y se procesan. Una vez terminado, ya no acepta ítems nuevos.
Sí: en API usá cbteFch (YYYYMMDD) por ítem; en CSV del dashboard usá la columna cbte_fch (YYYYMMDD o YYYY-MM-DD). Si no lo definís, se usa la fecha actual al procesar. ARCA no permite fechas anteriores al último comprobante de ese punto de venta y tipo; dentro del lote, las fechas no pueden ir hacia atrás para el mismo circuito.

Recursos relacionados


Seguí estos pasos directamente en Facturear

Ir al dashboard de Facturear y gestionar tu facturación en lotes.