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

# Boxes and labels

> Find a box by its code, read its details and history, print its label, separate part of it and take it out of use

A box is the unit muveya tracks: one container of one supply, with a printed code. This page covers finding a box, reading everything the box screen shows, printing and reprinting its label, separating part of it into a new container, and taking it out of use.

## Find a box

### Scan or type its code

**Who can do it:** members with `inventory.read` and access to the box's warehouse.

**Where:** **Inventory**, then **Scan a code** at the top of the **Stock** screen, or `console.muveya.com/inventory/scan`. The screen is titled **Scan**: "Read a label or type the code."

<Steps>
  <Step title="Read the label">
    The **Box code** field has the focus when the screen opens, so a barcode reader types straight into it. You can also type the code by hand.
  </Step>

  <Step title="Find">
    Press **Find** (a reader that sends Enter does it for you). While it searches you see **Searching…**.
  </Step>

  <Step title="Open">
    When the code exists in your warehouses, the box screen opens.
  </Step>
</Steps>

The code must match the label exactly; spaces at either end are ignored. When nothing is found, the screen says **We could not find that box.** The same message appears when the box is in a warehouse outside your access, or when you do not have `inventory.read`: muveya never reveals whether a code exists in a warehouse you cannot see.

### Other ways to open a box

* From the **Stock** list, select the supply name in a row.
* From [Lot recall](/docs/en/inventory/lot-recall), select a box code.
* From the confirmation after [receiving](/docs/en/inventory/receive) or separating, select **Open box** or **Open**.
* From the **Separated from** and **Separated into** links on another box.

## The box screen

The path is `/inventory/boxes/:boxId`. The title is the box code, and the line under it is the box status (for example **Active** or **Used up**). **Back to stock** returns to the list. While it loads you see **Loading box…**.

### Details

| Field | What it shows |
| - | - |
| **Supply** | Name and SKU. |
| **Warehouse** | Where the box is now. |
| **On hand** | Units in the box, with the unit, for example `80 × Unit`. |
| **Received as** | Only for boxes received as a presentation: count, presentation name and the version that was received, for example `3 × Box of 100 (version 2)`. If that presentation can no longer be read: `3 × presentation not available (version 2)`. |

If the box's stored unit cannot be confirmed, the screen adds **The unit of this box needs review. Its quantities are shown without a unit until someone checks it.**

<Note>
  The box screen does not list the lot, the expiry date or the serial numbers. The lot and the expiry date are printed on the label preview (see below). Serial numbers are not shown anywhere in the console yet; they are returned by `GET /v1/inventory/boxes/{boxId}` in the [public API](/docs/en/api-reference/introduction).
</Note>

### Separated containers

When a box was separated from another one, or other containers were separated from it, the screen shows:

| Label | What it shows |
| - | - |
| **Separated from** | The code of the original box, as a link. |
| **Separated into** | Each container separated from this box: its code (a link), the quantity it started with and its current status (for example `20 · Active`), and **Print the label for** followed by its code. Up to 50 containers are listed, oldest first. |

A related box in a warehouse outside your access is not named at all.

### Movements

The **Movements** table lists the box's whole ledger, oldest first. With no movements it says **No movements yet.**

| Column | What it shows |
| - | - |
| **Type** | The movement, for example **Received**, **Used**, **Moved in** or **Separated out**. An exit handed to a room shows **Delivered**. See every type in the [inventory overview](/docs/en/inventory/overview). |
| **Change** | The signed change to on hand, with the unit, for example `+300 × Unit` or `−5 × Unit`. Moves, reservations, picks and status changes show `0`. |
| **Where** | The room or area of an exit; otherwise the warehouse the box entered or left. |
| **Purpose** | For exits: **Procedure**, **Cleaning**, **Administrative** or **Other**. |
| **Responsible** | For exits: the professional named responsible. |
| **Recorded by** | Who recorded the movement. Someone no longer on the team, or an automatic step such as an order allocation, shows **Not on the team**. |
| **When** | Date and time the movement happened. |

A column with no value for that movement shows a dash. Care references are never shown in this table; see [Record use and move boxes](/docs/en/inventory/use-and-moves).

## Print or reprint a label

The **Label** section is on every box screen: "Print it and stick it on the container so a scanner finds this box."

<Steps>
  <Step title="Show the label">
    Select **Show the label for BX-7K3QM9**. The links **Print the label for** after a receipt or a separation open the box with the label already shown.
  </Step>

  <Step title="Check the preview">
    The label shows the code as a Code 128 barcode, the code in text underneath, the supply name and SKU, what the box was received as (for example `3 × Box of 100`) and, when the box has them, **Lot** and **Expires** with the date.
  </Step>

  <Step title="Print">
    Press **Print label**. Your browser's print dialog opens and the page prints only the label, black on white, 62 mm wide, at the top-left corner of the sheet.
  </Step>
</Steps>

You can reprint a label as often as you need; printing records nothing. A code with characters outside plain letters, digits and common symbols prints as text only, without a barcode.

## Actions on an active box

The forms below appear only while the box is **Active**, and each one only to members with its permission. When the box is in any other status the screen says **This box is closed and takes no further movements.**

| Section | Permission | Guide |
| - | - | - |
| Quantity, room or area and **Consume** | `inventory.consume` | [Record use and move boxes](/docs/en/inventory/use-and-moves) |
| **Destination warehouse** and **Move** | `inventory.transfer` | [Record use and move boxes](/docs/en/inventory/use-and-moves) |
| **Separate part of this box** | `inventory.transfer` | Below |
| **Correct this box** and **Count this supply here** | `inventory.adjust` | [Corrections](/docs/en/inventory/corrections), [Counts](/docs/en/inventory/counts) |
| **Take the box out of use** | `inventory.adjust` | Below |

`inventory.adjust` includes `inventory.consume` and `inventory.transfer`.

## Separate part of a box

Separating takes some units out of a box into a new, labeled container in the same warehouse, for example to take 20 gloves to a treatment room while the rest of the box stays on the shelf.

**Who can do it:** `inventory.transfer` (**Move boxes between warehouses**) or `inventory.adjust`, with access to the box's warehouse.

**Where:** the box screen, section **Separate part of this box**: "Take some units out into a new container. It keeps this box's lot and expiry."

<Steps>
  <Step title="Quantity">
    Type the units in **Quantity to separate**. The hint gives the maximum, for example **Up to 12 free units.**
  </Step>

  <Step title="Label (optional)">
    Type the code you will write on the new container in **Label for the new container (optional)**, or leave it empty: "Leave it empty and a label will be suggested."
  </Step>

  <Step title="Separate">
    Press **Separate**.
  </Step>

  <Step title="Label the container">
    The screen confirms, for example, **Separated 20 into BX-7K3QM9-F1. Write this code on the new container.**, shows the code on its own line, and offers **Open BX-7K3QM9-F1** and **Print the label for BX-7K3QM9-F1**.
  </Step>
</Steps>

### Rules

* The quantity is a whole number from 1 up to the smaller of the box's available units and its on hand minus one. At least one unit always stays in the box: to take everything, move the whole box instead.
* Only free units can be separated, never units reserved for orders. When nothing is free the section says **This box has no free units left to separate.**
* The box must be **Active**, not past its expiry date, not tracking serial numbers, and with a confirmed unit.
* A typed label has up to 64 characters, spaces at either end removed, and must be unique in your dental clinic. Without one, muveya uses the original code followed by `-F` and a number: `BX-7K3QM9-F1`, then `BX-7K3QM9-F2`, skipping codes already in use.
* The new container is **Active**, in the same warehouse, with the same supply, lot, expiry date, reception date and unit. It is not tied to a presentation: its quantity is in base units. It carries no reservation.

### What the system records

* A `split_out` movement (**Separated out**) on the original box, subtracting the quantity.
* A new box linked to the original one.
* A `split_in` movement (**Separated in**) on the new box, adding the same quantity.

Both movements share one separation identity, and the supply's total on hand does not change. A repeated press or a retry after a lost answer never separates twice: it answers **Already recorded.**

During [picking](/docs/en/deliveries/picking), muveya can separate a box by itself so that an order ships exactly the units reserved for it. Those separations appear in the same history.

### What can go wrong

| Message | What to do |
| - | - |
| **Enter a whole number from 1 to 12.** | Type a whole number inside the range shown. |
| **Use at most 64 characters.** | Shorten the label. |
| **That label is already on another box. Write a different one.** | Write another label, or leave it empty. |
| **You cannot separate everything the box holds. To move the whole box, move it instead.** | Separate less, or move the box. |
| **Only free units can be separated: the rest is reserved for orders.** | Separate fewer units. |
| **This box tracks serial numbers, and separating it is not supported yet.** | Serial-tracked boxes cannot be separated yet. |
| **This box's unit has not been verified, so it cannot be separated. Review the supply's unit first.** | Ask a catalog manager to confirm the unit in the [catalog](/docs/en/catalog/items). |
| **This box has expired and cannot be separated.** | The expiry date has passed. Take the box out of use. |
| **This box can no longer be separated in its current state.** | The box is no longer active. Reload the page. |

## Take a box out of use

**Who can do it:** `inventory.adjust` (**Adjust and count stock**), with access to the box's warehouse.

**Where:** the last section of the box screen, **Take the box out of use**: "Quarantine keeps it aside to check; expired and disposed boxes leave the usable stock. Its history stays." It is shown only while the box is **Active**.

<Steps>
  <Step title="Choose the outcome">
    In **What happens to it** (**Choose…**), pick **Quarantine**, **Mark as expired** or **Dispose**. Pressing **Continue** without a choice shows **Choose what happens to the box.**
  </Step>

  <Step title="Give a reason (optional)">
    In **Why**, pick **Damaged**, **Expired**, **Contaminated**, **Recalled by the supplier** or **Other**.
  </Step>

  <Step title="Continue">
    Press **Continue**.
  </Step>

  <Step title="Confirm">
    A dialog asks, for example, **Quarantine: box BX-7K3QM9?** with "The box stops taking movements. This cannot be undone from the Console." Press **Yes, do it**, or **Keep the box active** to cancel.
  </Step>

  <Step title="Read the result">
    The screen says **Box BX-7K3QM9 is now: Quarantined.** A repeated request says **This was already recorded.**
  </Step>
</Steps>

| Outcome | New status | Movement |
| - | - | - |
| **Quarantine** | **Quarantined** | `quarantine` |
| **Mark as expired** | **Expired** | `expire` |
| **Dispose** | **Disposed** | `dispose` |

### What the system records

One movement of the chosen type, with a change of `0`, the reason you chose and you as the person who recorded it, and the box's new status, in a single step. The box's history and on hand stay as they were, but the box leaves usable stock: it can no longer be used, moved, separated, corrected or reserved for orders.

### Rules and limits

* The console offers this only for **Active** boxes. muveya also accepts disposing of a box that is already quarantined or expired, but there is no button for that yet; write to [team@muveya.com](mailto:team@muveya.com) if you need it recorded.
* There is no action to return a box to **Active**.
* To take every box of a lot out of use at once, use [Lot recall](/docs/en/inventory/lot-recall).
* This is marked as a sensitive action. In the current release a second factor is optional and does not block it; see [Account security](/docs/en/account/security).

### What can go wrong

| Message | Cause | What to do |
| - | - | - |
| **The record changed or already exists. Review it before trying again.** | The box stopped being active in the meantime. | Reload the box. |
| **This record is not available in the active dental clinic account.** | The box is no longer in a warehouse you can reach. | Check its location with someone who can see it. |
| **Your account does not have permission for this action.** | You do not have `inventory.adjust`. | Ask an administrator. |

## Related pages

<CardGroup cols={2}>
  <Card title="Record use and move boxes" icon="arrow-right-arrow-left" href="/docs/en/inventory/use-and-moves">
    Consume from a box or move it.
  </Card>

  <Card title="Corrections" icon="scale-balanced" href="/docs/en/inventory/corrections">
    Fix what a box is said to hold.
  </Card>

  <Card title="Lot recall" icon="triangle-exclamation" href="/docs/en/inventory/lot-recall">
    Hold every box of a lot.
  </Card>

  <Card title="Picking" icon="dolly" href="/docs/en/deliveries/picking">
    How boxes are picked and separated for orders.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.