Invoicing Projects in Odoo 15

The projects module is used to assign tasks and sub-tasks. Projects and tasks stages make it easier to keep track of their progress. Employees can be assigned to a project and their time spent working on it can be tracked. Odoo will assist you in accurately billing consumers by capturing the time and materials needed for a project. After completing a project, invoices can be created for the project.

An invoice for a project can be generated based on three features.

  • Based on prepaid/fixed price
  • Based on timesheets
  • Based on milestones

These options are used to define Invoicing Policy when you set up the project as a service product in the Sales module to create sales orders.

Invoice Based on Prepaid/Fixed Price

You can use the Invoice based on the prepaid/fixed pricing technique to generate invoices for a fixed price or prepaid service. For all of the customer’s ordered quantities, invoices are generated. Invoices can be created before or after a project is completed.

Invoicing Projects

You must first set up the Product type as a service before you create invoices.  The invoicing policy for this product is set to prepaid/fixed price. Now create a sales order using this product.

Sales order
Sale order

Click the Confirm button to confirm the sales order. Invoices for the project can now be generated. Here the customer must pay for the total amount purchased when using the Prepaid/Fixed Price method.

Project Module => Configuration => Projects

Open the respective project and you’ll find the option to create an invoice in the project. Click the create invoice option to create a project invoice.


After clicking create invoice button, you will be directed to create an invoice based on three options: Regular invoice, Down payment (percentage), Down payment (fixed amount) then create the invoice. Now open the sales order from the smart button and then at the top right corner an invoice tab appears, opening it you can confirm the invoice.

Invoicing Projects

This is how we generate fixed-price/prepaid invoices.

Invoice Based on Timesheets

In project management, keeping track of timesheets is essential. You can track how much time employees spend on each task in a project. Multiple tasks may be assigned to a single project, and various individuals may be assigned to the project to complete these tasks. Odoo will track each employee’s time spend on the project in the project description. Invoices can be generated from the timesheets that have been recorded.

Invoice Based on Timesheets

Under the Timesheets tab of the respective task, you will find the details of hours spent by each person on a work.

From the sales module, open a product and change the product type as service and Invoicing Policy to Based on Timesheets.

Invoice Based on Timesheets

Now create a sales quotation and confirm the order.

Sale order

From the smart buttons open the Tasks menu and under timesheets, you can assign the employee who works on it and add the number of hours spent on the project. The recorded hours will be present in the sales order.

Opening the projects menu from the smart button you can generate an invoice for the project’s timesheets by clicking on the create invoice button.


Now, the customer invoice draft has been generated for the project.

Customer Invoice for project

You can confirm the invoice and complete the payment process.

Invoice Based on Milestones

In the Project module, we can divide a project into tasks and sub-tasks to organize work more systematically. This will also be important for tracking the project’s progress. For expensive or large-scale projects, milestone invoicing is used, with each milestone signifying a clear sequence of work that will steadily lead up to the contract’s execution.  This kind of invoicing is beneficial to both the company and the client since it provides a steady cash flow throughout the project’s lifespan.

Open the product from the sales module and do the necessary settings.

Invoice Based on Milestones Invoicing Projects in Odoo 15

Under general information set the product type to Service and the Invoicing Policy to Based on Milestones.

Then, create a sales order for this item.  By defining the delivered quantity, the order lines in the sale order define project milestones to invoice.

Sale order Invoicing Projects in Odoo 15

This method can be used to charge a project once it meet the first milestone. On the Order Line of the sales order, the number of products delivered will be shown. When the required milestone is reached, you can also manually set the quantities. Then, either from the sales order or the projects tab, select Create Invoice and confirm the invoice.

Customer Invoice Invoicing Projects in Odoo 15

After the invoice creation, you can complete the payment process by registering the payment.

If you are looking out for a reliable odoo implementation partner for your organization; Do reach out to us on