Saltar al contenido principal

Exportar gastos BETA

Endpoint en beta

Puede cambiar de contrato, comportamiento o ser retirado antes de su release definitivo.

Exporta los gastos cargados en el módulo Gastos del ERP en un período: una fila por gasto con su cuenta, su categoría y subcategoría, sus totales y, si los pedís, sus medios de pago. Es el mismo listado del reporte de gastos del ERP, pensado para llevarlo a un sistema de BI, contabilidad o control de presupuesto.

Requiere el módulo Gastos

El endpoint solo responde si la empresa tiene el módulo Gastos activo. Si no lo tiene, responde 400 con el mensaje El modulo de Gastos esta deshabilitado.

En el ERP, un gasto se imputa a una cuenta de gasto (por ejemplo "Alquiler" o "Luz"), y la cuenta pertenece a una categoría y, opcionalmente, a una subcategoría (por ejemplo "Servicios › Energía"). Cada fila trae las tres cosas, con nombre e ID, así podés agrupar sin consultar nada más.


Exportar gastos paginado​

GETBETA/integraciones/terceros/exportar/gastos/paginado

Query parameters​

ParámetroTipoRequeridoDescripción
sucursalIdnumberSíID de la sucursal a exportar. Debe ser una de las sucursales habilitadas para tu integración; si no, responde 403
desde + hastastringUno de los tres gruposRango de fechas en formato YYYY-MM-DD. Máximo 30 días entre desde y hasta
fechastringUno de los tres gruposFecha específica YYYY-MM-DD (equivale a desde=fecha&hasta=fecha)
anio + messtringUno de los tres gruposAño YYYY y mes MM. Exporta el mes completo sin límite de 30 días
incluirMediosPagobooleanNoSi es true, incluye con qué se pagó cada gasto (resuelto sobre los gastos de la página). Omitir equivale a false
pagenumberNoNúmero de página base 1. Default 1
pageSizenumberNoTamaño de página. Default 25, máximo 500 (valores mayores se recortan a 500)

Se requiere exactamente uno de los tres grupos de período, además de sucursalId. Precedencia cuando se envían varios: desde+hasta > fecha > anio+mes.

Acepta también comprobanteTipo=7, por simetría con venta y compra; no cambia el resultado. Cualquier otro valor responde 400.

Límite de 30 días para el rango desde/hasta

Si enviás desde y hasta, el rango no puede superar los 30 días. Para períodos mayores, usá anio+mes (que exporta el mes completo) o paginá en ventanas de 30 días.

Respuesta​

export interface GastosPaginadoResult {
items: GastoTotal[];
totalRegistros: number; // total de gastos del período (una fila por gasto)
totalPaginas: number;
paginaActual: number;
pageSize: number;
}

export interface GastoTotal {
facturaId: number; // ID del gasto (es un comprobante del ERP)
comprobanteTipo: number; // enum ComprobanteTipo: siempre 7 = factura de gasto
estado: number; // enum ComprobanteEstado: hoy siempre 0 en gastos (ver abajo)
tipoDocumento: number; // enum TipoDocumento
fecha: string; // fecha+hora del gasto
fechaText: string; // "YYYY-MM-DD"
horaText: string; // "HH:mm:ss"
numeroFull: string; // ej. "0001-00000012"
sucursalId: number;
sucursal: string;
appId?: number;
entidadId: number; // ID de la cuenta de gasto
cuenta: string; // nombre de la cuenta de gasto, ej. "Alquiler"
categoria?: string; // categoría de la cuenta, ej. "Servicios"
categoriaId?: number;
subcategoria?: string; // subcategoría dentro de la categoría, ej. "Energía"
subcategoriaId?: number;
detalle?: string; // observación del gasto
subTotal: number;
total: number;
descuento: number;
recargo: number;
iva: number;
impuestosTotal: number;
cantidad: number;
formasPagoText?: string; // solo con incluirMediosPago
formasPago?: GastoFormaPago[]; // solo con incluirMediosPago
}

export interface GastoFormaPago {
facturaId: number;
tipo: number; // enum TipoMedio
tipoText: string; // ej. "Efectivo", "Transferencia"
detalle?: string;
importe: number;
}

Cada gasto sale una sola vez, aunque se haya pagado con varios medios o su cuenta tenga varias categorías. Si la cuenta tiene más de una categoría, se informa una sola (la misma que usa el reporte de Compras y Gastos del ERP), así la suma de total cierra con ese reporte. Una cuenta sin categoría trae categoria y categoriaId en null.

Los gastos no tienen ciclo de estados en el ERP: se guardan con estado: 0 y, si se eliminan, se borran y dejan de aparecer en la exportación. Para detectar un gasto eliminado, volvé a consultar el período y compará contra lo que ya procesaste.

Para recorrer todo el período: pedí page=1, leé totalPaginas en la respuesta y continuá con page=2, 3, … hasta completar. El orden es estable entre páginas (sin solapamiento).

Rate limiting​

Comparte el bucket corto de los endpoints paginados de comprobante (ventaitems/paginado, ventatotales/paginado, compraitems/paginado y compratotales/paginado): 30 segundos en producción (3 segundos en test). No podés recorrer gastos en paralelo con ventas o compras: el bucket es único entre todos.

Ejemplos​

# Gastos de un mes completo, con medios de pago
curl --request GET \
--url 'https://api.test-ninox.com.ar/integraciones/terceros/exportar/gastos/paginado?sucursalId=1&anio=2026&mes=09&page=1&pageSize=200&incluirMediosPago=true' \
--header 'X-NX-TOKEN: {TU_TOKEN}'

# Rango de 15 días (desde/hasta), primera página
curl --request GET \
--url 'https://api.test-ninox.com.ar/integraciones/terceros/exportar/gastos/paginado?sucursalId=1&desde=2026-09-01&hasta=2026-09-15&page=1&pageSize=100' \
--header 'X-NX-TOKEN: {TU_TOKEN}'

Para automatizarlo, usá el mismo script de exportar venta cambiando la URL por exportar/gastos/paginado y dejando 35 segundos entre páginas.


Ver también​