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

# WhatsApp operations

> Every conversation the WhatsApp channel supports: the menu, each prompt and card, the limits, and every reply you can get.

This page walks through each conversation of the muveya WhatsApp channel as it works today: the menu, **Check stock**, **Log consumption** and **Receive stock**. Your number must be linked first; see [WhatsApp channel](/docs/en/whatsapp/overview).

<Note>
  The channel sends every message in Spanish today. In the steps below, buttons and menu options are given as sent, with the English meaning in parentheses. Tables quote the English version of each reply. At the end of each section, the exact texts appear in Spanish, English and Portuguese, in the same order.
</Note>

## General rules

| Rule | Detail |
| - | - |
| Opening the menu | Any typed message while no flow is active shows the menu. |
| One flow at a time | Each number has one active flow. Tapping a menu option, even on an older menu message, replaces the current flow. |
| Timeout | A flow is kept for 10 minutes after the last answer it accepted. An answer that gets an error reply does not renew the 10 minutes. After that its data is forgotten and nothing is changed. |
| Cancel | Every question and every summary card has a **Cancelar** (Cancel) button. It ends the flow with no change. The item and warehouse lists have no Cancel button: wait for the timeout or choose another menu option. |
| What text means | A typed message is read only as the answer to the current question (a box code, a quantity, a SKU, a lot, serial numbers or a date). It is never read as a command. |
| Other message types | A photo, audio, document, sticker or location ends the current flow and shows the menu. |
| Old buttons | A tap on **Confirmar**, **Corregir** or a list row from a flow that has ended or moved on does not act: you get the menu or the expired-summary reply. A tap on **Cancelar** in any older message ends the flow that is active now. |
| Permissions | Your permissions and warehouses are read again on every message. If you lose one during a flow, the flow ends with the "no permission" reply, even at the confirmation step. |
| Long messages | A text longer than WhatsApp allows is split into several messages; nothing is cut. |

## The menu

The menu is a WhatsApp list: header **muveya**, the question **¿Qué necesitas hacer?** (What do you need to do?) and a **Ver opciones** (Options) button that opens four options:

| Option | Meaning | See |
| - | - | - |
| **Consultar stock** | Check stock | [Check stock](#check-stock) |
| **Registrar consumo** | Log consumption | [Log consumption](#log-consumption) |
| **Recibir stock** | Receive stock | [Receive stock](#receive-stock) |
| **Ayuda** | Help | Sends the help text and ends any flow. |

<CodeGroup>
  ```text Spanish (sent today) theme={null}
  muveya
  ¿Qué necesitas hacer?
  [Ver opciones]
    Consultar stock
    Registrar consumo
    Recibir stock
    Ayuda

  Ayuda:
  Elige una opción del menú: consultar stock, registrar un consumo o recibir stock en una caja nueva.

  Cancelar:
  Listo, cancelé eso. Escríbeme cuando quieras retomar.
  ```

  ```text English theme={null}
  muveya
  What do you need to do?
  [Options]
    Check stock
    Log consumption
    Receive stock
    Help

  Help:
  Pick an option from the menu: check stock, log a consumption, or receive stock into a new box.

  Cancel:
  Done, I cancelled that. Message me whenever you want to pick it back up.
  ```

  ```text Portuguese theme={null}
  muveya
  O que você precisa fazer?
  [Ver opções]
    Consultar estoque
    Registrar consumo
    Receber estoque
    Ajuda

  Ajuda:
  Escolha uma opção do menu: consultar estoque, registrar um consumo ou receber estoque em uma caixa nova.

  Cancelar:
  Pronto, cancelei isso. Me escreva quando quiser retomar.
  ```
</CodeGroup>

## Check stock

**Permission:** `inventory.read` (**View inventory**). Nothing is recorded.

<Steps>
  <Step title="Choose Consultar stock">
    muveya asks for the box code, with a **Cancelar** button.
  </Step>

  <Step title="Send the box code">
    Type the code exactly as it is on the label. Spaces before and after are ignored; upper and lower case matter.
  </Step>

  <Step title="Read the answer">
    muveya replies with the box and ends the flow. To check another box, send any message to open the menu again.
  </Step>
</Steps>

The answer shows:

* the box code, the supply name and its SKU;
* **Warehouse**: the warehouse the box is in;
* **Available**: the quantity on hand minus what is reserved for orders;
* **Lot** and **Expires** (`YYYY-MM-DD`) when the box has them. If the stored expiration date cannot be read, the line says **Expiry: needs review**; check the box in the console.

Any box in your warehouses can be checked, whatever its status (active, depleted, quarantined, expired).

| Reply | When | What to do |
| - | - | - |
| You don't have permission to check stock. You can do it from the web console. | You lack `inventory.read`. The code is asked for first; the check happens when you send it. | Ask for **View inventory**, or check the box in the console. |
| I couldn't find a box with that code in your inventory. Check the code and try again. | No box has that code, or it is in a warehouse you are not assigned. | Check the label. Open the menu again to retry. |

<CodeGroup>
  ```text Spanish (sent today) theme={null}
  Envía el código de la caja que quieres consultar.
  [Cancelar]

  BX-000123 — Guantes de nitrilo M (GLV-NIT-M)
  Bodega: Bodega central
  Disponible: 40
  Lote: L-2291 · Vence: 2027-03-31

  (expiration date unreadable)
  Vencimiento: requiere revisión

  No tienes permiso para consultar stock. Puedes hacerlo desde la consola web.

  No encontré una caja con ese código en tu inventario. Revisa el código e inténtalo de nuevo.
  ```

  ```text English theme={null}
  Send the code of the box you want to check.
  [Cancel]

  BX-000123 — Nitrile gloves M (GLV-NIT-M)
  Warehouse: Central warehouse
  Available: 40
  Lot: L-2291 · Expires: 2027-03-31

  (expiration date unreadable)
  Expiry: needs review

  You don't have permission to check stock. You can do it from the web console.

  I couldn't find a box with that code in your inventory. Check the code and try again.
  ```

  ```text Portuguese theme={null}
  Envie o código da caixa que você quer consultar.
  [Cancelar]

  BX-000123 — Luvas de nitrilo M (GLV-NIT-M)
  Depósito: Depósito central
  Disponível: 40
  Lote: L-2291 · Validade: 2027-03-31

  (expiration date unreadable)
  Validade: requer revisão

  Você não tem permissão para consultar estoque. Você pode fazer isso no console web.

  Não encontrei uma caixa com esse código no seu estoque. Confira o código e tente de novo.
  ```
</CodeGroup>

## Log consumption

**Permission:** `inventory.consume` (**Record usage**) or `inventory.adjust` (**Adjust and count stock**), and at least one assigned warehouse if your access is limited to some warehouses. This is the WhatsApp version of recording usage from a box; see [Use and moves](/docs/en/inventory/use-and-moves).

<Steps>
  <Step title="Choose Registrar consumo">
    muveya asks for the code of the box you consumed from, with a **Cancelar** button. If you lack the permission, you get the "no permission" reply instead.
  </Step>

  <Step title="Send the box code">
    The box must be in one of your warehouses, active, and not expired (its expiration date is today or later, in UTC). If it is not, muveya says no box is available and waits for another code.
  </Step>

  <Step title="Send the quantity">
    muveya shows the box, the supply and **Available** (on hand minus reserved), and asks how many units you consumed. Send a whole number greater than zero and not above **Available**.
  </Step>

  <Step title="Review the summary card">
    The card shows the box, the supply, **Warehouse**, **Quantity** and **Available after**, with three buttons: **Confirmar** (Confirm), **Corregir** (Edit) and **Cancelar** (Cancel). **Corregir** asks for the quantity again for the same box.
  </Step>

  <Step title="Confirm">
    muveya checks your permission, your warehouse, the box and its stock again, and records the consumption. The receipt shows the box, the supply, **Quantity**, **Available** and **Operation no.**
  </Step>
</Steps>

### Rules

* Only whole units of the supply's own unit. Presentations and packaging are not offered on WhatsApp.
* The channel does not ask for a room, a responsible person or a care reference. If the box's warehouse is the stock point of an active room with **Counted stock**, the consumption is attributed to that room as direct use. Otherwise it is recorded without a room, which the [Consumption report](/docs/en/reports/consumption) counts as observed use. To record a delivery to a room, use the console.
* The receipt's **Available** line is the box's on-hand quantity after the consumption, as recorded. It can differ from the card's **Available after** when part of the box is reserved for an order.
* When the box reaches zero it becomes depleted.

### What the system records

A `consume` movement in the stock ledger for the box, with you as actor and reason `whatsapp`, and the audit fact `channels.consume_confirmed`. **Operation no.** is the movement id; the same movement appears in the box history ([Boxes](/docs/en/inventory/boxes)).

### Replies

| Reply | When | Flow afterwards |
| - | - | - |
| You don't have permission to log consumption. You can do it from the web console. | You lack the permission or have no warehouse, now or at any later step. | Ended |
| No box is available for consumption with that code. Check the code or send another box’s code. | Unknown code, box outside your warehouses, not active, or expired. | Waits for another code |
| Send a valid quantity: a whole number greater than zero. | The quantity is not a whole number above zero. Also at confirmation if the quantity is refused. | Waits for another quantity (ended if it happens at confirmation) |
| That is more than what is available. Send a quantity up to what is left. | The quantity is above **Available**. | Waits for another quantity |
| This box has expired. Consumption was not recorded. Choose “Log consumption” to start with another box. | The box expired between the card and your confirmation. The menu follows. | Ended |
| The stock for that box changed, so I did not apply it. Start again to see the current amount. | At confirmation the stock or the box changed (for example not enough on hand any more, or the box is no longer active). | Ended, nothing recorded |
| That summary expired and nothing was changed. Start again when you want. | You tapped a button of an older card, or the flow timed out. | Ended or unchanged; nothing recorded |

<CodeGroup>
  ```text Spanish (sent today) theme={null}
  Envía el código de la caja de la que consumiste.
  [Cancelar]

  BX-000123 — Guantes de nitrilo M (GLV-NIT-M)
  Disponible: 40
  ¿Cuántas unidades consumiste?
  [Cancelar]

  Revisa y confirma el consumo:
  BX-000123 — Guantes de nitrilo M (GLV-NIT-M)
  Bodega: Bodega central
  Cantidad: 2
  Disponible después: 38
  [Confirmar] [Corregir] [Cancelar]

  Consumo registrado.
  BX-000123 — Guantes de nitrilo M (GLV-NIT-M)
  Cantidad: 2
  Disponible: 38
  N.º de operación: 66e9f0c2a1b2c3d4e5f60718

  No tienes permiso para registrar consumo. Puedes hacerlo desde la consola web.
  No hay una caja disponible para consumo con ese código. Revisa el código o envía el de otra caja.
  Envía una cantidad válida: un número entero mayor que cero.
  Eso supera lo disponible. Envía una cantidad menor o igual a lo que queda.
  Esta caja está vencida. No se registró el consumo. Elige “Registrar consumo” para empezar con otra caja.
  El stock de esa caja cambió, así que no lo apliqué. Empieza de nuevo para ver la cantidad actual.
  Ese resumen expiró y no se cambió nada. Empieza de nuevo cuando quieras.
  ```

  ```text English theme={null}
  Send the code of the box you consumed from.
  [Cancel]

  BX-000123 — Nitrile gloves M (GLV-NIT-M)
  Available: 40
  How many units did you consume?
  [Cancel]

  Review and confirm the consumption:
  BX-000123 — Nitrile gloves M (GLV-NIT-M)
  Warehouse: Central warehouse
  Quantity: 2
  Available after: 38
  [Confirm] [Edit] [Cancel]

  Consumption recorded.
  BX-000123 — Nitrile gloves M (GLV-NIT-M)
  Quantity: 2
  Available: 38
  Operation no.: 66e9f0c2a1b2c3d4e5f60718

  You don't have permission to log consumption. You can do it from the web console.
  No box is available for consumption with that code. Check the code or send another box’s code.
  Send a valid quantity: a whole number greater than zero.
  That is more than what is available. Send a quantity up to what is left.
  This box has expired. Consumption was not recorded. Choose “Log consumption” to start with another box.
  The stock for that box changed, so I did not apply it. Start again to see the current amount.
  That summary expired and nothing was changed. Start again when you want.
  ```

  ```text Portuguese theme={null}
  Envie o código da caixa da qual você consumiu.
  [Cancelar]

  BX-000123 — Luvas de nitrilo M (GLV-NIT-M)
  Disponível: 40
  Quantas unidades você consumiu?
  [Cancelar]

  Revise e confirme o consumo:
  BX-000123 — Luvas de nitrilo M (GLV-NIT-M)
  Depósito: Depósito central
  Quantidade: 2
  Disponível depois: 38
  [Confirmar] [Corrigir] [Cancelar]

  Consumo registrado.
  BX-000123 — Luvas de nitrilo M (GLV-NIT-M)
  Quantidade: 2
  Disponível: 38
  N.º da operação: 66e9f0c2a1b2c3d4e5f60718

  Você não tem permissão para registrar consumo. Você pode fazer isso no console web.
  Não há uma caixa disponível para consumo com esse código. Confira o código ou envie o de outra caixa.
  Envie uma quantidade válida: um número inteiro maior que zero.
  Isso é mais do que o disponível. Envie uma quantidade até o que resta.
  Esta caixa está vencida. O consumo não foi registrado. Escolha “Registrar consumo” para começar com outra caixa.
  O estoque dessa caixa mudou, então não apliquei. Comece de novo para ver a quantidade atual.
  Esse resumo expirou e nada foi alterado. Comece de novo quando quiser.
  ```
</CodeGroup>

## Receive stock

**Permission:** `inventory.receive` (**Receive deliveries**) or `inventory.adjust` (**Adjust and count stock**), and at least one assigned warehouse if your access is limited to some warehouses. The reception always creates a new box. For receptions by presentation or by scanned code, use the console; see [Receive stock](/docs/en/inventory/receive).

<Steps>
  <Step title="Choose Recibir stock">
    muveya sends the list of supplies (**Elegir ítem**, Choose item). If you lack the permission, you get the "no permission" reply instead.
  </Step>

  <Step title="Pick the supply">
    Tap a supply in the list, or type its SKU if it is not listed. muveya then checks that the supply's unit of measure is verified.
  </Step>

  <Step title="Pick the warehouse">
    Tap a warehouse in the list (**Elegir bodega**, Choose warehouse). Typed text only sends the list again.
  </Step>

  <Step title="Send the new box code">
    muveya shows the supply and warehouse and asks for the code of the new box.
  </Step>

  <Step title="Send the quantity">
    A whole number greater than zero, in the supply's unit.
  </Step>

  <Step title="Send the tracking data the supply requires">
    Only when the catalog asks for it, in this order: the lot number if the supply has **Track lots**; the serial numbers if it has **Track serial numbers**; the expiration date if it has **Track expiration dates** (the supplies rotated by nearest expiry, FEFO). A supply with none of these goes straight to the card.
  </Step>

  <Step title="Review the summary card">
    The card shows the box code, the supply, **Warehouse**, **Quantity**, and **Lot**, **Serial numbers** and **Expires** when captured, with **Confirmar**, **Corregir** and **Cancelar**. **Corregir** goes back to the box code for the same supply and warehouse, and asks again for the code, quantity and tracking data.
  </Step>

  <Step title="Confirm">
    muveya checks everything again and creates the box. The receipt shows the box, the supply, the warehouse, the quantity, the tracking data and **Operation no.**
  </Step>
</Steps>

### Limits and rules

| Item | Rule |
| - | - |
| Supply list | Your active supplies, oldest first, 10 at most. Names longer than 24 characters are shortened with `…`; the SKU is shown under each name. |
| Typed SKU | Matches any active supply, not only the 10 listed. Exact SKU, upper or lower case, spaces around ignored. |
| Unit of measure | The supply's unit must be verified in the catalog. Otherwise the reception stops with the "Something changed" reply; review the supply in [Catalog items](/docs/en/catalog/items). |
| Warehouse list | The active warehouses you are assigned, oldest first, 10 at most. There is no typed fallback: a warehouse beyond the first 10 can only be used from the console. |
| Box code | Any non-empty text. It must not be used by another box in your dental clinic account; muveya checks it when you send it and again when you confirm. |
| Quantity | Whole number above zero. With **Track serial numbers**, 20 units at most per reception. |
| Lot | 1 to 128 characters. |
| Serial numbers | One per line, exactly as many lines as units, each 1 to 128 characters, no repeats, and none already received for this supply. |
| Expiration date | `YYYY-MM-DD`, a real calendar date, today or later (UTC). |
| Long cards | If the details exceed what a WhatsApp card holds (for example many serial numbers), muveya first sends the full details as text, then a short card with the quantity and **Revisa los datos completos de esta recepción en los mensajes anteriores antes de confirmar.** (Review the complete receipt details in the preceding messages before confirming.) |

### What the system records

A new box with the chosen code, supply, warehouse, quantity and tracking data; its `receive` movement in the stock ledger, with you as actor; and the audit fact `channels.receive_confirmed`. **Operation no.** is the id of that movement.

### Replies

| Reply | When | Flow afterwards |
| - | - | - |
| You don't have permission to receive stock. You can do it from the web console. | You lack the permission or have no warehouse, now or at any later step, or the draft's warehouse is no longer assigned to you. | Ended |
| There are no active items in your catalog yet. Create one in the web console first. | No active supply. | Ended |
| There are no active warehouses yet. Create one in the web console first. | No active warehouse you can use. | Ended |
| I couldn't find an active item with that SKU. Check it and send it again, or pick from the list. | The typed SKU matches no active supply. | Waits for a SKU or a tap |
| Send a valid box code (it can't be empty). | Empty code. | Waits for a code |
| A box with that code already exists. Send a different code. | The code is taken. At confirmation, the flow ends instead. | Waits for a code (ended at confirmation) |
| Send a valid quantity: a whole number greater than zero. | Not a whole number above zero. | Waits for a quantity (ended at confirmation) |
| Enter a lot number with 1 to 128 characters, then start the receipt again if the supply requirements changed. | Empty or too long lot, or the lot became required. | Waits for a lot (ended at confirmation) |
| Use up to 20 whole units per receipt and one distinct serial number per unit, with 1 to 128 characters each. Correct the data or start a new receipt. | Serial data does not follow the rules, or more than 20 units for a serial-tracked supply. | Waits for the same step (ended at confirmation) |
| These serial numbers were already received for this item: `serials`. Nothing was registered. Check the package and start a new receipt. | At confirmation, some serial numbers already exist for this supply. | Ended, nothing recorded |
| That date isn't valid or is in the past. Send it as YYYY-MM-DD, today or later. | Wrong format, impossible date or past date. | Waits for a date (ended at confirmation) |
| Something changed and I did not register it. Start again to receive the stock. | The supply's unit is not verified, or at confirmation the supply, the warehouse or its catalog rules changed. | Ended, nothing recorded |
| That summary expired and nothing was changed. Start again when you want. | You tapped a button of an older card, the flow timed out, or the number now belongs to another member. | Ended or unchanged; nothing recorded |

<CodeGroup>
  ```text Spanish (sent today) theme={null}
  ¿Qué ítem recibiste? Elígelo de la lista, o envía su SKU si no aparece.
  [Elegir ítem]

  ¿A qué bodega entró?
  [Elegir bodega]

  Guantes de nitrilo M (GLV-NIT-M)
  Bodega: Bodega central
  Envía el código de la caja nueva.
  [Cancelar]

  BX-000124 — Guantes de nitrilo M (GLV-NIT-M)
  ¿Cuántas unidades recibiste?
  [Cancelar]

  Envía el número de lote indicado en el empaque.
  [Cancelar]

  Envía un número de serie por línea, uno por cada unidad recibida.
  [Cancelar]

  BX-000124 — Guantes de nitrilo M (GLV-NIT-M)
  Envía la fecha de vencimiento como AAAA-MM-DD (por ejemplo 2027-03-31).
  [Cancelar]

  Revisa y confirma la recepción:
  BX-000124 — Guantes de nitrilo M (GLV-NIT-M)
  Bodega: Bodega central
  Cantidad: 10
  Lote: L-2291
  Vence: 2027-03-31
  [Confirmar] [Corregir] [Cancelar]

  Stock recibido.
  BX-000124 — Guantes de nitrilo M (GLV-NIT-M)
  Bodega: Bodega central
  Cantidad: 10
  Lote: L-2291
  Vence: 2027-03-31
  N.º de operación: 66e9f0c2a1b2c3d4e5f60719

  No tienes permiso para recibir stock. Puedes hacerlo desde la consola web.
  Aún no hay ítems activos en tu catálogo. Crea uno en la consola web primero.
  Aún no hay bodegas activas. Crea una en la consola web primero.
  No encontré un ítem activo con ese SKU. Revísalo y envíalo de nuevo, o elígelo de la lista.
  Envía un código de caja válido (no puede estar vacío).
  Ya existe una caja con ese código. Envía un código diferente.
  Envía una cantidad válida: un número entero mayor que cero.
  Ingresa un lote de 1 a 128 caracteres. Si cambiaron los requisitos del insumo, inicia la recepción nuevamente.
  Usa hasta 20 unidades enteras por recepción y una serie distinta por unidad, de 1 a 128 caracteres cada una. Corrige los datos o inicia otra recepción.
  Estos números de serie ya se recibieron para este insumo: SN-0001, SN-0002. No registré nada. Revisa el empaque e inicia una nueva recepción.
  Esa fecha no es válida o ya pasó. Envíala como AAAA-MM-DD, de hoy en adelante.
  Algo cambió y no lo registré. Empieza de nuevo para recibir el stock.
  Ese resumen expiró y no se cambió nada. Empieza de nuevo cuando quieras.
  ```

  ```text English theme={null}
  Which item did you receive? Pick it from the list, or send its SKU if it isn't there.
  [Choose item]

  Which warehouse did it go into?
  [Choose warehouse]

  Nitrile gloves M (GLV-NIT-M)
  Warehouse: Central warehouse
  Send the code for the new box.
  [Cancel]

  BX-000124 — Nitrile gloves M (GLV-NIT-M)
  How many units did you receive?
  [Cancel]

  Send the lot number shown on the package.
  [Cancel]

  Send one serial number per line, one for each unit received.
  [Cancel]

  BX-000124 — Nitrile gloves M (GLV-NIT-M)
  Send the expiry date as YYYY-MM-DD (for example 2027-03-31).
  [Cancel]

  Review and confirm the reception:
  BX-000124 — Nitrile gloves M (GLV-NIT-M)
  Warehouse: Central warehouse
  Quantity: 10
  Lot: L-2291
  Expires: 2027-03-31
  [Confirm] [Edit] [Cancel]

  Stock received.
  BX-000124 — Nitrile gloves M (GLV-NIT-M)
  Warehouse: Central warehouse
  Quantity: 10
  Lot: L-2291
  Expires: 2027-03-31
  Operation no.: 66e9f0c2a1b2c3d4e5f60719

  You don't have permission to receive stock. You can do it from the web console.
  There are no active items in your catalog yet. Create one in the web console first.
  There are no active warehouses yet. Create one in the web console first.
  I couldn't find an active item with that SKU. Check it and send it again, or pick from the list.
  Send a valid box code (it can't be empty).
  A box with that code already exists. Send a different code.
  Send a valid quantity: a whole number greater than zero.
  Enter a lot number with 1 to 128 characters, then start the receipt again if the supply requirements changed.
  Use up to 20 whole units per receipt and one distinct serial number per unit, with 1 to 128 characters each. Correct the data or start a new receipt.
  These serial numbers were already received for this item: SN-0001, SN-0002. Nothing was registered. Check the package and start a new receipt.
  That date isn't valid or is in the past. Send it as YYYY-MM-DD, today or later.
  Something changed and I did not register it. Start again to receive the stock.
  That summary expired and nothing was changed. Start again when you want.
  ```

  ```text Portuguese theme={null}
  Qual item você recebeu? Escolha na lista, ou envie o SKU se não aparecer.
  [Escolher item]

  Em qual depósito entrou?
  [Escolher depósito]

  Luvas de nitrilo M (GLV-NIT-M)
  Depósito: Depósito central
  Envie o código da caixa nova.
  [Cancelar]

  BX-000124 — Luvas de nitrilo M (GLV-NIT-M)
  Quantas unidades você recebeu?
  [Cancelar]

  Envie o número do lote indicado na embalagem.
  [Cancelar]

  Envie um número de série por linha, um para cada unidade recebida.
  [Cancelar]

  BX-000124 — Luvas de nitrilo M (GLV-NIT-M)
  Envie a data de validade como AAAA-MM-DD (por exemplo 2027-03-31).
  [Cancelar]

  Revise e confirme o recebimento:
  BX-000124 — Luvas de nitrilo M (GLV-NIT-M)
  Depósito: Depósito central
  Quantidade: 10
  Lote: L-2291
  Validade: 2027-03-31
  [Confirmar] [Corrigir] [Cancelar]

  Estoque recebido.
  BX-000124 — Luvas de nitrilo M (GLV-NIT-M)
  Depósito: Depósito central
  Quantidade: 10
  Lote: L-2291
  Validade: 2027-03-31
  N.º da operação: 66e9f0c2a1b2c3d4e5f60719

  Você não tem permissão para receber estoque. Você pode fazer isso no console web.
  Ainda não há itens ativos no seu catálogo. Crie um no console web primeiro.
  Ainda não há depósitos ativos. Crie um no console web primeiro.
  Não encontrei um item ativo com esse SKU. Confira e envie de novo, ou escolha na lista.
  Envie um código de caixa válido (não pode ficar vazio).
  Já existe uma caixa com esse código. Envie um código diferente.
  Envie uma quantidade válida: um número inteiro maior que zero.
  Informe um lote de 1 a 128 caracteres. Se os requisitos do insumo mudaram, inicie o recebimento novamente.
  Use até 20 unidades inteiras por recebimento e uma série diferente por unidade, com 1 a 128 caracteres cada. Corrija os dados ou inicie outro recebimento.
  Estes números de série já foram recebidos para este insumo: SN-0001, SN-0002. Não registrei nada. Confira a embalagem e inicie um novo recebimento.
  Essa data não é válida ou já passou. Envie como AAAA-MM-DD, de hoje em diante.
  Algo mudou e eu não registrei. Comece de novo para receber o estoque.
  Esse resumo expirou e nada foi alterado. Comece de novo quando quiser.
  ```
</CodeGroup>

## Confirmations, retries and duplicates

* **A summary card is one operation.** Each card carries its own key. Tapping **Confirmar** twice on the same card, or tapping it again after a network problem, shows the same receipt again and never records a second movement, as long as the finished flow is still kept (10 minutes).
* **Only the latest card counts.** After **Corregir**, a new card is sent. Tapping **Confirmar** on the older card gets the expired-summary reply and changes nothing.
* **Typing does not confirm.** While a card waits, a typed message never confirms it. For a reception the card is sent again; for a consumption the menu is shown, and the card's buttons keep working until the flow expires.
* **Duplicate deliveries are ignored.** If WhatsApp delivers the same message twice, muveya processes it once.
* **Sending retries.** If a reply cannot be sent, muveya retries a few times, then processes the whole message again later. Reprocessing a confirmation returns the operation already recorded. You may occasionally receive the same reply twice; the stock changes at most once.
* **Starting over is a new operation.** A new card is a new operation. If you never got a receipt, check the box in the console before you log the same consumption or reception again.

## Related pages

<CardGroup cols={2}>
  <Card title="WhatsApp channel" icon="whatsapp" href="/docs/en/whatsapp/overview">
    Linking, languages, privacy and unlinking.
  </Card>

  <Card title="Use and moves" icon="arrow-right-arrow-left" href="/docs/en/inventory/use-and-moves">
    Record usage, deliveries to rooms and moves in the console.
  </Card>

  <Card title="Receive stock" icon="box-open" href="/docs/en/inventory/receive">
    Receive by presentation or scanned code in the console.
  </Card>

  <Card title="Boxes" icon="box" href="/docs/en/inventory/boxes">
    Find a box and its movement history.
  </Card>
</CardGroup>


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