OdooWiki OCA HUB

Pos Split Invoice

pos_order_split_invoice folder_open OCA/pos open_in_new
Uncategorised License: AGPL-3

This module would allow use to split a pos.order in two moves.

The first one will be payed inside the PoS Order, and the second one will be payed after by this secondary partner.

This approach might appear in several cases, mainly on co-payments (Medical centers, Pharmacies...)

The pricelists created with split method shouldn't be used on Sale Orders, as they are only supported with pos orders made in the pos UI.

auto_awesome What this module does

AI-generated from the code · Odoo 17.0

Lets a Point of Sale order be split between two customers: the customer pays part of the price at the till and a second partner is invoiced for the remaining share, which Odoo creates automatically as a separate invoice.

This module adds a "Split Invoice" pricing rule to pricelists. On a pricelist you can set a splitting partner, and on each price rule choose the Split Invoice computation, a split percentage and the base used to calculate it (sales price, cost or another pricelist). In the Point of Sale, products covered by such a rule show a reduced price, and each order line stores the amount that will be invoiced to the second partner.

When the order is validated, Odoo requires a customer on the order if any line is split; otherwise it blocks payment with a warning. It then creates a separate customer invoice (or credit note for negative amounts) for the splitting partner, using the order's invoice journal, payment terms, fiscal position and bank account, and links it back to the order. The order form shows the generated invoice and the split amount per line, and the invoice form shows the originating order and the original customer.

This is designed for co-payment situations such as medical centres or pharmacies, where one party pays part at the counter and another party is billed afterwards. Split pricelists are meant for Point of Sale orders only, not for regular sales orders.

Depends on

point_of_sale
Models and fields (5)
  • pos.order · extends an existing modelsplitting_move_id, splitting_partner_id
  • account.move · extends an existing modelsplitting_order_id, splitting_partner_id
  • pos.order.line · extends an existing modelsplit_invoice_amount
  • product.pricelist · extends an existing modelsplit_invoice_partner_id
  • product.pricelist.item · extends an existing modelsplit_base (Split amount Based on), compute_price, split_percentage, split_base_pricelist_id, split_invoice_partner_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. 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.

terminal Installation and usage

OCA documentation · Odoo 17.0

Before using this module, you need to define pricelists with "Advanced price rules" in point of sale settings (Pricing section).

After that, you need to create a Pricelist with a Splitting partner configured and a rule with type Split Invoice. On that rule you need to set the base pricelist used to compute the total price, the pricelist used to split and the amount payed by the splitting partner.

For example, if we have a Product with a Pricelist A of 100 and a Pricelist B of 80, and we specify the price computation "Based on" Pricelist A and "Split amount based on" Pricelist B with "Split percentage" of 90%, the final amount payed by the Customer will be: 100 - 80*90% = 28.

All the pricelists involved in the calculations (including the "Based on") must be included on the Point Of Sale Configuration in order to proceed properly.

Change the amount pricelist of products to a splitting one and the amount will be correctly computed on PoS.

After PoS validation, the invoice to the splitting partner will be created.

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.