---
title: "Reporte de utilidad (ventas con costos)"
method: GET
path: "/reports/reportUtility"
tags: ["Reportes"]
---

# Reporte de utilidad (ventas con costos)

`GET /reports/reportUtility`

## Request

- Base URL: `https://api.pirpos.com`
- URL: `https://api.pirpos.com/reports/reportUtility`
- Auth: HTTP bearer

Genera un reporte detallado de ventas por producto incluyendo costos promedios para calcular utilidad.
Combina información de ventas con costos de inventario para análisis de rentabilidad.

**Autenticación requerida:** Este endpoint requiere autenticación Bearer Token.
Usar el campo `tokenCurrent` obtenido del servicio de login (/login) en el header:
`Authorization: Bearer {tokenCurrent}`

**Suscripción Premium requerida:** Este endpoint requiere una suscripción premium activa.

**Características del reporte:**
- Misma estructura que el reporte de ventas por producto
- Incluye costo promedio (avgCost) por producto para calcular margen
- Permite calcular utilidad bruta = totalBruto - (avgCost × quantity)
- Agrupación opcional por producto para análisis consolidado
- Soporte para usuarios con múltiples negocios

**Casos de uso:**
- Análisis de rentabilidad por producto
- Identificación de productos con mayor y menor margen
- Toma de decisiones sobre precios y mix de productos
- Reportes financieros para gerencia

## Ejemplos de uso:

### 1. Utilidad del mes agrupada por producto
```
GET /reports/reportUtility?dateInitISO=2025-08-01T00:00:00.000Z&dateEndISO=2025-08-31T23:59:59.999Z&groupResult=true
Authorization: Bearer tu_token_aqui
```

### 2. Utilidad detallada por producto
```
GET /reports/reportUtility?dateInitISO=2025-08-01T00:00:00.000Z&dateEndISO=2025-08-31T23:59:59.999Z
Authorization: Bearer tu_token_aqui
```

## Query parameters

- `dateInitISO` string, date-time, required
- `dateEndISO` string, date-time, required
- `groupResult` boolean
- `status` 'Pagada'
- `allBusiness` boolean

## Response `200`

Reporte de utilidad generado exitosamente

- object
  - `reportByProduct` object[]
    - `_id` object
      - `name` string: Nombre del producto
      - `categoryName` string
      - `avgCost` number: Costo promedio del producto
    - `totalBruto` number: Total bruto de ventas
    - `totalDiscount` number: Total de descuentos
    - `totalTaxes` number: Total de impuestos
    - `total` number: Total neto de ventas
    - `quantity` number: Unidades vendidas
    - `avgCost` number: Costo total (avgCost × quantity)

## Other responses

- `401`: Token de autorización inválido o faltante
- `402`: Suscripción premium requerida
- `403`: Sin permisos para ver reportes de utilidad
- `500`: Error interno del servidor

---

[API](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar.md) - [All operations](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar/llms.txt) - [OpenAPI document](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar/revisions/9d4431a3cddc?raw)
