---
title: "Suggestion FEFO (First Expired First Out) pour satisfaire une quantité."
method: GET
path: "/api/v1/supply/lots/fefo-suggestion"
tags: ["Supply Chain MRP (V2)"]
---

# Suggestion FEFO (First Expired First Out) pour satisfaire une quantité.

`GET /api/v1/supply/lots/fefo-suggestion`

## Request

- Base URL: `https://erp.eyeot.fr/api/v1`
- URL: `https://erp.eyeot.fr/api/v1/api/v1/supply/lots/fefo-suggestion`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Suggestion FEFO (First Expired First Out) pour satisfaire une quantité.

    Sélectionne les lots actifs du produit (current_qty > 0), ordonnés par
    `expiry_date` croissante (NULL en dernier), et répartit la quantité
    demandée du plus proche péremption au plus lointain. Lecture pure : ne
    consomme rien (le picking réel passe par `supply_lot_service.consume_lot`).

    Query params :
        product_id (uuid, requis)
        quantity   (number > 0, requis ; alias `qty`)

    Réponse :
        {
            "product_id": str,
            "requested_qty": str,
            "total_picked": str,
            "shortfall": str,            # reliquat non couvert (0 si suffisant)
            "fully_satisfiable": bool,
            "picks": [
                {lot_id, lot_number, expiry_date, available_qty,
                 pick_qty, current_bin_id}, ...
            ]
        }

**Permissions requises** : `supply:read`

## Response `200`

Succès — payload `{data, meta}` (cf. API-GUIDE §3.1)

## Other responses

- `401`: JWT manquant, expiré ou révoqué.
- `402`: L'organisation n'a pas d'abonnement actif (paywall). Rediriger vers /activate.
- `403`: Permissions `module:action` insuffisantes pour cette route.
- `404`: Ressource introuvable (ou cross-tenant — équivalent à hidden).
- `429`: Trop de requêtes. Honorer le header `Retry-After` (secondes).

---

[API](https://skmtc.dev/eyeot/apis/eyeot-erp-api.md) · [All operations](https://skmtc.dev/eyeot/apis/eyeot-erp-api/llms.txt) · [OpenAPI document](https://skmtc.dev/eyeot/apis/eyeot-erp-api/revisions/42ab95222a89?raw)
