Overview
Timesheet invoicing in Odoo 19 connects employee time tracking to customer billing. When employees log hours on project tasks, those hours can be invoiced to the customer at agreed rates. The sale_timesheet module bridges the Timesheets and Sales modules.
Prerequisites
- Odoo 19 with Sales, Timesheets, and Project modules installed
- The
sale_timesheetmodule installed - Service products configured for billing
Step 1: Configure the Service Product
Create a service product for timesheet billing:
- Navigate to Sales > Products and click New
- Product Type — Service
- Invoicing Policy — Based on Timesheets
- Create on Order — Task (creates a task in an existing project) or Project (creates a new project)
- Unit of Measure — Hours
- Sales Price — Your billable hourly rate
Step 2: Create a Sales Order
- Create a sales order for the customer
- Add the timesheet service product
- Set the quantity to the estimated hours (or a budget cap)
- Confirm the sales order
- Odoo creates the linked project and/or tasks automatically
Step 3: Log Timesheets
Employees log time through several interfaces:
- Timesheets > My Timesheets — Grid view for weekly time entry
- Task form — Log time directly on the task's Timesheets tab
- Timer — Start/stop timer for real-time tracking
Each timesheet entry records: Employee, Task, Description, Hours, and Date. The entry links to the sales order line through the task's project.
Step 4: Configure Billing Rates
Odoo supports different billing rate configurations:
Single Rate
All team members bill at the same rate defined on the service product's sales price.
Employee-Specific Rates
For different rates per employee (e.g., senior vs. junior):
- Create separate service products with different prices
- Or use pricelists to vary rates by partner
Step 5: Track Billable vs. Non-Billable
Distinguish between billable and non-billable time:
- Time logged on tasks linked to sales orders is billable
- Time logged on internal projects (not linked to SOs) is non-billable
- Use the Timesheets reporting to compare billable vs. total hours
Step 6: Validate Timesheets
Enable manager validation for quality control:
- Navigate to Timesheets > Configuration > Settings
- Enable Timesheet Validation
- Managers approve timesheets periodically (weekly or bi-weekly)
- Only validated timesheets are included in invoicing
Step 7: Invoice from Sales Order
When ready to invoice logged hours:
- Open the sales order
- Check the Delivered column — it shows total logged hours per service line
- Click Create Invoice
- Select Regular Invoice to bill delivered (logged) hours
- Review the invoice and send to the customer
The invoice lines show the total hours, rate, and subtotal per service product.
Step 8: Reporting
Monitor timesheet performance:
- Timesheets > Reporting > By Employee — Hours per employee with billability ratio
- Timesheets > Reporting > By Project — Hours per project for profitability analysis
- Compare billed hours vs. budget on the sales order
Best Practices
- Invoice timesheet hours monthly to maintain cash flow
- Set up timesheet reminders to ensure employees log time daily
- Use the timer feature for accurate time capture during meetings and calls
- Validate timesheets before invoicing to catch errors
- Share timesheet reports with clients for transparency on billed hours