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 opcionalcbte_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.
¿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
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:
400 con { "error": "Datos inválidos en el lote", "details": [...] } y no encola ninguno.
Agregar facturas al lote
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
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 estadoerror se pueden reintentar individualmente:
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
page/limit: paginación (máximo 100 por página)
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
Preguntas frecuentes
¿Puedo cancelar un lote en proceso?
¿Puedo cancelar un lote en proceso?
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.
¿Los errores de ARCA en un ítem afectan al resto del lote?
¿Los errores de ARCA en un ítem afectan al resto del lote?
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.¿Cómo sé cuándo terminó el lote?
¿Cómo sé cuándo terminó el lote?
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.¿Puedo agregar ítems a un lote que ya está procesando?
¿Puedo agregar ítems a un lote que ya está procesando?
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.¿Puedo enviar la fecha del comprobante (cbteFch / cbte_fch)?
¿Puedo enviar la fecha del comprobante (cbteFch / cbte_fch)?
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
- Facturación por lotes desde la app (CSV)
- Emitir tu primera factura
- Reintentar sin duplicar facturas (Idempotency-Key)
- API Reference — Lotes
- Tipos de comprobantes AFIP/ARCA
Seguí estos pasos directamente en Facturear
Ir al dashboard de Facturear y gestionar tu facturación en lotes.