Saltar al contenido principal

Panel del Portal

Panel ejecutivo con KPIs, gráficos, tendencias de facturación mensual y análisis de variación para el portal de proveedores.

GET/apidev/v1/reports/portal/dashboard
PermisoAPICLI_RPTPORTALPROVEEDOR_DASHBOARD
Límite de solicitudes10 req/min (ventana deslizante)
Caché120s (2 min)

Resumen​

Devuelve datos agregados sobre estados de facturas, liquidaciones, principales proveedores y tendencias de variación. Diseñado para alimentar paneles ejecutivos con una sola llamada a la API.

  • Presets de período — usá periodo para rangos rápidos (30d, 90d, 6m, 1a) o custom con fechas explícitas
  • Filtrado por proveedor — opcionalmente, restringí a un único proveedor
  • KPIs detallados — facturas pendientes, tasa de aprobación, variación promedio, diferencia acumulada y más
  • Datos listos para gráficos — facturas por estado, comparación de facturación mensual, tendencias de variación, principales proveedores, liquidaciones por estado
Límite del rango de fechas (solo modo personalizado)

Los presets de período (30d, 90d, 6m, 1a) no tienen restricción adicional — 1a cubre un año completo. Al enviar fechas personalizadas (periodo=custom u omitido), tanto startdate como enddate son obligatorios y el rango no debe superar los 93 días.


Solicitud​

Encabezados de la solicitud​

Every request to a protected endpoint requires these headers:

HeaderRequiredDescription
AuthorizationYesBearer token obtained from the Login endpoint. Format: Bearer <token>
X-API-KeyYesCompany integration key provided during onboarding. Format: gtk_xxx...
tenantYesYour assigned tenant domain (default: geotareas.com) — always send your assigned tenant
Content-TypeConditionalapplication/json — required for POST and PUT requests

Parámetros de consulta​

ParámetroTipoObligatorioPor defectoDescripción
periodostringNo30dPreset de período: 30d, 90d, 6m, 1a, custom
startdatestringNo—Fecha de inicio ISO 8601. Obligatoria cuando periodo=custom
enddatestringNo—Fecha de fin ISO 8601. Obligatoria cuando periodo=custom. Rango máximo 93 días
provider_idstringNoTodosFiltrar por un único ID de proveedor

Ejemplos de código​

curl -s "https://$TENANT/apidev/v1/reports/portal/dashboard?periodo=90d" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Campos de la respuesta​

KPIs​

CampoTipoDescripción
pending_invoicesnumberCantidad de facturas pendientes de revisión
review_invoicesnumberCantidad de facturas actualmente en revisión
approval_ratenumberTasa de aprobación como porcentaje (0–100)
avg_variationnumberPorcentaje de variación promedio entre los montos del sistema y del proveedor
active_settlementsnumberCantidad de liquidaciones abiertas/activas
accumulated_differencenumberDiferencia neta acumulada (sistema − proveedor)
active_providersnumberCantidad de proveedores con actividad en el período
total_invoicednumberMonto total facturado por el sistema

Gráficos​

CampoTipoDescripción
charts.invoices_by_state[].statestringCódigo de estado
charts.invoices_by_state[].namestringNombre legible del estado
charts.invoices_by_state[].countnumberCantidad de facturas en este estado
charts.invoices_by_state[].amountnumberMonto total para este estado
charts.monthly_billing[].monthstringMes en formato YYYY-MM
charts.monthly_billing[].systemnumberTotal de facturación calculado por el sistema
charts.monthly_billing[].providernumberTotal de facturación reportado por el proveedor
charts.variation_trend[].monthstringMes en formato YYYY-MM
charts.variation_trend[].variation_pctnumberPorcentaje de variación del mes
charts.top_providers[].provider_idstringIdentificador del proveedor
charts.top_providers[].provider_namestringNombre visible del proveedor
charts.top_providers[].amountnumberMonto total facturado
charts.top_providers[].countnumberCantidad de facturas
charts.settlements_by_state[].statestringCódigo de estado de la liquidación
charts.settlements_by_state[].namestringNombre legible del estado de la liquidación
charts.settlements_by_state[].countnumberCantidad de liquidaciones
charts.settlements_by_state[].amountnumberMonto total de la liquidación

Ejemplo de respuesta​

{
"success": true,
"data": {
"kpis": {
"pending_invoices": 47,
"review_invoices": 12,
"approval_rate": 82.5,
"avg_variation": 3.2,
"active_settlements": 8,
"accumulated_difference": 15420.75,
"active_providers": 23,
"total_invoiced": 1285600.00
},
"charts": {
"invoices_by_state": [
{ "state": "100", "name": "Pending", "count": 47, "amount": 234500.00 },
{ "state": "101", "name": "In Review", "count": 12, "amount": 89200.00 },
{ "state": "102", "name": "Approved", "count": 185, "amount": 845300.00 },
{ "state": "103", "name": "Rejected", "count": 9, "amount": 42100.00 }
],
"monthly_billing": [
{ "month": "2026-01", "system": 412000.00, "provider": 418500.00 },
{ "month": "2026-02", "system": 438000.00, "provider": 441200.00 },
{ "month": "2026-03", "system": 435600.00, "provider": 440800.00 }
],
"variation_trend": [
{ "month": "2026-01", "variation_pct": 1.58 },
{ "month": "2026-02", "variation_pct": 0.73 },
{ "month": "2026-03", "variation_pct": 1.19 }
],
"top_providers": [
{ "provider_id": "504210987600", "provider_name": "Transporte Rápido S.A.", "amount": 245800.00, "count": 42 },
{ "provider_id": "504210987601", "provider_name": "Logística del Norte", "amount": 198300.00, "count": 35 },
{ "provider_id": "504210987602", "provider_name": "ServiFlota Express", "amount": 167500.00, "count": 28 }
],
"settlements_by_state": [
{ "state": "200", "name": "Open", "count": 5, "amount": 312400.00 },
{ "state": "201", "name": "In Review", "count": 3, "amount": 178200.00 },
{ "state": "202", "name": "Closed", "count": 18, "amount": 795000.00 }
]
}
}
}

Errores​

CódigoHTTPDescripción
VALIDATION_ERROR400Formato de fecha inválido, el rango de fechas personalizado supera los 93 días
INVALID_DATE_RANGE400El rango personalizado supera los 93 días o solo se proporcionó una de startdate/enddate
UNAUTHORIZED401tenant / Authorization / X-API-Key ausente, inválido o expirado
FORBIDDEN403El usuario no tiene el permiso APICLI_RPTPORTALPROVEEDOR_DASHBOARD
RATE_LIMITED429Se superaron 10 req/min
INTERNAL_ERROR500Error inesperado del servidor