# Réceptionner une boîte GRN

**PUT** /v1/inventory/grn/boxes/:box_id/receive

Enregistre la quantité réellement reçue. L'opération :

1. Crée ou incrémente un lot à l'emplacement du GRN si la boîte a lot_number ou expiry_date.
2. Ajoute une ligne immuable au registre (movement_type receive).
3. Définit le statut matched si received_qty égale expected_qty, sinon discrepancy.
4. Recalcule le statut du GRN et le ferme lorsque toutes les boîtes sont traitées.

Paramètre box_id (integer) : ID de la boîte.

Champs : received_qty (integer, requis), quantité réelle comptée ; note (string, facultatif), remplace la note de boîte.

Réponse box : objet actualisé avec status final et received_qty.

États : pending (pas encore reçue), matched (quantité exacte), discrepancy (quantité différente).
