Invoicing based on time and materials

Estimated reading: 4 minutes 11 views

Introduction

Invoicing based on time and materials (T&M) is a flexible billing method ideal for projects where the scope is unclear, evolving, or difficult to estimate upfront. Unlike fixed-price contracts, where the client agrees to a set amount regardless of actual work or costs, T&M billing ensures customers are invoiced based on the real hours worked and the actual expenses incurred.

 

Odoo, a powerful open-source ERP, supports time and material billing through its integrated suite of apps, including Sales, Project, Accounting, Expenses, and Purchase. This article walks through the setup and workflow of implementing T&M invoicing in Odoo.

Setting Up Odoo for Time and Material Invoicing

 

1. Install Required Applications

To enable accurate tracking and billing, install the following Odoo apps:

  • Project
  • Accounting
  • Sales

To install:
 Navigate to Odoo Dashboard → Apps, locate each app, and click Activate.

 

2. Enable Required Features

  • In Accounting → Configuration → Settings, enable Analytic Accounting under the Analytics
  • In Project → Configuration → Settings, enable Timesheets under Time Management.

Click Save after enabling each setting.

Configuring Service Products for Time Tracking

Time invoicing in Odoo works with products configured as services. Here’s how to set them up:

  1. Go to Sales → Products → Products.
  2. Click New to create a new product or edit an existing one.
  3. On the product form:
    1. Set Product Type to Service.
    2. Set Invoicing Policy to Based on Timesheets.
    3. Under Create on Order, choose either:
      1. Project & Task to auto-create both project and task, or
      2. Task and link it to an existing project.

This configuration ensures that a project and corresponding tasks are automatically created when a sales order is confirmed.

Logging Time on Projects

After configuring the service product:

  1. Create a quotation in the Sales app using the configured product.
  2. Confirm the order to generate linked Projects and Tasks.
  3. Open the Task, go to the Timesheets tab, and:
    1. Click Add a line.
    2. Select the Employee, Date, and enter the Hours Spent.
    3. Optionally, provide a description of the work done.

All logged hours update the Allocated Time, Hours Spent, and Remaining Hours fields in real time.

Invoicing Time Spent

Once time entries are added:

  1. Go back to the Sales Order.
  2. Click Create Invoice → Regular Invoice → Create Draft Invoice.
  3. The invoice now includes all billable hours logged through the task timesheets.
  4. Confirm the invoice and proceed with payment processing.

Make sure to check the Analytic Distribution field in the invoice, as it links the invoice to the correct project for accurate accounting.

Invoicing Expenses

To invoice customer-related expenses like travel or lodging:

 

1. Install the Expenses App

Go to Dashboard → Apps → Expenses → Activate.

 

2. Log an Expense

In the Expenses app:

  • Click New and fill out details:
    • Description
    • Category (e.g., Travel)
    • Total, Taxes, and who paid
    • Link to a Sales Order in the Customer to Reinvoice and Analytic Distribution fields
  • Optionally upload receipts.
  • Click Create Report, then Submit to Manager.
  • Manager reviews and clicks Approve, followed by Post Journal Entries.

3. Invoice the Expense

Once posted, return to the Sales Order, where the expense appears as a new line item. Click Create Invoice, and proceed as with time-based invoicing.

 

Invoicing Purchases

To bill for materials purchased for a project:

 

1. Install the Purchase App

Navigate to Dashboard → Apps → Purchase → Activate.

 

2. Create a Purchase Order

In the Purchase app:

  • Click New and select a Vendor.
  • Add products marked with:
    • Can be Expensed
    • Invoicing Policy set to Delivered Quantities
    • Re-Invoice Expenses set to At Cost
  • Add Analytic Distribution tied to the sales order/project.
  • Confirm the purchase order, Receive Products, and Validate the receipt.

3. Create a Vendor Bill

Click Create Bill from the purchase order, set the Bill Date, and Confirm it. This expense is now linked to the customer’s sales order.\

 

4. Generate the Customer Invoice

Navigate to the associated Sales Order and click Create Invoice → Regular Invoice → Create Draft Invoice. The purchase now appears on the customer invoice.

 

Summary of Workflow

Step

Action

1

Install and configure necessary apps

2

Configure service product with correct invoicing policy

3

Track time in Project tasks using Timesheets

4

Invoice hours logged via the Sales Order

5

Record and invoice expenses from the Expenses app

6

Log purchases and link them to the project for invoicing

Conclusion

 

Odoo provides a complete and streamlined system for invoicing based on time and materials. With its modular structure, businesses can:

  • Track employee hours accurately
  • Capture real project expenses
  • Invoice for purchased goods tied to a customer project

Whether you’re managing professional services, construction, or consultancy work, Odoo’s T&M invoicing ensures transparency, accountability, and precise billing.

References

Leave a Reply

Your email address will not be published. Required fields are marked *

Learn how we helped 100 top brands gain success