OdooWiki OCA HUB

Billing Process

account_billing folder_open OCA/account-invoicing open_in_new
Account License: AGPL-3

In some countries, there is a customary practice for companies to collect money from their customers only once in a month. For example, the customer has 3 payments due in a given month, the vendor or billing company should group all the due AR Invoices in a document call Billing Document and issue it with all the invoices consolidated to the customer on the Billing Day. The customer will be paying based on the payable amount shown in Billing Document in the following month.

This module use a new document called "Billing" to group these invoices together.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Group unpaid customer invoices or vendor bills into a single Billing document per partner, then validate it and register payment for all included invoices at once.

This module adds a new Billing document that lets you collect several unpaid invoices of the same customer (or bills of the same vendor) into one monthly statement.

Where it appears: - A new Billing menu under Accounting > Customers (for customer invoices) and Accounting > Vendors (for vendor bills). - On invoices and bills, a Create Billing action in the list view, and a Billings tag shown on the invoice form and list.

How it works: - You pick a partner, a threshold date and whether to compare that date against the invoice date or the due date, then press Compute items. Odoo automatically pulls in all posted, not-yet-paid invoices of that partner, in the same company and currency, dated on or before the threshold date. - Totals (untaxed, tax, total and amount due) are computed from the included invoices, with credit notes subtracted. - Validate assigns a sequence number (CUST.BIL/... or SUPP.BIL/...) and moves the document to Billed. Validation is blocked if there are no lines or if the threshold date is later than the invoice/due date of a line. - Register Payment pays all invoices in the billing at once. Cancel is refused if any invoice is already paid, and an invoice that belongs to a non-cancelled billing cannot be reset to draft. - A printable Billing PDF lists invoice number, dates, source document, total and status.

Multi-company rules restrict billings to the allowed companies.

Depends on

account

Menus it adds

menu_action_customer_billingmenu_action_supplier_billing
Models and fields (3)
  • account.move · extends an existing modelbilling_ids (Billings), billing_line_ids (Billing Lines)
  • account.billing · new modeldate (Billing Date), name, state (Status), bill_type, narration (Notes), amount_due, amount_tax (Tax Amount), company_id (Company), partner_id, currency_id (Currency), amount_total (Total Amount), amount_untaxed (Untaxed Amount), threshold_date, billing_line_ids (Bill Lines), payment_paid_all, threshold_date_type, invoice_related_count (# of Invoices)
  • account.billing.line · new modelname, state, origin, move_id, sequence, billing_id, currency_id, amount_total (Total), invoice_date, payment_state, amount_residual (Amount Due)

Text generated by AI (DeepSeek) from reading the Odoo 19.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: 6 confirmed, 3 with no information of 9 versions.

Sources · Odoo 14.0

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

terminal Installation and usage

OCA documentation · Odoo 19.0

To use this module, you have 2 ways:

  • Create new billing directly Go to Invoicing -\> Customers or Vendors -\> Billing
  • Create billing from selected invoice(s)
  • Go to Invoicing -\> Customers or Vendors -\> Invoices or Bills
  • Create Invoice
  • On tree view select invoice and go to Action -\> Create Billing

No verified information in OCA: Installation, Configuration.

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.