Reportes
El API Connect genera reportes contables por período y los devuelve como un ZIP de archivos Excel. Sirven para el cierre mensual, la conciliación y la presentación de anexos ante el MH.
Hay tres reportes, todos con la misma mecánica:
| Endpoint | Contenido |
|---|---|
GET /reports/active-documents | Documentos vigentes en el rango. |
GET /reports/voided-documents | Documentos anulados en el rango. |
GET /reports/annexes | Anexos contables (formato de libros de IVA). |
Detalles técnicos
| Método | GET |
| Autenticación | Header Authorization: Bearer odt_... (no acepta ?key=) |
| Respuesta | application/zip (descarga directa) |
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
start_date | string | Sí | Fecha de inicio, formato YYYY-MM-DD. |
end_date | string | Sí | Fecha de fin, formato YYYY-MM-DD (inclusiva). |
El rango (fecha de fin menos fecha de inicio) no puede superar los 31 días. Un rango mayor devuelve 400 de inmediato, sin generar nada. Para períodos más largos, pedí un mes a la vez.
Qué trae el ZIP
Cada ZIP contiene un archivo Excel por cada tipo de documento que la empresa efectivamente emitió en el rango. Dentro de cada Excel hay una hoja por punto de venta y una fila por documento.
Si un tipo de documento no tuvo actividad en el rango, ese archivo se omite del ZIP. Por ejemplo, si en el mes no se emitió ningún CCF, no habrá archivo de CCF — es lo esperado, no un error.
Nombres de archivo dentro del ZIP de active-documents:
| Archivo | Tipo de documento |
|---|---|
COMPROBANTES_CONSUMIDOR_FINAL.xlsx | Factura (01) |
CONTRIBUYENTES.xlsx | CCF (03) |
NOTAS_DE_CREDITO.xlsx | Nota de Crédito (05) |
SUJETOS_EXCLUIDOS.xlsx | Sujeto Excluido (14) |
El reporte es un listado (los documentos en filas de Excel), no los PDF/JSON de cada DTE. Para descargar el archivo de un documento puntual usá Descargar archivos.
Ejemplo
curl -fL -o documentos_activos.zip \
-H "Authorization: Bearer odt_xxx" \
"https://ocote.io/api/connect/reports/active-documents?start_date=2026-06-01&end_date=2026-06-30"
Los otros dos reportes son idénticos; solo cambia la ruta por voided-documents o annexes.
En Windows conviene -o nombre.zip (nombre explícito). El flag -OJ (usar el nombre que manda el servidor) puede fallar en algunos entornos Windows al renombrar el archivo entre unidades.
Errores
| HTTP | Mensaje |
|---|---|
400 | Formato de fecha invalido. Use YYYY-MM-DD |
400 | La fecha de inicio no puede ser posterior a la fecha de fin |
400 | El rango de fechas no puede ser mayor a 31 dias (un mes) |
401 | API key ausente o inválida. |
Ver también
- Listar documentos — para consultar documentos por filtros en JSON (en vez de Excel).
- Rate limits — las descargas de reportes cuentan contra el límite.
- Descargar archivos — para el PDF/JSON de un documento individual.