Odoo answers · Sales and invoicing · Odoo 14 to 19

Why is Odoo creating $0 invoices?

A $0 invoice from a sales order is almost always Odoo doing exactly what it was set up to do. Open the $0 invoice next to its sales order and compare the lines. One of these five causes will match.

1. It is the final invoice after a down payment

If you invoiced a down payment for the whole order, the final invoice lists the products and then subtracts the down payment, so the total is $0. That is correct: the customer already paid.

Check: look for a line named "Down payment" with a negative amount on the $0 invoice. If you do not want these: when the deposit covers the full order, invoice it as a regular invoice of the order lines instead of a down payment, or delete the final $0 invoice while it is still a draft instead of confirming it.

2. The price is zero before it reaches the invoice

Odoo copies the price from the sales order line, and the sales order got it from the pricelist. A zero usually comes from:

  • a product whose Sales Price is 0;
  • a pricelist rule that sets a fixed price of 0, or computes the price from Cost when the product's cost is 0;
  • the customer having a different pricelist from the one you expected (it is on the customer, Sales & Purchase tab).

Check: on the sales order, look at the Unit Price on each line and which pricelist the order uses. Pricelists are under Sales > Products > Pricelists (if you do not see that menu, Pricelists are switched off in Sales settings).

3. A discount or reward cancels the order

A line discount of 100%, a promotion, a coupon, a gift card or a loyalty reward can bring the total to zero. In Odoo 14 and 15 these come from the Coupons and Promotions apps; from Odoo 16 on, from Discount & Loyalty.

Check: the Disc.% column on the order lines, and any negative "reward" or "discount" line. If a program applies when it should not, review its conditions (minimum amount, products, start and end dates).

4. Only the free lines were ready to invoice

Odoo invoices what is ready, not the whole order. With the invoicing policy Delivered quantities, a line is ready only after it is delivered. If the only lines ready are free ones, such as a $0 shipping line, a free sample or a note, the invoice is $0 while the priced products wait for delivery.

Check: on the sales order lines, compare Delivered and Invoiced quantities. The Invoicing Policy is set on each product (on the General Information tab in most versions). Services invoiced on timesheets or milestones behave the same way: nothing approved yet, nothing to bill.

5. A subscription or recurring line has no price for that period

With Subscriptions (Enterprise), a renewal invoice takes its price from the subscription's lines and its recurring pricing. A plan or period with no price, or a free trial period, produces a $0 renewal.

Check: the subscription's lines and the product's recurring prices for the plan the subscription uses.

Before you change anything

If $0 invoices are already posted, do not delete them. Reset to draft and cancel, or issue a credit note, depending on your version and whether they were sent, and ask your accountant if the period is closed. Changing a pricelist or an invoicing policy affects new orders only; existing orders keep the prices and policy they were made with.

How Allodi would handle it

With Allodi, an agent works directly inside your real Odoo, so it can open the sales order that produced the $0 invoice, check the invoicing policy, compare ordered, delivered and invoiced quantities on each line, look for pricelist or discount issues, and show you exactly why the invoice came out at zero. It then prepares the fix, such as correcting a price or a quantity, as a proposal for a person on your team to approve before anything is written. Bigger changes, like reconfiguring invoicing policies or touching accounting entries, are flagged for a second, senior review (Tier 2) instead of being changed automatically.

Scope and prices: allodi.us/pricing.html. To get started: allodi.us/contact.html.

Still stuck, or on a different version? Ask your own question and get an answer written for your version of Odoo.

Ask about your $0 invoices

Odoo is a trademark of Odoo S.A. Allodi is not affiliated with Odoo S.A. Menu names differ slightly between versions and editions.