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

# Consulta de precios de venta, compra y coste en A3ERP

> Obtén el precio de venta para un cliente, el precio de compra de un proveedor, el coste de un artículo o el precio medio con la API de precios de A3ERP.

Los endpoints de precios calculan y devuelven el precio aplicable para un artículo dado en función del cliente o proveedor, la fecha, la tarifa y las unidades solicitadas. A3ERP aplica automáticamente todos los descuentos configurados en las tarifas, fichas de cliente/proveedor y condiciones comerciales, de modo que siempre recibes el precio neto final sin necesidad de calcular nada en tu integración.

<Note>
  El parámetro `fecha` en los endpoints de precio de venta y compra debe introducirse con el formato **YYYYMMDD** (año, mes y día sin separadores). Por ejemplo, el 12 de septiembre de 2022 se expresa como `20220912`.
</Note>

***

## 1. Precio de venta

```http theme={null}
GET https://servidor:<puerto>/api/precios/ObtPrcVenta/{articulo}/{cliente}/{fecha}/{tarifa}/{unidades}
```

Calcula el precio de venta que se aplicaría al cliente indicado para el artículo, fecha, tarifa y cantidad especificados. La respuesta incluye el precio final y el desglose de todos los descuentos aplicados.

**Ejemplo:**

```
GET https://localhost:5555/api/precios/ObtPrcVenta/00077169/1689/20220912/1/5
```

**Cabecera requerida**

| Cabecera        | Valor                |
| --------------- | -------------------- |
| `Authorization` | `Bearer <JWT_token>` |

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  Código del artículo del que quieres obtener el precio de venta.
</ParamField>

<ParamField path="cliente" type="string" required>
  Código del cliente al que se le aplicará el precio y los descuentos.
</ParamField>

<ParamField path="fecha" type="string" required>
  Fecha para la que se calcula el precio, en formato **YYYYMMDD**. A3ERP tendrá en cuenta las tarifas y promociones vigentes en esa fecha.
</ParamField>

<ParamField path="tarifa" type="string" required>
  Código de la tarifa de precios a aplicar.
</ParamField>

<ParamField path="unidades" type="string" required>
  Número de unidades solicitadas. Puede afectar a los descuentos por volumen configurados en la tarifa.
</ParamField>

**Campos de la respuesta**

<ResponseField name="Precio" type="string">
  Precio de venta unitario neto aplicado al cliente, ya con todos los descuentos incluidos.
</ResponseField>

<ResponseField name="TotalDto" type="string">
  Descuento total efectivo aplicado al precio, expresado en porcentaje.
</ResponseField>

<ResponseField name="Dto1" type="string">
  Primer nivel de descuento aplicado (porcentaje).
</ResponseField>

<ResponseField name="Dto2" type="string">
  Segundo nivel de descuento aplicado (porcentaje). `0` si no aplica.
</ResponseField>

<ResponseField name="Dto3" type="string">
  Tercer nivel de descuento aplicado (porcentaje). `0` si no aplica.
</ResponseField>

<ResponseField name="Dto4" type="string">
  Cuarto nivel de descuento aplicado (porcentaje). `0` si no aplica.
</ResponseField>

**Ejemplo de respuesta**

```json theme={null}
{
  "Precio": "66,92",
  "TotalDto": "15",
  "Dto1": "15",
  "Dto2": "0",
  "Dto3": "0",
  "Dto4": "0"
}
```

***

## 2. Precio de compra

```http theme={null}
GET https://servidor:<puerto>/api/precios/ObtPrcCompra/{articulo}/{proveedor}/{fecha}/{tarifa}/{unidades}
```

Calcula el precio de compra que aplicaría el proveedor indicado para el artículo, fecha, tarifa y cantidad especificados. Útil para calcular costes de aprovisionamiento o generar pedidos de compra automáticos.

**Ejemplo:**

```
GET https://localhost:5555/api/precios/ObtPrcCompra/00077169/2/20220912/3/5
```

**Cabecera requerida**

| Cabecera        | Valor                |
| --------------- | -------------------- |
| `Authorization` | `Bearer <JWT_token>` |

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  Código del artículo del que quieres obtener el precio de compra.
</ParamField>

<ParamField path="proveedor" type="string" required>
  Código del proveedor al que se solicitará el artículo.
</ParamField>

<ParamField path="fecha" type="string" required>
  Fecha de referencia para el cálculo del precio, en formato **YYYYMMDD**.
</ParamField>

<ParamField path="tarifa" type="string" required>
  Código de la tarifa de compra a aplicar.
</ParamField>

<ParamField path="unidades" type="string" required>
  Número de unidades a comprar. Puede afectar a los descuentos por volumen del proveedor.
</ParamField>

**Campos de la respuesta**

<ResponseField name="Precio" type="string">
  Precio de compra unitario neto del proveedor para las condiciones indicadas.
</ResponseField>

<ResponseField name="TotalDto" type="string">
  Descuento total efectivo aplicado al precio de compra, en porcentaje.
</ResponseField>

<ResponseField name="Dto1" type="string">
  Primer nivel de descuento aplicado (porcentaje).
</ResponseField>

<ResponseField name="Dto2" type="string">
  Segundo nivel de descuento aplicado (porcentaje). `0` si no aplica.
</ResponseField>

<ResponseField name="Dto3" type="string">
  Tercer nivel de descuento aplicado (porcentaje). `0` si no aplica.
</ResponseField>

<ResponseField name="Dto4" type="string">
  Cuarto nivel de descuento aplicado (porcentaje). `0` si no aplica.
</ResponseField>

**Ejemplo de respuesta**

```json theme={null}
{
  "Precio": "66,92",
  "TotalDto": "0",
  "Dto1": "0",
  "Dto2": "0",
  "Dto3": "0",
  "Dto4": "0"
}
```

***

## 3. Precio de coste

```http theme={null}
GET https://servidor:<puerto>/api/precios/ObtPrcCoste/{articulo}/{almacen}/{obtcoste}
```

Devuelve el precio de coste de un artículo en un almacén concreto, según el método de valoración especificado. Puedes elegir entre varios métodos de cálculo de coste, lo que te permite adaptar la consulta a diferentes contextos contables o de control de gestión.

**Ejemplo:**

```
GET https://localhost:5555/api/precios/ObtPrcCoste/28061600/21/PMED
```

**Cabecera requerida**

| Cabecera        | Valor                |
| --------------- | -------------------- |
| `Authorization` | `Bearer <JWT_token>` |

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  Código del artículo del que quieres obtener el precio de coste.
</ParamField>

<ParamField path="almacen" type="string" required>
  Código del almacén de referencia para el cálculo del coste.
</ParamField>

<ParamField path="obtcoste" type="string" required>
  Método de valoración del coste. Los valores posibles son:

  | Valor  | Descripción                                                 |
  | ------ | ----------------------------------------------------------- |
  | `MANU` | Precio manual definido en la ficha del artículo.            |
  | `PEST` | Precio estándar del artículo.                               |
  | `PFAB` | Precio de fabricación calculado por A3ERP.                  |
  | `PMEA` | Precio medio por almacén y artículo.                        |
  | `PMED` | Precio medio por almacén, artículo, lote y número de serie. |
  | `PMET` | Precio medio calculado sobre todos los almacenes.           |
  | `PCOM` | Último precio de compra neto registrado.                    |
</ParamField>

**Campos de la respuesta**

<ResponseField name="Precio" type="string">
  Precio de coste calculado con el método de valoración indicado.
</ResponseField>

**Ejemplo de respuesta**

```json theme={null}
{
  "Precio": "8,06578087"
}
```

***

## 4. Precio medio

```http theme={null}
GET https://servidor:<puerto>/api/precios/ObtPrcMedio/{articulo}/{almacen}
```

Devuelve el precio medio ponderado de un artículo en el almacén indicado. Es un acceso rápido al precio medio sin necesidad de especificar el método de valoración.

**Ejemplo:**

```
GET https://localhost:5555/api/precios/ObtPrcMedio/00077169/3
```

**Cabecera requerida**

| Cabecera        | Valor                |
| --------------- | -------------------- |
| `Authorization` | `Bearer <JWT_token>` |

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  Código del artículo del que quieres obtener el precio medio.
</ParamField>

<ParamField path="almacen" type="string" required>
  Código del almacén de referencia para el cálculo del precio medio.
</ParamField>

**Campos de la respuesta**

<ResponseField name="Precio" type="string">
  Precio medio ponderado actual del artículo en el almacén indicado.
</ResponseField>

**Ejemplo de respuesta**

```json theme={null}
{
  "Precio": "66,92"
}
```
