Skip to main content
muveya counts stock by box: a physical container of one supply, with its own printed code, its warehouse, its status and, when the supply tracks them, its lot, serial numbers and expiry date. Every change to a box is written to an append-only stock ledger, and the quantities you see are calculated from that ledger. Nothing in the ledger is ever edited or deleted. This page explains the main inventory screen, how quantities and statuses work, every movement the ledger can record, and which permission each action needs.

Open the Stock screen

Select Inventory in the main navigation. The screen that opens is titled Stock (“Boxes on hand across the warehouses you can see.”). You can also go straight to console.muveya.com/inventory. The Inventory entry is shown to every member, but the list only loads for members with the inventory.read permission. Without it, the screen shows Your account does not have permission for this action.

What the list shows

Each row is one box. The list includes boxes in every status, so a box that was used up can still appear with 0 on hand. The box code is not a column: open the box to see it.

Filter the list

You only ever see boxes in the warehouses your team access reaches. The list shows up to 50 boxes, oldest first, and has no next page: when you expect more, narrow it with the filters.

States and messages

Shortcuts at the top of the screen

Balances: on hand, reserved and available

Every box has two counters, both calculated from the ledger:
  • On hand (onHand): the units in the box. Receiving adds to it; using, dispatching and loss corrections subtract from it. It can never go below zero.
  • Reserved (reserved): units of the box held for approved orders. Reserving never changes on hand.
  • Available (available): onHand minus reserved. Order allocation only reserves available units, and separating part of a box only takes available units.
Quantities are always in the supply’s base unit (the unit set in the catalog), shown in your language, for example 24 × Box. The unit is locked when the supply is activated in the catalog (a receipt also locks it if it was not locked yet), and every box keeps the unit it was received under. A box whose stored unit cannot be confirmed shows its numbers without a unit and the note The unit of this box needs review. Its quantities are shown without a unit until someone checks it.

Box statuses

A box does not change status by itself when its expiry date passes. It stays Active, but from the day after its expiry date (UTC) it can no longer be used, moved or separated, and orders never reserve it. Take it out of use with Mark as expired, as described in Boxes and labels.

The stock ledger

The ledger is the only source of truth for stock. Each movement records its type, the box, the supply, the signed change to on hand (and to reserved when it applies), who recorded it, when it happened (server clock), the warehouse it left or entered and, when given, a reason. A mistake is fixed with a new, compensating movement, never by editing an old one. You read a box’s movements on the box screen; see Boxes and labels. A consumption that uses up the last unit also sets the box to Used up. Moves, status changes and picks carry a change of 0: the box keeps its units, only its place or status changes.

FEFO and FIFO

When an approved order is allocated, muveya reserves units box by box in a fixed order:
  • FEFO (first expiry, first out) applies when any eligible box of the supply has an expiry date. Boxes with the earliest expiry go first; boxes without an expiry go last; ties are broken by reception date.
  • FIFO (first in, first out) applies otherwise. The oldest reception goes first.
Only Active boxes whose expiry date has not passed, in the source warehouse, with the unit the order expects, are eligible, and only their available units are reserved. The order is calculated by the server and is the same every time. When you use or move a box yourself, you choose the box by scanning it; the console does not suggest one. There is no console action to override the order for an allocation.

Permissions

Inventory permissions are granted one by one in Team. No role grants them automatically: an owner or administrator also needs them to see or change stock. See Roles and permissions.
inventory.adjust does not include inventory.read. Grant both to someone who must see what they correct.
Every permission applies only inside the member’s warehouse access (all warehouses, or a specific list). A box in a warehouse outside that access behaves exactly as if it did not exist: scanning its code says the box was not found. Moving a box, taking a box out of use and quarantining a lot are marked as sensitive actions. In the current release a second factor is optional and does not block them; see Account security.

Map of the inventory screens

Replenishment and Stock corrections also appear in the main navigation.

Read inventory from the API or MCP

The same balances and ledger are readable with an API key that has the inventory:read scope: GET /v1/inventory/balances, GET /v1/inventory/boxes/{boxId}, GET /v1/inventory/boxes/{boxId}/balance and GET /v1/inventory/boxes/{boxId}/movements. They are read-only. See the API reference. Through MCP, the inventory.check tool returns on hand, reserved and available for one supply; see MCP tools.

Receive stock

Turn a delivery into labeled boxes.

Boxes and labels

Scan, inspect, separate, label and retire a box.

Record use and move boxes

Exits, rooms, attribution and moves.

Warehouses

Central and express warehouses.