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

# Receive stock

> Receive a delivery into a warehouse as a new labeled box, with the lot, serial numbers and expiry date the supply requires

Receiving turns what arrived into stock. Each receipt creates **one new box** in one warehouse, records a `receive` movement in the stock ledger and gives the box a code you can print as a label. If a delivery brings several containers you want to track separately, receive each one as its own box.

## Who can do it

* The `inventory.receive` permission (**Receive deliveries**), or `inventory.adjust`, which includes it.
* Access to the warehouse you receive into. Only active warehouses in your access are offered.

Members without the permission do not see the **Receive** link. If they open the screen anyway, it shows **You don’t have permission to receive deliveries. Ask an administrator for “Receive deliveries”.**

## Where

**Inventory** in the main navigation, then **Receive** at the top of the **Stock** screen. The direct path is `console.muveya.com/inventory/receive`. The screen is titled **Receive**: "Scan the supplier code or choose the supply, confirm what arrived and say how many."

## Before you start

* The supply must exist and be active in the [catalog](/docs/en/catalog/items), with its unit of measure.
* To receive by scanning, the supplier's code must be registered on one of the supply's presentations. See [Presentations and codes](/docs/en/catalog/presentations-and-codes).
* Check what the supply tracks (lot, serial numbers, expiry date). The screen asks only for what the supply tracks, and requires all of it.

## Step by step

First, under **How to find what arrived**, choose **Scan a code** (selected when the screen opens) or **Choose the supply**.

<Tabs>
  <Tab title="Scan a code">
    <Steps>
      <Step title="Read the code">
        The **Supplier code** field has the focus when the screen opens, so a barcode reader can type straight into it. Scan or type the code and press **Look up**. While it searches you see **Searching…**.
      </Step>

      <Step title="Check what the code found">
        One match shows a card with the presentation name, the supply (name and SKU) and its content, for example **Contains 100 × Unit**. The count you enter next is a count of that presentation.
      </Step>

      <Step title="If the code names more than one presentation">
        The screen says **This code names more than one presentation. Choose the one that arrived.** and lists each candidate as presentation, supply, code type and code, for example `Box of 100 · Nitrile gloves M (GTIN 07501234567893)`. Select the one that arrived. A candidate marked **Retired: it no longer accepts new entries.** cannot be received.
      </Step>

      <Step title="If the code is not registered">
        The screen says **That code is not linked to a supply yet. Open the supply in the catalog and add the code under Presentations, or choose the supply to receive it without a code.** Use **Open the catalog** to register it, or switch to **Choose the supply**.
      </Step>
    </Steps>

    A printed code whose check digit does not match shows **The printed code does not match its own check digit. You can still receive it.** The goods can still be received.
  </Tab>

  <Tab title="Choose the supply">
    <Steps>
      <Step title="Search the supply">
        Type in **Search supplies** ("Type part of the name or the supply code."). The search ignores upper case and accents and only lists active supplies. Up to 8 results appear under **Supplies found**; with more, you see a line like **Showing 8 of 12. Keep typing to narrow the list.**
      </Step>

      <Step title="Select it">
        Select a result. It appears under **Supply**, with **Change supply** to pick another one.
      </Step>

      <Step title="Say how it arrived">
        In **Received as** (**Choose how it arrived**), choose one of the supply's active presentations, shown as name and content (for example `Box of 100 · 100 × Unit`), or **Loose units** followed by the base unit when you count single units.
      </Step>
    </Steps>
  </Tab>
</Tabs>

Then complete the receipt form:

<Steps>
  <Step title="How many">
    Enter the count in **How many** (for loose units the field reads **How many, in** followed by the unit). It starts at 1 and must be a whole number greater than zero.
  </Step>

  <Step title="Box code (optional)">
    Type the code written on the container, or leave **Box code (optional)** empty: "Leave it empty and a code is generated for the box."
  </Step>

  <Step title="Warehouse">
    Choose the **Warehouse**. If only one warehouse is available to you, it is shown already chosen.
  </Step>

  <Step title="Tracking data">
    Fill in **Lot number**, **Expiry date** and **Serial numbers** when they appear. See the rules below.
  </Step>

  <Step title="Check the total">
    The screen restates the result in base units, for example **Enters as 300 × Unit**. Check it before you confirm: this is the quantity that enters the ledger.
  </Step>

  <Step title="Receive">
    Press **Receive**. The button stays disabled until everything required is complete.
  </Step>

  <Step title="Label the box">
    The screen confirms **Received into box BX-7K3QM9.** with two links: **Open box BX-7K3QM9** and **Print the label for BX-7K3QM9**. The form clears for the next item, and in scan mode the code field takes the focus again.
  </Step>
</Steps>

## Quantities, presentations and units

* **Presentation**: the count is multiplied by the presentation's content. Three boxes of 100 units enter as 300 units. The box keeps the presentation, its version and the count, shown later as **Received as** on the box.
* **Loose units**: the count is already in base units.
* The ledger always stores base units. The supply's unit is locked when it is activated in the catalog; a receipt also locks it if it was not locked yet.
* Only active presentations can be received. A presentation that is retired while you are on the screen shows **This presentation is retired and no longer accepts new entries.**
* If someone corrects the presentation while you are receiving, nothing is received and the screen shows the new content, for example **This presentation was corrected while you were receiving: it is now Box of 50, 50 × Unit (version 3). Nothing was received: check the count and receive again.** While the new content loads it says **This presentation was corrected while you were receiving. Nothing was received: loading what it contains now…**
* If the supply's unit changes while you are receiving, nothing is received: **The unit of this supply changed while you were receiving. Nothing was received: review the amount and receive again.**

## Lot, serial numbers and expiry date

| Field | Asked when | Rules |
| - | - | - |
| **Lot number** | The supply tracks lots. | Required. Cannot be blank. Up to 120 characters. Spaces at either end are removed; the rest is stored as typed and is what [Lot recall](/docs/en/inventory/lot-recall) searches. |
| **Expiry date** | The supply tracks expiry. | Required. Must be today or a later date (UTC). A date in the past is refused. |
| **Serial numbers** | The supply tracks serial numbers. | Exactly one serial per base unit received (count multiplied by content). The hint counts them, for example **2 of 3 entered, separated by commas or new lines**. The field is a single line, and Enter submits the form, so separate serials with commas. No blanks, no repeats, up to 120 characters each. A serial already received for this supply, in any box and any status, is refused. |

Fields for data the supply does not track are not shown and nothing is stored for them. When required tracking data is missing or invalid, including an expiry date in the past, the receipt is refused with **This supply needs its lot, serial numbers or expiry date to be received. Check them and receive again.**

## Box codes

* Leave the code empty and muveya generates one: `BX-` followed by six characters made of digits and capital letters, never I, L, O or U (for example `BX-7K3QM9`), so it is easy to read aloud and copy by hand.
* A typed code has spaces at either end removed, can have up to 64 characters and must be unique in your dental clinic. A code already in use shows **Another box already uses this code. Change it or leave it empty.** under the field.
* The label prints the code as a Code 128 barcode. Use letters without accents, digits and common symbols; a code with other characters prints as text only, without a barcode.

To print the label, follow **Print the label for** and then **Print label** on the box screen. See [Boxes and labels](/docs/en/inventory/boxes).

## What the system records

* A new box with status **Active**: its code, supply, warehouse, quantity in base units, reception time (server clock), unit of measure and, when they apply, the presentation (with its version and count), lot, serial numbers and expiry date.
* One `receive` movement (**Received**) that adds the quantity to on hand, with you as the person who recorded it.
* A balance for the box: on hand equal to the quantity, nothing reserved.
* Stock alerts for the supply are evaluated again shortly after (see [Replenishment and alerts](/docs/en/inventory/replenishment-and-alerts)).

## Retries: a receipt is never recorded twice

Every receipt you start carries an internal operation key that survives failures.

* If the connection drops or the server does not answer, the screen says **We could not confirm whether this receipt was recorded. Receive again with the same details: it will never be recorded twice.** Press **Receive** again without changing anything. Either the receipt is recorded now, or you see **Already recorded, in box BX-7K3QM9.** with the box that already exists.
* A double click or a repeated press also creates only one box.
* If you change the details and the first attempt had in fact been recorded, you see **An earlier attempt was already recorded with different details. Check the stock before receiving again.** Check the **Stock** screen filtered by the supply. After this message, your next **Receive** counts as a new receipt.
* After a successful receipt the form clears and the next **Receive** is a new box. Two identical deliveries received one after the other are two boxes, as they should be.

## Rules and limits

| Rule | Limit |
| - | - |
| Count | Whole number from 1 to 1,000,000. |
| Total in base units | Up to 1,000,000,000. |
| Box code | Optional, up to 64 characters, unique in the dental clinic. |
| Lot number | Up to 120 characters, not blank. |
| Serial numbers | One per base unit, unique, up to 120 characters each. |
| Expiry date | Today or later (UTC). |
| Warehouse | Active and in your warehouse access. |
| Presentation | Active, of the chosen supply. |

## What can go wrong

| Message | Cause | What to do |
| - | - | - |
| **You have no warehouse to receive into. Ask an administrator for access.** | No active warehouse is in your access. | Ask an administrator to grant a warehouse in [Team](/docs/en/account/team). |
| **No active supply matches “gauze”.** | The search found nothing among active supplies. | Try another word or the SKU, or create the supply in the catalog. |
| **This presentation is retired and no longer accepts new entries.** | The presentation was retired. | Choose another presentation or **Loose units**. |
| **Another box already uses this code. Change it or leave it empty.** | The typed box code exists. | Type another code or leave it empty. |
| **This supply needs its lot, serial numbers or expiry date to be received. Check them and receive again.** | Tracking data is missing or invalid, or the expiry date is in the past. | Check the package and correct the fields. |
| A message naming serial numbers, such as **These serial numbers were already received for this supply: SN-0042. A serial number identifies one unit: check the package, or correct the original box with an adjustment.** | A serial belongs to an existing box of the supply. Nothing was received. | Check the serials against the package. If the earlier box is wrong, see [Corrections](/docs/en/inventory/corrections). |
| **This presentation was corrected while you were receiving…** | The presentation changed after you opened it. Nothing was received. | Check the new content and the count, then receive again. |
| **The unit of this supply changed while you were receiving. Nothing was received: review the amount and receive again.** | The supply's unit changed. | Review the amount and receive again. |
| **An earlier attempt was already recorded with different details. Check the stock before receiving again.** | A previous attempt was recorded with other details. | Check the stock before receiving again. |
| **We could not confirm whether this receipt was recorded. Receive again with the same details: it will never be recorded twice.** | No answer from the server. | Press **Receive** again with the same details. |
| **Review the entered values before trying again.** | A value is outside the limits, for example a box code longer than 64 characters. | Correct the value. |
| **The record changed or already exists. Review it before trying again.** | The warehouse was deactivated, or the supply's unit is not confirmed in the catalog. | Choose an active warehouse, or ask a catalog manager to confirm the unit. |
| **This record is not available in the active dental clinic account.** | The supply or warehouse no longer exists or is outside your access. | Reload and choose again. |
| **Your account does not have permission for this action.** | Your permission was removed. | Ask an administrator. |

## Receiving from WhatsApp

Members linked to WhatsApp can also receive stock from their phone. Those receipts follow the same rules and land in the same ledger. See [WhatsApp operations](/docs/en/whatsapp/operations).

## Related pages

<CardGroup cols={2}>
  <Card title="Boxes and labels" icon="box-open" href="/docs/en/inventory/boxes">
    Open the new box and print its label.
  </Card>

  <Card title="Presentations and codes" icon="barcode" href="/docs/en/catalog/presentations-and-codes">
    Register supplier codes so they can be scanned.
  </Card>

  <Card title="Inventory overview" icon="boxes-stacked" href="/docs/en/inventory/overview">
    Balances, statuses and the ledger.
  </Card>

  <Card title="Delivery and receipt" icon="truck" href="/docs/en/deliveries/delivery-and-receipt">
    Receiving boxes that arrive from an order is a different flow.
  </Card>
</CardGroup>


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