> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retailgrid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Listar precios aprobados

> Lista los precios finales aprobados en Price Approval, para sincronizarlos con tu ERP, tienda online o POS.

Devuelve los precios que tu equipo **aprobó** en la cola de [Price Approval](https://docs.retailgrid.io/es/agents/price-approval.md) (aprobación de precios): las decisiones finales, no las propuestas en bruto de los agentes. Úsalo para extraer los precios aprobados hacia tu ERP, tienda online o POS de forma programada en lugar de exportarlos a mano.

Se devuelve una fila por cada precio aprobado. Cuando un Grid está en vista SKU-Store, cada aprobación lleva su propio `store_id`.

## Autenticación

Token Bearer. Consulta [Autenticación](https://docs.retailgrid.io/es/api-reference/authentication.md).

## Parámetros de consulta

Todos los parámetros son opcionales. Sin ninguno definido, el endpoint devuelve las **exportaciones pendientes actuales** de tu organización (los precios aprobados que aún no se han confirmado como procesados en los sistemas externos), las más recientes primero. Pasa `history=true` para leer en su lugar el historial registrado completo.

| Nombre | Tipo | Descripción |
| :- | :- | :- |
| `history` | boolean | Por defecto `false`. Con `false`, solo se devuelven las exportaciones pendientes actuales. Pon `true` para incluir el historial registrado, incluidas las versiones canceladas. |
| `limit` | integer | Tamaño de página, por defecto `100`, máximo `500`. |
| `cursor` | string | Cursor de paginación opaco devuelto como `next_cursor` por una respuesta anterior. |
| `grid_id` | string (UUID) | Solo precios aprobados en este Grid. |
| `store_id` | string (UUID) | Solo precios de esta tienda (aprobaciones SKU-Store). |
| `item_id` | string | Filtra a un único identificador a nivel de SKU. |
| `sku` | string | Filtra a un único código de SKU. |
| `approved_after` | string (ISO-8601, UTC) | Solo precios aprobados en esta marca de tiempo o después. |
| `approved_before` | string (ISO-8601, UTC) | Solo precios aprobados en esta marca de tiempo o antes. |
| `effective_after` | string (YYYY-MM-DD) | Solo precios cuya fecha de vigencia sea esta fecha o posterior. |
| `effective_before` | string (YYYY-MM-DD) | Solo precios cuya fecha de vigencia sea esta fecha o anterior. |

## Respuesta

```json theme={null}
{
  "items": [
    {
      "id": 91422,
      "grid_id": "6b1e9c40-2f0a-4d8e-9d21-2f6a1c4b7e10",
      "grid_item_id": 5567,
      "item_id": "SKU-12345",
      "sku": "SKU-12345",
      "store_id": null,
      "current_price": "1.49",
      "proposed_price": "1.59",
      "approved_price": "1.55",
      "effective_date": "2026-07-01",
      "currency_code": "EUR",
      "proposal_source": "po",
      "source": "user_defined",
      "trace": [],
      "approved_at": "2026-06-28T14:12:03Z",
      "approved_by_user_id": "0b3c1f4a-9c1d-4f2a-8a3b-2c3d4e5f6a7b"
    }
  ],
  "next_cursor": null
}
```

### Campos de la respuesta

| Campo | Tipo | Descripción |
| :- | :- | :- |
| `id` | integer | Id interno de Retailgrid para la fila de precio aprobado. |
| `grid_id` | string (UUID) | El Grid en el que se aprobó el precio. |
| `grid_item_id` | integer | Id interno del artículo dentro de ese Grid. |
| `item_id` | string \| null | Tu identificador a nivel de SKU, cuando se conoce. |
| `sku` | string \| null | Código de SKU, cuando se conoce. |
| `store_id` | string (UUID) \| null | La tienda, para aprobaciones SKU-Store; `null` a nivel de producto. |
| `current_price` | string \| null | El precio vigente en el momento de la aprobación. |
| `proposed_price` | string | El precio que propuso el agente. |
| `approved_price` | string | El precio final aprobado; difiere de `proposed_price` cuando fue sobrescrito. |
| `effective_date` | string (date) \| null | Cuándo entra en vigor el precio aprobado. |
| `currency_code` | string | Moneda ISO 4217 de los precios. |
| `proposal_source` | string | Qué ejecución produjo la propuesta: `dp` (Dynamic Pricing), `po` (Price Optimization) o `po_dp` (ambas). |
| `source` | string | De dónde proviene el precio aprobado: `dp`, `po`, `po_dp` o `user_defined` (una sobrescritura manual). |
| `trace` | array | Desglose por origen detrás del precio (`dp` / `po`). |
| `approved_at` | string (datetime, UTC) | Cuándo se aprobó el precio. |
| `approved_by_user_id` | string (UUID) | El usuario que lo aprobó. |

Los valores monetarios se devuelven como **strings**; consulta [Convenciones](https://docs.retailgrid.io/es/api-reference/conventions.md).

## Ejemplo de solicitud

```bash theme={null}
curl -s "https://clientapi.retailgrid.io/v1/approved_prices?approved_after=2026-07-01T00:00:00Z&limit=500" \
  -H "Authorization: Bearer rg_live_xxx"
```

Recorre los resultados pasando el `next_cursor` de cada respuesta de vuelta como `cursor` hasta que devuelva `null`.

## Confirma lo que procesaste

Como la lectura por defecto devuelve solo las exportaciones **pendientes**, un precio permanece en ese conjunto hasta que le indicas a Retailgrid que lo has aplicado. Confirma un lote con:

```bash theme={null}
curl -s -X POST "https://clientapi.retailgrid.io/v1/approved_prices/acknowledge" \
  -H "Authorization: Bearer rg_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"approved_price_ids": [91422, 91423]}'
```

Pasa los valores `id` de una respuesta de listado anterior, hasta **500** por llamada. Los precios confirmados salen de la lectura de pendientes por defecto, de modo que una integración programada puede repetir el ciclo listar → aplicar → confirmar sin llevar su propio cursor ni marca de agua.

Un `409` significa que el lote entra en conflicto con el estado actual de esas exportaciones (por ejemplo, una fue cancelada o ya estaba confirmada). Vuelve a leer los ids y reintenta con los que sigan pendientes, en lugar de reintentar el mismo lote.

## Relacionado

* [Revisar y aprobar cambios de precio](https://docs.retailgrid.io/es/agents/price-approval.md)
* [Obtener filas del Grid](https://docs.retailgrid.io/es/api-reference/grids/get-rows.md)
* [Convenciones](https://docs.retailgrid.io/es/api-reference/conventions.md)
* [Errores](https://docs.retailgrid.io/es/api-reference/errors.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.