Skip to content

How to Configure Expense Categories in Odoo 19

DeployMonkey Team · March 24, 2026 8 min read

Overview

The Expenses module in Odoo 19 allows employees to submit expense reports for reimbursement. Expense categories (defined as products) determine the accounting treatment, tax handling, and re-invoicing rules. A well-configured expense system reduces processing time and ensures accurate cost allocation.

Prerequisites

  • Odoo 19 with Expenses module installed
  • Accounting configured with expense accounts
  • HR Manager or Administrator access

Step 1: Create Expense Categories

Navigate to Expenses > Configuration > Expense Categories. Each category is technically a product of type "Service". Click New:

  • Name — Descriptive category name (e.g., "Travel - Airfare", "Meals", "Mileage", "Hotel")
  • Cost — Default amount (useful for per-diem or mileage rates)
  • Unit of Measure — e.g., "Miles", "Days", "Units"
  • Expense Account — The GL account for posting (e.g., Travel Expense, Meals Expense)
  • Vendor Taxes — Tax applied on expenses (for tax recovery)

Step 2: Configure Common Categories

CategoryAccountDefault CostUoM
AirfareTravel Expense (6300)$0 (variable)Units
HotelTravel Expense (6300)$0 (variable)Nights
Meals - Per DiemMeals Expense (6310)$50.00Days
MileageVehicle Expense (6320)$0.67Miles
Office SuppliesOffice Expense (6400)$0 (variable)Units
Software SubscriptionIT Expense (6500)$0 (variable)Units

Step 3: Configure Approval Workflow

The expense approval workflow follows these steps:

  1. Employee submits — Creates expense lines and groups them into an expense report
  2. Manager approves — The employee's direct manager reviews and approves
  3. Accountant posts — Accounting team validates and posts the journal entry
  4. Payment — Reimbursement via payroll or direct bank transfer

Managers can refuse expense reports with a reason, sending the report back to the employee.

Step 4: Enable Re-Invoicing

To charge expenses back to customers (with sale_expense module):

  1. On the expense category (product), enable re-invoicing in the Sales section
  2. Set the re-invoice policy: At Cost or At Sales Price
  3. When employees submit expenses, they can link them to a Sales Order
  4. The expense appears on the customer's next invoice

Step 5: Receipt Management

Configure receipt handling:

  • Employees attach photos or PDFs of receipts directly to expense lines
  • Set policies requiring receipts above certain amounts
  • Use the mobile app or email-to-expense for quick submission

Step 6: Multi-Currency Expenses

For international travel:

  • Employees select the currency when entering the expense amount
  • Odoo converts to the company currency using the exchange rate on the expense date
  • Reimbursement is always in the company currency

Step 7: Analytics and Reporting

Track expenses through:

  • Expenses > Reporting > Expense Analysis — Breakdown by category, employee, department, and period
  • Link expenses to analytic accounts for project or department-level cost tracking
  • Compare budgeted vs. actual expense spending

Best Practices

  • Create granular categories for meaningful expense analysis (not just "Travel")
  • Set default costs for fixed-rate expenses like mileage and per diem
  • Require receipts for expenses above a threshold (e.g., $25)
  • Train employees on the expense submission process to reduce rejection rates
  • Process expense reports within 5 business days to maintain employee satisfaction