OdooWiki OCA HUB

Account commissions

account_commission folder_open OCA/commission open_in_new
Sales Management License: AGPL-3

This module adds the function to calculate commissions in invoices (account moves).

It also allows to create vendor bills from settlements for external agents.

This module depends on the commission module.

Additionally, it extends the grouped settlement report from the commission module to include a grouping by invoice

auto_awesome What this module does

AI-generated from the code · Odoo 17.0

Calculate and settle commissions on customer invoices, then create vendor bills to pay the agents. Adds commission analysis reports and a dedicated settlements menu.

This module brings commission handling into invoicing. On customer invoices (account.move), each invoice line can carry one or more agents with a commission and an amount. A "Commissions" group appears on the invoice line form, and the invoice shows a total commission and a "Settlements" button when settlements exist.

Commissions are computed automatically from the invoice line subtotal, quantity and product, and are reversed for refunds. You can mark a line as commission-free, or use "Regenerate agents" on a draft invoice to rebuild them. Once a commission line is settled it can no longer be modified, and an invoice with settled lines cannot be cancelled.

On each commission you choose whether it is settled when the invoice is issued (Invoice Based) or when it is paid (Payment Based). Settlements of type "Sales Invoices" are created from the settlement wizard, and from a settled settlement you can press "Make invoice" to generate a vendor bill for the agent, optionally grouping several settlements into one invoice.

A new "Invoices Settlements" menu lists these settlements, and a "Commission Analysis" report (pivot, graph and filters) lets you analyse commissions by agent, customer, product category and invoice status. Settlement reports also show the source invoice line and quantity.

Depends on

accountcommission

Menus it adds

menu_invoice_commissions_analysismenu_invoicing_settlementsmenu_invoicing_settlements_make_invoice
Models and fields (9)
  • commission · extends an existing modelinvoice_state (Invoice Status)
  • account.move · extends an existing modelsettlement_ids (Settlements), commission_total (Commissions), settlement_count, partner_agent_ids (Agents)
  • account.move.line · new modelagent_ids, any_settled, settlement_id
  • commission.settlement · extends an existing modelstate, invoice_id (Generated Invoice), settlement_type, invoice_line_ids (Generated invoice lines)
  • commission.make.settle · extends an existing modelsettlement_type
  • commission.make.invoice · new modeldate, grouped (Group invoices), company_id, journal_id, product_id (Product for invoicing), settlement_ids, from_settlement
  • account.invoice.line.agent · new modelsettled, object_id, company_id, invoice_id (Invoice), currency_id, invoice_date (Invoice date), settlement_line_ids
  • commission.settlement.line · extends an existing modelinvoice_line_id (Source invoice line), invoice_agent_line_id
  • invoice.commission.analysis.report · new modelamount, uom_id, balance, settled, agent_id, categ_id, quantity (# of Qty), company_id, partner_id, percentage (Percentage of commission), price_unit (Unit Price), product_id, date_invoice (Invoice Date), commission_id, invoice_state (Invoice Status), price_subtotal (Subtotal), invoice_line_id

Text generated by AI (DeepSeek) from reading the Odoo 17.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

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

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

Sources · Odoo 16.0

Confirmed on 2026-11-03 in branch 16.0 of OCA/commission.

terminal Installation and usage

OCA documentation · Odoo 17.0

For selecting invoice status in commissions:

  • Edit or create a new record to select the invoice status for settling the commissions.
  • Invoice Based: Commissions are settled when the invoice is issued.
  • Payment Based: Commissions are settled when the invoice is paid.

For adding commissions on invoices:

  • Go to Invoicing \> Customers \> Invoices.
  • Edit or create a new record.
  • When you have selected a partner, each new invoice line you add will have the agents and commissions set at customer level.
  • You can add, modify or delete these agents discretely clicking on the icon with several persons represented, next to the "Commission" field in the list. This icon will be available only if the line hasn't been invoiced yet.
  • If you have configured your system for editing lines in a popup window, agents will appear also in this window.
  • The agents icon will be in this ocassion visible when the line hasn't been settled.
  • You have a button "Regenerate agents" on the bottom of the page "Invoice Lines" for forcing a recompute of all agents from the partner setup. This is needed for example when you have changed the partner on the invoice having already inserted lines.

For invoicing the settlements (only for external agents):

  • Go to Invoicing \> Commissions \> Create Commission Invoices.
  • On the window that appears, you can select following data:
  • Product. It should be a service product for being coherent.
  • Journal: To be selected between existing purchase journals.
  • Date: If you want to choose a specific invoice date. You can leave it blank if you prefer.
  • Settlements: For selecting specific settlements to invoice. You can leave it blank as well for invoicing all the pending settlements.

If you want to invoice a/some specific settlement/s:

  • Navigate to Invoicing \> Commissions \> Invoices Settlements.
  • Select it/them on the list.
  • Click on Action \> Create Commission Invoices.
  • You can as well enter in one settlement, and click on the "Make invoice" button.

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.