Skip to main content
La emision masiva es la tercera modalidad de emision del SIAT. Abris un lote sobre un punto de venta, emitis normalmente, y al cerrar el lote todas las facturas viajan juntas al SIAT comprimidas en uno o mas paquetes. Sirve cuando emitis mucho volumen y no necesitas la confirmacion del SIAT factura por factura: en vez de una llamada por documento, se hace una por paquete.
No confundir con /invoices/batch. Ese endpoint manda hasta 20 facturas en un request, pero cada una se envia al SIAT por separado y en linea. La emision masiva es otra modalidad ante el SIAT, con su propio codigo de emision y su propio ciclo.

Las tres modalidades

La masiva se emite en linea: necesita el SIAT operativo. Si el punto de venta entra en contingencia, las facturas nuevas salen como contingencia aunque haya un lote abierto; las que ya entraron al lote quedan intactas y se envian cuando lo cierres. Para contingencia, ver Contingencia.

Ciclo de un lote

1

Abrir el lote

POST /api/v1/massive sobre el punto de venta.
2

Emitir normalmente

Las facturas se crean con POST /api/v1/invoices como siempre. Mientras el lote este abierto quedan en estado MASSIVE_PENDING — con su CUF definitivo, listas para imprimir y entregar — pero todavia no viajaron al SIAT.
3

Cerrar el lote

POST /api/v1/massive/end. Se arman los paquetes, se envian y se validan. Cada factura queda ACCEPTED o REJECTED con su motivo.
4

Rectificar, si hubo rechazos

POST /api/v1/massive/rectify regenera las rechazadas y las devuelve a la cola. Despues volves a cerrar.

Abrir un lote

POST /api/v1/massive Es idempotente: si el punto de venta ya tiene un lote abierto, la llamada devuelve ese lote en vez de crear otro. Un punto de venta no puede tener dos lotes abiertos a la vez.
Respuesta 201
Si el sector no esta soportado o la empresa no lo tiene autorizado ante el SIN, la respuesta es 422 con SECTOR_NOT_SUPPORTED o SECTOR_NOT_AUTHORIZED. La validacion se hace al abrir a proposito: descubrirlo al cerrar significaria tener el lote entero ya emitido.

Cerrar el lote

POST /api/v1/massive/end
En lotes grandes esta llamada puede tardar varios minutos: envia y valida cada paquete contra el SIAT. Configura el timeout de tu cliente HTTP en consecuencia.
Es reentrante. Si un cierre se corta a mitad, volver a llamarlo retoma donde quedo: los paquetes ya validados no se reenvian.
Respuesta 200
El message distingue tres desenlaces que no hay que confundir:
  • Sin facturas — el lote se cerro vacio, no habia nada que enviar.
  • Todo aceptadofacturasRechazadas y packsRechazados en 0.
  • Con rechazos — parte del lote quedo REJECTED; hay que rectificar.

Ver el lote

GET /api/v1/massive/{posId} Devuelve el lote abierto del punto de venta con el detalle de cada paquete: cuantas facturas lleva, el receptionCode que devolvio el SIAT y su estado.
Respuesta 200
Estados de un paquete:

Rectificar rechazos

POST /api/v1/massive/rectify A las facturas que el SIAT rechazo se les regenera el CUF, el XML, la firma y el QR contra el CUFD vigente, y vuelven a la cola del lote. Despues hay que cerrar de nuevo con /massive/end para reenviarlas. Las facturas ya aceptadas no se tocan: su CUF esta validado por el SIAT y regenerarlo cambiaria un documento fiscal firme.
Respuesta 200

Estados de la factura en masiva

Una factura en MASSIVE_PENDING ya tiene su CUF definitivo y su QR: podes entregarla e imprimirla. El SIAT validara ese mismo documento cuando cierres el lote.

Limites

Si el lote tiene mas facturas que el limite por paquete, se parte solo en tantos paquetes como haga falta.