Skip to main content
Un lote permite emitir muchos DTE de una sola vez: en vez de llamar POST /dte documento por documento, se sube un archivo Excel con una fila por documento (y sus ítems), y un proceso asíncrono de Fegora emite cada documento por su cuenta.
Si prefiere no armar el archivo por API, la aplicación web de Fegora ofrece una pantalla de carga guiada — vea Carga masiva (guía de usuario).

Crear un lote: POST /lote

Respuesta

Al crear el lote, Fegora ya valida el archivo y calcula cantidadOperaciones contando las filas no vacías de la columna OPERACION (menos el encabezado). Si el archivo no puede leerse, no tiene hojas, no tiene filas o falta la columna OPERACION, la solicitud falla con 400 y uno de los códigos LOT-INVEXC-2..LOT-INVEXC-5.

Formato del archivo Excel

  • Extensión: .xlsx únicamente. La validación al crear el lote usa una librería que no lee el formato antiguo .xls — un archivo .xls es rechazado con LOT-INVEXC-2 antes de procesarse.
  • La primera fila debe contener los encabezados de columna (nombres exactos, sin distinguir mayúsculas/minúsculas).
  • Cada documento ocupa una fila de encabezado (con la columna OPERACION en CREAR) seguida de una o más filas de detalle (una por ítem, sin valor en OPERACION), hasta la siguiente fila CREAR o hasta 5 filas vacías consecutivas.
El procesador de lotes actual sólo reconoce TIPO: factura, notaCredito o facturaEspecial (sin distinguir mayúsculas/minúsculas). Para emitir otros tipos de documento en volumen (notaDebito, recibo, tipos SV/DO, etc.), use POST /dte directamente en un ciclo desde su sistema, o confirme con Fegora si el procesador de lotes ya soporta más tipos.

Columnas de encabezado del documento

Columnas de detalle (una fila por ítem)

Seguir el estado: GET /lote/{id}

El valor de estado no sigue un catálogo cerrado ni una capitalización consistente en el API actual: al crear el lote se observa "Creado", y el proceso de emisión de Fegora luego lo actualiza a "enProceso" y finalmente "procesado" (minúscula). No existe un estado "Error" propio del lote — un lote puede terminar en "procesado" con cantidadOperacionesError mayor a cero, indicando que algunas filas fallaron aunque el lote en sí ya terminó de procesarse. Compare estado sin distinguir mayúsculas/minúsculas y guíese por los contadores (cantidadOperacionesEjecutadas, cantidadOperacionesError, cantidadOperacionesPendientesEjecucion) para el progreso real, no sólo por el texto de estado.
Mientras cantidadOperacionesPendientesEjecucion sea mayor a cero, siga consultando este endpoint periódicamente hasta que llegue a cero.

Actualizar un lote: PATCH /lote/{id}

Fegora usa esta misma ruta internamente para reportar el avance del procesamiento. Como integrador normalmente sólo necesita leer el lote (GET /lote/{id}), pero la ruta de actualización acepta los mismos campos:
Todos los campos son opcionales — sólo se actualizan los que se envían.

Obtener los resultados por fila

Cuando el lote termina de procesarse, resultadoArchivoUri (si está disponible) apunta a un archivo con el detalle de cada fila, incluidas las que fallaron.

Páginas relacionadas

Carga masiva (guía de usuario)

La misma funcionalidad desde la aplicación web, sin usar el API directamente.

Casos especiales

Plantillas reutilizables, resguardo de XML y otros flujos fuera de la emisión estándar.