Enable Dark Mode!
By: Cybrosys Technologies

How to Invoice Time and Expenses to Customers with Odoo


Perfection and accuracy are the other factors that will determine the quality of your business. A business with broken and loose ends in its functionality would always reflect badly in the future of the business. A quality back-end system is what can deliver a perfect front-end in business. 

While running your back-end business processes with Odoo, the functionality and the productivity of your business will improve. The various modules in Odoo can improve the performance of your business in the fields of sales, accounting, customer management, human resources, and even your website. You can visit our blog and explore a detailed overview of the various modules that are available from Odoo and their unique features. 

Not always can we provide the accurate expenses of a project? The requirements, expenses, and time spent may vary in the due course of the project. On projects like these, we will have to opt for a method where invoicing allows us to invoice the time spent by the employees, materials used, and also the expenses for the completion of the project. As opposed to the fixed price contracts, this allows flexibility in the invoicing amount. 

In fixed-price contracts, the client pays you an amount and we have to work with the amount to pay our employees, subcontractors, purchases, and other expenses. But in the case of projects that have flexible pricing, we have to invoice the expenses in terms of time and the materials used. We have to invoice timesheets and expenses along with the purchases. We will look at the configuration of time and material invoicing in Odoo sales in the latter part of the blog. 

Time and material billing can be very effective in fields where the actual work hours and estimated work hours may vary. This provides more clarity into what the client is being billed for. This kind of billing can also be advantageous in situations where you are unsure of billable time and the materials that might be expended in the process of the project. In consulting and service industries, this type of invoicing will be more effective. The projects where time and material billing can prove to be effective are,

- Projects with changing requirements, especially long-term projects.

- The scope of the project is not fully known yet.

- Modification of scope is welcomed in the project.

In long-term projects that run for more than four or five months, it is natural that we cannot estimate the expense that might come off the project. And it also helps adapt the project to the changing requirements from the project that may arise over time of the project implementation. Time and material-based billing would also motivate those involved in the project to be more prudent about the project. 

While dealing with projects of multiple nature, we might have to go for either fixed-price or time and material-based projects. Allowing flexibility would help the company work better with the customer's needs and demands. Versatility is much appreciated in the field of business. So whatever be your business type, having in place a system that can support all kinds of billing and running possibilities is going to improve both credibility and sales. 

Odoo Sales 

The Odoo Sales app manages the various sales orders, quotations, and invoices. We can create a new sales order, send quotations and once confirmed, create an invoice.


The Sales module is integrated with the other modules of the database and we can easily organize between the modules to run various advanced functions. 

Invoice timesheet

For this, we have to install both the timesheet module and the Project module. Under Projects configuration, we can activate timesheets on projects and tasks from settings.


After doing so, we can now return to sales and open the products and choose any product with product type as service.


Under product settings, we can go to the sales tab. Here the invoicing policy and service tracking can be modified. We have to choose an invoicing policy that allows timesheets on task. Then modify the service tracking to create a task in a new project. We can alternatively opt for existing projects, and provide the respective project for the task creation.


Now for sales orders with the product, the projects overview tab and tasks tab will be available.


We can modify the timesheets and the employees whose timesheets will be invoiced for the project.


If the task is unavailable create a new task and assign it the sales order item. This will display the task in the sales order. We can now create an invoice and the timesheet hours are invoiced.


For more details of the timesheet module, you can read features of the timesheet module

Invoice expenses 

After installing the Expenses module, we can activate the Analytic Accounting from Accounting -> Configuration -> Settings


Now back to the Expense module, we can create a new expense and then add a product.


Make sure the product is configured as expenses.


Now on the sales tab of the product, we have to modify the settings and set the re-invoicing policy as at cost or sale price. 

We can now select the customer to reinvoice. Choose the corresponding sale order and add the analytic account. We can submit the report and once posted, the expense will be available in the sales order.


Read about Odoo Expense Management to have a better understanding.

Invoice purchase 

The last and final invoicing left in time and material method is the invoicing of the purchases made. Reinvoicing of purchase orders can be facilitated all the purchases made for the concerned project to be billed to the customer. We can edit the product configuration to enable reinvoicing. 


We can then reinvoice expenses in the purchase order. Select at cost or sale price in reinvoice expense. Once the purchase order is confirmed and received, a vendor bill can be created. We have to make sure that the right purchase order is selected for the purchase order.


Once the bill is created and confirmed it will involuntarily be added to the sales order. We can invoice the sales order with the purchase expense to the customer. This would make the customer reimburse the expense made for purchases.

We can now send the sales order to the customer by invoicing timesheets and reinvoicing the expense and purchase orders.

If you need any assistance in odoo, we are online, please chat with us.


Leave a comment




Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635



Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.



Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message