---
title: "Listar ventas por vendedor"
method: POST
path: "/tools/reports_get_sales_by_seller"
tags: ["Reports"]
---

# Listar ventas por vendedor

`POST /tools/reports_get_sales_by_seller`

## Request

- Base URL: `https://mcp.alegra.com`
- URL: `https://mcp.alegra.com/tools/reports_get_sales_by_seller`
- Auth: HTTP bearer

Herramienta MCP: `reports_get_sales_by_seller`.

Devuelve las ventas por vendedor con dos vistas según el uso de `sellerId`:

- Sin `sellerId`: vista RESUMEN paginada, con una fila por vendedor y sus métricas agregadas.
- Con `sellerId`: vista DETALLE, con una fila por documento de ese vendedor.

Úsala cuando el usuario pregunte por las ventas de los vendedores o de un vendedor específico: cuánto vendió cada uno, cuántos documentos emitió o qué documentos tiene asignados. Para los totales agregados, del tipo "¿cuánto vendieron los vendedores en total?", usa `reports_get_sales_by_seller_totals` en su lugar. Para preguntas del tipo "qué vendedores" o "qué documentos", usa esta herramienta.

Ejemplo de llamada JSON-RPC:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "reports_get_sales_by_seller",
    "arguments": { "from": "2026-09-01", "to": "2026-09-30" }
  }
}
```

Las fechas `from` y `to` son obligatorias y van en formato YYYY-MM-DD. La paginación `start` y `limit` son cadenas de texto: envíalas como texto (por ejemplo "0" y "10"), no como números. Los filtros `sellerName`, `customerId`, `sellerId`, `warehouseId` y `number` son parámetros de primer nivel, y el ordenamiento usa `order_field` junto con `order_direction`.

Solo lectura.

## Request body

- object
  - `from` string, required: Fecha inicial para filtrar las ventas, en formato YYYY-MM-DD.
  - `to` string, required: Fecha final para filtrar las ventas, en formato YYYY-MM-DD.
  - `start` string: Desplazamiento de paginación: número de registros a omitir. Por defecto "0". Envíalo como texto, no como número.
  - `limit` string: Límite de registros a devolver. Por defecto "10". Envíalo como texto, no como número.
  - `sellerName` string: Filtra por nombre del vendedor. Úsalo cuando el usuario pida las ventas de un vendedor concreto; extrae el nombre de la consulta. Si se omite, devuelve las ventas de todos los vendedores. Solo aplica cuando no se envía `sellerId`.
  - `customerId` string: Filtra los documentos de venta por ID de cliente. Úsalo cuando el usuario pida las ventas de los vendedores asociadas a un cliente específico.
  - `sellerId` string: Filtra por ID de vendedor. Cuando se envía, cambia la respuesta a la vista DETALLE (una fila por documento de ese vendedor) en lugar del resumen (una fila por vendedor).
  - `warehouseId` string: Filtra por ID de bodega o punto de despacho. Acepta varios IDs separados por comas.
  - `number` string: Filtra por número de documento (coincidencia parcial). Úsalo cuando el usuario pida una factura o nota crédito concreta.
  - `order_direction` 'ASC' | 'DESC': Dirección del ordenamiento: ASC ascendente (menor primero), DESC descendente (mayor primero). Debe usarse junto con `order_field`.
  - `order_field` 'totalDocuments' | 'totalPayed' | 'beforeTaxes' | 'total': Campo de ordenamiento: totalDocuments (número de documentos), totalPayed (total pagado), beforeTaxes (base gravable) o total (monto con impuestos). Debe usarse junto con `order_direction`.

## Response `200`

Lista paginada de ventas por vendedor (resumen) o por documento (detalle)

## Other responses

- `401`: No autorizado (token de Alegra inválido o expirado).

---

[API](https://skmtc.dev/alegra/apis/mcp-alegra.md) - [All operations](https://skmtc.dev/alegra/apis/mcp-alegra/llms.txt) - [OpenAPI document](https://skmtc.dev/alegra/apis/mcp-alegra/revisions/528447af020b?raw)
