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
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
Es reentrante. Si un cierre se corta a mitad, volver a llamarlo retoma donde quedo: los paquetes ya validados no se reenvian.
Respuesta 200
message distingue tres desenlaces que no hay que confundir:
- Sin facturas — el lote se cerro vacio, no habia nada que enviar.
- Todo aceptado —
facturasRechazadasypacksRechazadosen0. - 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
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.