> ## 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.

# Stock: niveles de inventario por artículo y almacén

> Obtén el nivel de stock de artículos en cualquier almacén, consulta condiciones mínimas y máximas, y filtra por artículo, almacén o lote.

Los endpoints de stock te dan acceso de lectura a los niveles de inventario actuales y a las condiciones de stock configuradas para cada artículo y almacén. Tanto si necesitas saber cuántas unidades hay disponibles como si quieres revisar los puntos de pedido o los umbrales mínimos y máximos, esta API te proporciona la información precisa en tiempo real.

***

## stockalm — Niveles de stock

El recurso `stockalm` devuelve las unidades reales de inventario almacenadas en A3ERP. Puedes consultar todo el stock de la empresa, filtrar por artículo, por almacén o combinar ambos criterios.

### Todo el stock de todos los almacenes

```http theme={null}
GET https://servidor:<puerto>/api/stockalm
```

Devuelve el stock de todos los artículos en todos los almacenes de la empresa.

**Ejemplo:**

```
https://servidor:5555/api/stockalm
```

**Cabecera requerida**

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

**Campos de la respuesta**

<ResponseField name="id" type="integer">
  Identificador único del registro de stock.
</ResponseField>

<ResponseField name="codalm" type="string">
  Código del almacén. Siempre cuadrado a **8 caracteres**.
</ResponseField>

<ResponseField name="codart" type="string">
  Código del artículo. Siempre cuadrado a **15 caracteres**.
</ResponseField>

<ResponseField name="feccaduc" type="string">
  Fecha de caducidad del lote en formato ISO 8601. Devuelve `1899-12-30T00:00:00.000+01:00` si no aplica.
</ResponseField>

<ResponseField name="lote" type="string">
  Número de lote. Cadena vacía si no se gestiona por lotes.
</ResponseField>

<ResponseField name="numserie" type="string">
  Número de serie. Cadena vacía si no se gestiona por número de serie.
</ResponseField>

<ResponseField name="prcmedio" type="number">
  Precio medio del artículo en el almacén.
</ResponseField>

<ResponseField name="ubicaciones" type="string">
  Ubicación física del artículo dentro del almacén. Puede ser `null`.
</ResponseField>

<ResponseField name="unidades" type="integer">
  Unidades comerciales disponibles en el almacén.
</ResponseField>

<ResponseField name="unidadesstock" type="integer">
  Unidades de stock (pueden diferir de las unidades comerciales si hay factor de conversión).
</ResponseField>

**Ejemplo de respuesta**

```json theme={null}
[
  {
    "id": 11,
    "codalm": "       1",
    "codart": "              1",
    "feccaduc": "1899-12-30T00:00:00.000+01:00",
    "lote": "",
    "numserie": "",
    "prcmedio": 46,
    "ubicaciones": "text",
    "unidades": 0,
    "unidadesstock": 0
  }
]
```

***

### Stock de un artículo en un almacén concreto

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

Devuelve el stock de un artículo específico en un almacén concreto.

**Ejemplo:**

```
https://servidor:5555/api/stockalm/articulo/14/almacen/50
```

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  El identificador del artículo que quieres consultar.
</ParamField>

<ParamField path="almacen" type="string" required>
  El identificador del almacén en el que quieres consultar el stock.
</ParamField>

**Ejemplo de respuesta**

```json theme={null}
[
  {
    "id": 20,
    "codalm": "       1",
    "codart": "              1",
    "feccaduc": "1899-12-30T00:00:00.000+01:00",
    "lote": "",
    "numserie": "",
    "prcmedio": 489.8,
    "ubicacion": "text",
    "unidades": -1016,
    "unidadesstock": 2926
  }
]
```

***

### Stock de un artículo en todos los almacenes

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

Devuelve el stock del artículo indicado en todos los almacenes de la empresa.

**Ejemplo:**

```
https://servidor:5555/api/stockalm/articulo/14
```

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  El identificador del artículo cuyo stock total quieres consultar.
</ParamField>

**Ejemplo de respuesta**

```json theme={null}
[
  {
    "id": 20,
    "codalm": "       1",
    "codart": "              1",
    "feccaduc": "1899-12-30T00:00:00.000+01:00",
    "lote": "",
    "numserie": "",
    "prcmedio": 489.8,
    "ubicacion": "text",
    "unidades": -1016,
    "unidadesstock": 2926
  }
]
```

***

### Todo el stock de un almacén

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

Devuelve el stock de todos los artículos presentes en el almacén indicado.

**Ejemplo:**

```
https://servidor:5555/api/stockalm/almacen/50
```

**Parámetros de ruta**

<ParamField path="almacen" type="string" required>
  El identificador del almacén del que quieres obtener el inventario completo.
</ParamField>

***

## stockart — Condiciones de stock

El recurso `stockart` devuelve la configuración de condiciones de stock por artículo y almacén: punto de pedido, stock mínimo, stock máximo y ubicación asignada. Esta información es útil para automatizar alertas de reposición.

### Condiciones de un artículo en un almacén concreto

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

Devuelve las condiciones de stock del artículo indicado en un almacén específico.

**Ejemplo:**

```
https://servidor:5555/api/stockart/articulo/14/almacen/50
```

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  El identificador del artículo cuyas condiciones de stock quieres consultar.
</ParamField>

<ParamField path="almacen" type="string" required>
  El identificador del almacén en el que se aplican las condiciones.
</ParamField>

**Campos de la respuesta**

<ResponseField name="codart" type="string">
  Código del artículo cuadrado a **15 caracteres**.
</ResponseField>

<ResponseField name="codalm" type="string">
  Código del almacén cuadrado a **8 caracteres**.
</ResponseField>

<ResponseField name="puntopedido" type="integer">
  Punto de pedido: nivel de stock a partir del cual se debe lanzar un nuevo pedido de reposición.
</ResponseField>

<ResponseField name="stockmax" type="integer">
  Stock máximo permitido para el artículo en el almacén.
</ResponseField>

<ResponseField name="stockmin" type="integer">
  Stock mínimo requerido para el artículo en el almacén.
</ResponseField>

<ResponseField name="ubicacion" type="string">
  Ubicación física asignada al artículo dentro del almacén. Puede ser `null`.
</ResponseField>

**Ejemplo de respuesta**

```json theme={null}
[
  {
    "codart": "              1",
    "codalm": "       1",
    "puntopedido": 500,
    "stockmax": 0,
    "stockmin": 300,
    "ubicacion": "text"
  }
]
```

***

### Condiciones de un artículo en todos los almacenes

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

Devuelve las condiciones de stock del artículo indicado en todos los almacenes de la empresa.

**Ejemplo:**

```
https://servidor:5555/api/stockart/articulo/14
```

**Parámetros de ruta**

<ParamField path="articulo" type="string" required>
  El identificador del artículo cuyas condiciones de stock quieres consultar en todos los almacenes.
</ParamField>

***

### Condiciones de todos los artículos en un almacén

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

Devuelve las condiciones de stock de todos los artículos configurados en el almacén indicado.

**Ejemplo:**

```
https://servidor:5555/api/stockart/almacen/50
```

**Parámetros de ruta**

<ParamField path="almacen" type="string" required>
  El identificador del almacén del que quieres obtener las condiciones de stock de todos sus artículos.
</ParamField>

**Ejemplo de respuesta**

```json theme={null}
[
  {
    "codart": "              1",
    "codalm": "       1",
    "puntopedido": 500,
    "stockmax": 0,
    "stockmin": 300,
    "ubicacion": "text"
  }
]
```

***

<Tip>
  Todas las llamadas GET de stock admiten los parámetros `filtro` y `order` para refinar y ordenar los resultados. Consulta la [guía de paginación y filtrado](/conceptos/paginacion-y-filtrado) para ver la sintaxis completa con ejemplos de filtrado por campo, operadores de comparación y múltiples criterios de ordenación.
</Tip>
