Skip to Content
Reportes

Reportes

GET/api/v1/reportes

Métricas operativas agregadas de tu empresa para un período dado. Por defecto retorna el mes en curso (desde las 00:00 del día 1 hasta las 23:59:59 del último día del mes).


Query params

ParámetroTipoDefaultDescripción
fechaDesdeYYYY-MM-DDInicio del mes actualInicio del período de análisis
fechaHastaYYYY-MM-DDFin del mes actualFin del período (inclusive, hasta las 23:59:59 UTC)

Ejemplos

# Mes actual (default) curl https://api.tpcxpress.com/api/v1/reportes \ -H "Authorization: Bearer TOKEN" # Período personalizado curl "https://api.tpcxpress.com/api/v1/reportes?fechaDesde=2026-06-01&fechaHasta=2026-06-30" \ -H "Authorization: Bearer TOKEN" # Semana actual curl "https://api.tpcxpress.com/api/v1/reportes?fechaDesde=2026-06-30&fechaHasta=2026-07-06" \ -H "Authorization: Bearer TOKEN"

Respuesta 200

{ "success": true, "data": { "periodo": { "desde": "2026-07-01T00:00:00.000Z", "hasta": "2026-07-31T23:59:59.000Z" }, "totalGuias": 150, "entregadasPeriodo": 130, "tasaEntrega": 86.7, "porEstado": { "SIN_RECOLLECTAR": 5, "RECOLECTADO": 8, "EN_BODEGA": 2, "EN_RUTA": 5, "ENTREGADO": 120, "DEVOLUCION": 3, "DEVOLUCION_ENTREGADO": 2, "ANULADA": 4, "ENTREGADO_LIQUIDADO": 1 }, "montoCODEntregado": 12500.00 } }

Métricas explicadas

CampoTipoDescripción
totalGuiasintegerTotal de guías creadas en el período (independiente del estado actual)
entregadasPeriodointegerGuías con estado ENTREGADO creadas en el período
tasaEntreganumberentregadasPeriodo / totalGuias × 100 redondeado a 1 decimal
porEstadoobjectConteo de guías del período por cada estado
montoCODEntregadonumberSuma de montoTotal de guías COD en estado ENTREGADO (en Quetzales)

Nota sobre totalGuias vs porEstado: totalGuias es la suma de todos los valores en porEstado. Las guías con estados activos (ej. EN_RUTA) están incluidas en el total aunque no estén entregadas todavía.


Calcular métricas derivadas

async function obtenerReporte(fechaDesde, fechaHasta) { const params = new URLSearchParams() if (fechaDesde) params.set('fechaDesde', fechaDesde) if (fechaHasta) params.set('fechaHasta', fechaHasta) const res = await fetch( `https://api.tpcxpress.com/api/v1/reportes?${params}`, { headers: { 'Authorization': `Bearer ${process.env.TPC_API_TOKEN}` } } ) const { data } = await res.json() // Métricas adicionales derivadas const enTransito = (data.porEstado.RECOLECTADO ?? 0) + (data.porEstado.EN_BODEGA ?? 0) + (data.porEstado.EN_RUTA ?? 0) const devoluciones = (data.porEstado.DEVOLUCION ?? 0) + (data.porEstado.DEVOLUCION_ENTREGADO ?? 0) const tasaDevolucion = data.totalGuias > 0 ? (devoluciones / data.totalGuias * 100).toFixed(1) : 0 return { ...data, enTransito, devoluciones, tasaDevolucion: parseFloat(tasaDevolucion), } }

Monto COD y liquidaciones

El campo montoCODEntregado representa el monto total cobrado a los destinatarios por guías COD que fueron entregadas en el período. Este valor es útil para:

  • Verificar el monto que TPC debe liquidarte
  • Conciliar contra el estado de cuenta
  • Proyecciones de flujo de caja

montoCODEntregado es el valor bruto. La liquidación neta que recibes es este monto menos la comisión COD (porcentajeCOD) y el costo del servicio de mensajería. Ver GET /api/v1/empresa para los porcentajes de tu cuenta.


Dashboard simple con reportes

async function generarResumenMensual() { const hoy = new Date() const inicio = new Date(hoy.getFullYear(), hoy.getMonth(), 1) const fin = new Date(hoy.getFullYear(), hoy.getMonth() + 1, 0) const formatDate = d => d.toISOString().slice(0, 10) const reporte = await obtenerReporte( formatDate(inicio), formatDate(fin) ) console.log(`📦 Total guías: ${reporte.totalGuias}`) console.log(`✅ Entregadas: ${reporte.entregadasPeriodo} (${reporte.tasaEntrega}%)`) console.log(`🚚 En tránsito: ${reporte.enTransito}`) console.log(`↩️ Devoluciones: ${reporte.devoluciones} (${reporte.tasaDevolucion}%)`) console.log(`💰 COD cobrado: Q ${reporte.montoCODEntregado.toFixed(2)}`) }
Last updated on