Skip to content

Odoo Invoice Not Created from Sale Order: Every Fix

DeployMonkey Team · March 22, 2026 8 min read

The Problem

'Create Invoice' button is missing, grayed out, or clicking it produces a zero-amount invoice.

Cause 1: Invoice Policy = Delivered Quantities (Most Common)

# Product → Invoicing tab → Invoicing Policy:
# - "Ordered quantities" → invoice immediately after confirmation
# - "Delivered quantities" → invoice only after delivery is validated

# If policy is 'Delivered' but nothing delivered yet:
# → No quantity to invoice → button hidden

# Fix: either:
# 1. Validate the delivery order first, then create invoice
# 2. Change product invoicing policy to 'Ordered quantities'
# 3. Set 'Qty Delivered' manually on the SO line (for services)

Cause 2: Order Not Confirmed

# Invoices can only be created from confirmed (state='sale') orders
# Quotations (state='draft') don't have the Create Invoice button

# Fix: click 'Confirm' on the quotation first

Cause 3: All Lines Already Invoiced

# Every line is fully invoiced — nothing left to invoice
# Check SO lines: Invoiced Qty = Ordered Qty

# The 'Create Invoice' button disappears when invoice_status = 'invoiced'

# Check in database:
SELECT name, invoice_status FROM sale_order WHERE id = ORDER_ID;
# Should be: 'to invoice' for button to appear

Cause 4: Service Product Without Timesheet

# Service products with 'Based on Timesheets' invoicing:
# Must log timesheets before invoicing
# No timesheets = zero quantity to invoice

# Fix: log timesheets on the project tasks linked to this SO
# Or change product to 'Ordered quantities' invoicing

Cause 5: Subscription Product

# Subscription products invoice differently:
# Invoices are generated by the subscription cron
# Not via the regular 'Create Invoice' button

# Check: is this a subscription order?
# If yes: Subscriptions → check the recurring invoice schedule

Cause 6: Down Payment Already Covers Full Amount

# If a 100% down payment invoice was already created:
# Regular invoice shows $0 to invoice

# Fix: the down payment IS the invoice
# Or: create a 'Regular Invoice' which deducts the down payment

Cause 7: Access Rights

# User needs Sales → User (or higher) AND Invoicing → User
# Without invoicing permissions, the button may be hidden

# Fix: add user to the Invoicing / Billing group

Force Recompute Invoice Status

# Sometimes invoice_status gets stuck. Force recompute:

# In Odoo Shell:
orders = env['sale.order'].search([('id', '=', ORDER_ID)])
orders._compute_invoice_status()
env.cr.commit()

# Or for all orders:
orders = env['sale.order'].search([('state', '=', 'sale')])
orders._compute_invoice_status()
env.cr.commit()

DeployMonkey

DeployMonkey's AI agent diagnoses invoicing issues — checking invoice policy, delivery status, quantities, and permissions to identify exactly why the invoice button is missing.