The principle

Every stock movement (inbound, outbound, return, loss) starts as a draft. It needs to be submitted to enter the approval workflow, then each step of the workflow must approve it before the stock is actually updated.

If your organization hasn't configured any approval step, submitting counts as immediate approval — useful to get started without friction, to tighten up once volume or compliance needs justify it.

Setting up the workflow

From Settings → Approvals (admin only), you define a sequence of roles (for example: manager then approver). This sequence can be overridden for a specific warehouse if some sites have different rules.

Who can approve

  • The role required at each step is the one defined in the sequence at the moment the decision is made (not at the moment of submission — so a configuration change made along the way applies to movements already submitted).
  • An admin can always approve or reject, regardless of the step.
  • Separation of duties: the person who created the movement can't decide on it, even if their role would otherwise allow it.

Traceability of decisions

Every approval or rejection is recorded (who, when, which step). A rejected movement never affects stock — only a full approval triggers the write to the ledger. See Traceability and valuation (weighted average cost).