Skip to content

Cancel a reception

A received purchase order brings one batch into stock per received line. When the goods go back to the supplier, you cancel either one batch or the whole reception of the purchase order: the Inventory module deletes nothing, it records a return operation that takes out of stock exactly what came in.

Prerequisites

  • The reception of the purchase order executed — an operation still in draft or validated is not cancelled, it is deleted
  • A return type set on the operation type used for the reception
  • The batches concerned fully available: no quantity consumed, no batch already cancelled
  • Access to the purchase order, from which the cancellation is triggered

Steps

1. Check that the return type is configured

Open Operation types, then the type carrying your receptions. The Return type field must point to a type of the opposite category: it is the one that will carry the counter-operation. Without it, the cancellation is refused with "A return type must be defined to cancel batch …".

A return type, not the current type

The form refuses to point the type at itself: "Invalid return type: it cannot equal the current type". Create a dedicated type if needed, a supplier return for instance.

2. Check the state of the received batches

Open Batches and, for each batch coming from that reception, look at the Consumed quantity. It must stay at zero: as soon as an item has been delivered, transferred or consumed, the batch can no longer leave.

A started batch blocks the cancellation

The module then refuses the cancellation of a batch with "Items have already been consumed on batch …", and that of a whole reception with "Items have already been consumed on the batches of this reception". Cancelling a reception is all or nothing: a single started batch stops it before the first counter-operation.

3. Cancel a single batch

From the purchase order, ask for the cancellation of the batch concerned. The module refuses a batch that does not belong to this purchase order ("This batch was not received for this purchase order"), one whose reception is not executed ("The reception of batch … must be executed to be canceled"), one that does not come from a reception ("Batch … does not come from a reception") and one already returned ("Batch … has already been canceled").

The rest of the reception does not move: the other batches stay in stock.

4. Or cancel the whole reception

From the same purchase order, ask for the cancellation of the reception. The module goes through every batch not yet cancelled, one by one, and returns them. If there is nothing left to return, it answers "The reception has already been canceled for this purchase order"; if there never was anything to return, "No executed reception is linked to this purchase order".

5. Read the counter-operation

Each returned batch produces one operation, of the configured return type, which the module validates and executes right away. It carries:

  • the label of the source document of the reception, followed by "(retour du lot …)";
  • the locations of the reception reversed: what came in leaves the way it came;
  • the quantity and the cost of the original batch, to the unit;
  • the partner of the reception, that is to say the supplier.

You then find it in Operations and in Movements, attached to the reception it contradicts. Stock therefore returns to its state before the reception, without any movement disappearing from the history.

A single cancelled batch is not received again yet

Cancelling the complete reception of a purchase order leaves it free to be received again. Cancelling a single batch does not, as of today, recreate an operation to perform for the returned item: enter the missing reception again if you expect a replacement.

What next?

Changelog

  • 1.0 (August 18, 2026): document created.