Cancel & reverse stock transfers, the safe way
Cancel and reverse any validated receipt, delivery, or internal transfer with a governed wizard: see the cascade, see the valuation impact, capture a reason, and keep a full audit trail — every time.
Once a receipt, delivery, or internal transfer is validated, Odoo gives you no safe way to undo it. The only native options are a manual return transfer that leaves extra documents behind, or direct database intervention — neither fit for a warehouse operator who just fat-fingered a quantity or validated the wrong document.
A dedicated Cancel & Reverse action, restricted to a dedicated user right, that reverses stock quantities and valuation, blocks cancellation when it would orphan a pick/pack/ship chain (and names exactly which transfer is blocking it), and logs every cancellation with who, when, why, and the exact valuation impact.
Everything a governed cancellation needs
Every capability below is implemented in the module.
Cancel & Reverse, Not Just Cancel
A clearly labeled "Cancel & Reverse" action appears on any validated receipt, delivery, or internal transfer — distinct from a bare state-only cancel.
Valuation-Aware Reversal
Reverses stock valuation layers and posted journal entries under real-time inventory valuation, not just on-hand quantities — so accounting stays consistent after a cancellation.
Cascade-Safe by Design
Cancellation is blocked whenever it would orphan a downstream pick/pack/ship move, with an actionable message naming the exact transfer you need to cancel first.
Impact Preview Before You Confirm
The confirmation wizard shows the exact valuation impact and every linked transfer in the chain before you commit to the cancellation.
Mandatory Reason Capture
Every cancellation requires a reason, chosen from configurable, reusable reason templates — wrong quantity, data entry error, duplicate transfer, and more.
Full Audit Trail
Every cancellation is logged — who cancelled it, when, why, and the exact valuation reversed — both on the transfer's own history tab and in a company-wide report.
Filterable Cancellation Log
A dedicated Inventory > Reporting view lets you filter and group every cancellation by user, reason, operation type, or date.
Bulk Cancellation
Select multiple transfers from the standard Transfers list and cancel & reverse them together from the Action menu — one reason, one confirmation.
Permission-Gated Access
A dedicated "Cancel & Reverse Transfers" user right controls who can cancel a validated document, granted to Inventory Managers by default.
How it works
Open a Done Transfer
Click "Cancel & Reverse" on any validated receipt, delivery, or transfer.
Review the Impact
See the valuation impact and any linked transfers in the chain.
Choose a Reason & Confirm
Pick a reason template, add a note if needed, and confirm.
Audited Automatically
Stock and valuation are reversed, and the cancellation is logged for good.
See it in action
Real screens from the module, captured on Odoo 17.
A validated receipt with the clearly labeled "Cancel & Reverse" action in the header — distinct from a bare state-only cancel.
A per-transfer Cancellation History tab and stat button showing who cancelled it, when, why, and the exact valuation reversed.
The confirmation wizard shows the exact valuation impact, the reason, and any additional notes before you confirm.
Cascade-safe by design: cancellation is blocked and the exact downstream transfer blocking it is named, so you know exactly what to resolve first.
Works from the standard Transfers list across receipts, deliveries, and internal transfers — select several and bulk cancel & reverse from the Action menu.
A company-wide Cancellation Log under Inventory > Reporting, listing every cancellation with its reason and valuation impact.
Filter and group the audit log by reason, user, operation type, or date to spot patterns behind repeated cancellations.
Configurable, reusable Cancellation Reason templates under Inventory > Configuration, so every reason follows a consistent, reportable vocabulary.
Frequently asked
What happens to stock valuation when I cancel a done picking?
The module creates reversing stock valuation layers and, when real-time inventory valuation posts journal entries, reverses the linked accounting entry too — so accounting stays consistent with the stock you actually hold.
Can I cancel a receipt that already fed a delivery further down the chain?
No, not directly. The module blocks the cancellation and names the exact downstream transfer that already moved the stock further, so you cancel that one first instead of silently orphaning it.
Who is allowed to cancel a validated transfer?
Only users with the dedicated "Cancel & Reverse Transfers" right, which is granted to Inventory Managers automatically on install and can be assigned to other users as needed.
Can I cancel several transfers at once?
Yes. Select multiple validated transfers from the standard Transfers list and use the "Cancel & Reverse" bulk action — one reason, one confirmation, applied to every selected transfer.
Get in Touch
Have questions or need customization? Every purchase includes 30 days of free support — we are here to help.
Visit Our Website
www.cerevantix.comExplore our apps, services, and portfolio.
Explore our other apps
A growing suite of Odoo apps.
Empowering growth through technology.
Safely cancel validated transfers with cascade checks, valuation reversal, and a full audit trail.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) • Invoicing (account) |
| Lines of code | 417 |
| Technical Name |
cerevantix_picking_cancel_reverse |
| License | OPL-1 |
| Website | https://cerevantix.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module