Never let a delivery leave before the payment clears.
Automatically hold outgoing deliveries linked to unpaid sales orders, release them the moment payment clears a configurable threshold, and give finance a fully audited manager override for the exceptions that need to ship anyway.
The problem
Odoo lets a delivery order sail straight to Ready regardless of whether the customer has paid. Warehouse staff have no built-in signal that an order is unpaid, so high-value goods leave the dock before the invoice is settled — leading to stock loss, awkward post-shipment collections, and the exact cash-flow strain pre-payment terms were meant to prevent.
The solution
This app gates outgoing deliveries on real payment status. A picking linked to an unpaid sales order is held with a clear Waiting for Payment badge and reason, releases itself once a configurable percentage is paid, and offers a guarded, fully logged force-release for the rare exception — so warehouse and finance always know exactly where an order stands.
Everything you need to gate deliveries on payment
Every capability below is implemented in the module.
Hold deliveries on unpaid invoices
Outgoing deliveries linked to a sales order are automatically placed in a clear Waiting for Payment state until the invoice is paid, with an optional grace period so a newly confirmed order is never blocked before there has been time to invoice.
Automatic release on payment
The moment a payment reconciles against the invoice, the delivery flips to Payment Cleared on its own — no manual click, no re-check, and shipping resumes immediately.
Configurable release threshold
Release on full payment, or set a lower percentage so a deposit or milestone payment is enough to unlock the delivery — matching how real B2B credit terms actually work.
Payment status inside the delivery
Invoiced amount, amount paid, outstanding balance and paid percent are shown directly on the delivery order, so warehouse staff can see exactly why an order is held without leaving the screen.
Guarded force-release
A manager-only Force Release action requires a written reason and a clear on-screen warning before it will ship an unpaid delivery, so bypassing the hold is never a single accidental click.
Full audit trail
Every force-release is recorded with the user, timestamp, reason and the exact amounts at the time of the override, giving finance a complete record to review after the fact.
Payment-hold dashboard
A dedicated kanban, list, graph and pivot view groups held and released deliveries by customer and status, so finance and warehouse can triage the whole queue at a glance instead of order by order.
Customer & product exemptions
Mark specific customers or products as exempt so trusted accounts or non-stock items are never held for payment, while every other delivery keeps the standard check.
Automatic payment-hold reminders
A daily scheduled action posts a reminder on any delivery that is still held, keeping the outstanding balance visible to the sales team until the customer pays.
How it works
Enable the hold
Turn on Hold Deliveries Until Payment in Inventory settings and set your release threshold, grace period and reminder interval.
Confirm and invoice as usual
Confirm sales orders and post invoices exactly as you do today — nothing changes in the sales flow.
Deliveries hold automatically
Any outgoing delivery whose sales order has not reached the payment threshold is held with a visible badge and reason, blocking validation.
Ship on payment or override
The delivery releases itself once payment clears the threshold, or a manager can force-release with a logged reason for genuine exceptions.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
No. It works alongside them and adds a gate at the physical delivery step, since a credit-limit warning does not by itself stop a picking from being validated and shipped.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Hold Pickings Until Payment
Outgoing deliveries held until the invoice is settled, released automatically on payment, with configurable thresholds, payment status inside the picking, customer and product exemptions and a guarded, audited force-release.
Buy on Odoo App Store