Odoo 20 Expenses: New Features and Updates

Explore Odoo 20 Expenses updates, including consolidated reports, job-based expense limits, and salary rules for accurate employee reimbursements.

Managing employee expenses efficiently is essential for maintaining financial control, ensuring timely reimbursements, and simplifying accounting operations. Businesses need a reliable way to review expense claims, enforce spending policies, and process employee expenses accurately.

Odoo 20 Expenses introduces three important improvements: consolidated expense reports, expense limits per job position, and salary rules for expense products. These enhancements help businesses streamline expense reporting, establish clearer spending controls, and improve the handling of payroll-related reimbursements.

In this guide, we explore the new Odoo 20 Expenses features, explain how they work, outline their business benefits, and share practical recommendations for implementing them effectively.

What's New in Odoo 20 Expenses?

Two improvements stand out for teams that manage employee expenses. Here is the short version before we go through each one step by step.

Cap the amount by job position

Set the maximum allowable amount per job position, and cap a claim at the authorized limit before final approval.

Assign expense products to salary rules

Link each expense product to its respective salary rule, so every expense type is calculated correctly.

Cap the Amount by Job Position

Odoo 20 lets you define maximum allowable expense amounts per job position. When a claim is above the limit that applies to the employee, the manager can cap the expense at the authorized limit before granting final approval, instead of approving a figure that policy does not allow.

WHY IT MATTERS?

Spending limits usually depend on the role. When those limits live only in a policy document, approvers have to check every claim by hand, and amounts above the allowance can slip through. Putting the limit in Odoo, and letting the manager cap the claim during approval, keeps the approved figure in line with policy.

Configuration Steps

A few one-time steps get the limits working before your next approval round.

Step 1
Make sure the Expenses app is installed and that each employee has a Job Position set on their employee record. The limit follows the position, so employees without one have nothing to match.
Step 2
Open the expense product (Expenses ▸ Configuration ▸ Expense Products), go to the Limits table and click Add a line. Select one or more job positions and enter the maximum allowable amount.
Step 3
Try it out: log an expense above the limit as an employee who holds that job position. Open it as a manager, check that the over-limit warning appears and cap the amount at the limit before approving.

Odoo 20 Expense Limits: Operational Instructions

  1. Navigation path: Expenses ▸ Configuration ▸ Expense Products ▸ [Select Product], to set or review the limit.
  2. In the Limits table, click Add a line, select the job position(s), enter the maximum allowable amount and save. That limit now applies to employees holding those positions.
Odoo 20 expense product Limits table with job positions and maximum amounts
  1. Employees log and submit their expenses as usual. Managers with approval rights open them from Expenses ▸ Expense or Expense to Process.
  2. Where a claim is above the limit, Odoo shows a warning on the expense. Edit the Total to the authorized limit to cap it, then approve.
Odoo 20 over-limit warning on an expense for a job position

Assign Expense Products to Salary Rules

Expense products can now be assigned to the respective salary rule to ensure the correct calculation of the respective expense type. When an expense is approved and processed through Odoo Payroll, it follows the rule assigned to its expense product, with no manual mapping or corrections, so each expense type is calculated the way it should be.

WHY IT MATTERS?

Different expense types are often calculated differently in payroll, for example reimbursed as-is, taxed or added to a specific payslip line. If that mapping is done by hand, amounts can land in the wrong place. Assigning each expense product to its respective salary rule keeps the calculation consistent for every expense type.

Configuration Steps

A few one-time steps connect your expense products to the right salary rules.

Step 1
Enable the setting: go to Expenses ▸ Configuration ▸ Settings and turn on Reimburse in Payslip.
Step 2
Make sure the Expenses and Payroll apps are installed, and that a salary rule exists for each expense type you want to calculate separately.
Step 3
Open each expense product, select the respective salary rule and save.
Step 4
Try it out: log an expense for the product with Reimbursement set to Employee (Through a Payslip) and approve it. Then compute the employee's payslip and check that the amount appears in Salary Computation through the assigned salary rule.

Odoo 20 Salary Rule Setup: Operational Instructions

  1. Enable Reimburse in Payslip: Expenses ▸ Configuration ▸ Settings ▸ Expenses
Odoo 20 Expenses settings with Reimburse in Payslip enabled
  1. Navigation path: Expenses ▸ Configuration ▸ Expense Products ▸ [Select Product], then choose the salary rule.
Odoo 20 salary rule dropdown on an expense product
  1. Select the salary rule that matches the expense type and save. Claims logged with that product are now calculated through it.
Odoo 20 salary rule selected on the expense product
  1. Employees log and submit expenses as usual, choosing the expense product that fits the claim and setting Reimbursement to Employee (Through a Payslip).
Odoo 20 expense with Reimbursement set to Employee (Through a Payslip)
  1. Managers approve the expense (capping it first if it is above the limit). The expense must be approved before the payslip is computed.
  2. Open the employee's payslip and click Compute. The approved amount appears in the Salary Computation tab as Expenses Reimbursement.
Odoo 20 payslip Salary Computation tab showing Expenses Reimbursement

Odoo 20 Expenses Configuration Checklist

Use this short list to set up a test instance in the right order.

FeatureApp requiredWhere to configureOne-time setup
Cap by Job PositionExpenses (with Employees)Expense Products ▸ LimitsSet each employee's job position and the maximum allowable amount per position.
Assign to Salary RuleExpenses and PayrollExpense Products ▸ Salary RuleEnable Reimburse in Payslip in Settings, then select the respective salary rule on each expense product.

How These Features Change the Expenses Workflow

Taken together, the direction of Odoo 20 Expenses is a more controlled process with less manual checking:

STEP 1
Job Position
Limit defined once
▶
STEP 2
Expense
Employee logs claim
▶
STEP 3
Approval
Manager caps at limit
▶
STEP 4
Salary Rule
Applied to the product
▶
STEP 5
Payslip
Reimbursed via payroll

Here is how a typical expense claim can flow:

  1. Set up the job position once: the maximum allowable amount is stored against the position.
  2. Employee logs the expense: the claim is created and submitted in the usual way.
  3. Manager reviews and caps: if the amount is above the limit, Odoo shows a warning and the manager caps it at the authorized amount before final approval.
  4. Salary rule applies: the expense product's assigned salary rule drives how the approved amount is calculated.
  5. Reimburse through the payslip: with Reimbursement set to Employee (Through a Payslip), the approved amount appears under Salary Computation when the payslip is computed.

Odoo 20 Expenses brings practical improvements that make expense handling more structured and less repetitive. Maximum amounts per job position let managers cap claims at the authorized limit before final approval, and assigning expense products to the respective salary rule ensures the correct calculation of each expense type, creating a more connected workflow for managing limits, approvals and payroll more efficiently.

Frequently Asked Questions

Open the Expense Product from the Expense configuration and enter the maximum allowable amount. Labels can vary by version and edition, so confirm the exact field in your own database.

The limit follows the job position, so set a position on every employee whose claims you want to control.

Yes. If you are coming from an earlier version, check custom Expenses modules, inherited views, custom reports, integrations and automated workflows for compatibility with Odoo 20.

Yes. Assign the respective salary rule to the expense product so that the expense type is calculated correctly. Labels can vary by version and edition, so confirm the exact field in your own database.

The expense type cannot be calculated through a rule, so assign the respective salary rule to every expense product you use before processing claims.

Simplify Expense Management with Odoo 20

Streamline employee expense reporting, approval workflows, and reimbursement processes with Odoo implementation and customization services from GritXi Technologies. We help businesses configure Odoo to support their financial and operational requirements.

Contact Us

Get GritXi's Expertise

Sign in to leave a comment
Oct 13, 2026

Odoo 20 Recruitment: New Features and Updates

Finding the right candidate is one of the most important and time-consuming parts of recruitment. HR teams often need to review numerous resumes, compare candidate skills with job requirements, and id...
Oct 13, 2026

Odoo 20 Discuss: New Features and Improvements

Effective team communication is essential for improving collaboration, reducing delays, and keeping business operations organized. Odoo 20 Discuss enhances workplace communication with new features de...
Oct 12, 2026

Odoo 20 Maintenance: New Features & Improvements

Effective maintenance management requires more than simply recording repair requests. Maintenance teams need flexible workflows, clear request statuses, and efficient planning tools to keep equipment ...