OdooWiki OCA HUB

Complimentary Invoice Line

account_invoice_line_complimentary folder_open OCA/account-invoicing open_in_new
Accounting & Finance License: AGPL-3

Define Invoice Lines for complimentary Products.

Invoice Lines set as Complimentary will be charged on a configured account instead of the invoice's account.

For example: You are invoicing coffee to a customer and you want to give them napkins for free.

The Invoice Lines are:

+-----------------+-------------+-----------+---------------+-----+ | Account | Name | Price | Complimentary | Tax | +=================+=============+===========+===============+=====+ | Receivable | Coffee | 100.00 | | 22% | +-----------------+-------------+-----------+---------------+-----+ | Product Sales | Napkins | 10.00 | True | 22% | +-----------------+-------------+-----------+---------------+-----+

Invoice total is:

(100 + 100 * 22%) + (10 + 10 * 22%) = 122 + 12.2 = 134.2.

When confirmed, the created Journal Items are:

+-----------------+-------------+-----------+-----------+ | Account | Name | Debit | Credit | +=================+=============+===========+===========+ | Receivable | | 122.00 | | +-----------------+-------------+-----------+-----------+ | Tax Received | | | 24.20 | +-----------------+-------------+-----------+-----------+ | Complimentary | Napkins | 12.20 | | +-----------------+-------------+-----------+-----------+ | Product Sales | Napkins | | 10.00 | +-----------------+-------------+-----------+-----------+ | Product Sales | Coffee | | 100.00 | +-----------------+-------------+-----------+-----------+

The Journal Entry Total is still 134.20 but the Invoice's Amount Due becomes 122: the Napkin and its Tax won't be paid by the customer.

auto_awesome What this module does

AI-generated from the code · Odoo 12.0

Mark invoice lines as complimentary so free products are posted to a dedicated account instead of the normal sales account. Configure the complimentary account in Invoicing settings.

This module lets you give products for free on a customer invoice while still showing their value, and it automatically posts the free amount to a separate account.

  • On each invoice line you get a new "Complimentary" checkbox, shown next to the unit price. On the invoice itself there is a "show_complimentary_flag" option that controls whether the Complimentary column is visible in the invoice lines list.
  • In Invoicing settings (Accounting configuration) you can set a "Complimentary Account". This account is stored on the company.
  • When the invoice is confirmed, for every line marked as Complimentary the module creates an extra journal item that uses the Complimentary Account, removes taxes, and posts a negative amount equal to the line total. This offsets the line so the customer is not charged for it, while the value is still tracked in the chosen account.
  • If a line is marked Complimentary but no Complimentary Account is configured on the company, confirmation is blocked with an error message listing the affected lines and the company.

The module extends account.invoice, account.invoice.line, res.company and res.config.settings.

Depends on

account
Models and fields (4)
  • res.company · extends an existing modelcomplimentary_account_id
  • account.invoice · extends an existing modelshow_complimentary_flag
  • res.config.settings · extends an existing modelcomplimentary_account_id
  • account.invoice.line · extends an existing modelis_complimentary (Complimentary)

Text generated by AI (DeepSeek) from reading the Odoo 12.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/account-invoicing.

terminal Installation and usage

OCA documentation · Odoo 12.0

Open Invoicing > Configuration > Settings and set the Complimentary Account.

In the invoice, enable Show Complimentary Flag; then set the flag Complimentary in any Invoice Line as needed.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.