How to Re-Invoice Expenses in Odoo 18 for Efficient Billing
Re-invoicing expenses in Odoo 18 is a total game-changer for service-based businesses like consultancies, agencies, and project-driven firms. It allows you to charge your clients for any costs you’ve covered on their behalf — like travel, accommodation, or meals — all within a few clicks. No more manual tracking or awkward spreadsheet gymnastics!
Imagine this: your consultant travels interstate for a client meeting. Flights, hotel, meals — all covered by your company. With Odoo’s expense re-invoicing, those costs can be automatically pushed to the client’s invoice. Smooth, transparent, and accurate billing. Let’s see how you can set this up like a pro.
🔧 Configure Expense Categories for Re-Invoicing
Start by defining how each expense type should be billed.
Go to:
Expenses > Configuration > Expense Categories
When creating or editing an expense category, check the Re-invoice Costs section. You’ve got three options:
- No – Expense is recorded, but not billed to the customer.
- At Cost – Re-invoice the exact cost of the expense.
- Sales Price – Re-invoice with a predefined sales price.
💸 Re-Invoice Option: At Cost
This is perfect when you want to recover the exact amount spent.
- Set Re-invoice Costs to At Cost in the Expense Category.
- Add the Cost amount — if set here, it becomes fixed and un-editable in the expense form.
- Head to My Expenses > My Expenses and click New to create a new expense.
Fill in the form with details like:
- Description: e.g., “Client Dinner”
- Category: e.g., Meals
- Total: e.g., Amount
- Employee: Who submitted the expense
- Paid By: Employee or Company
- Customer to Re-invoice: Link a Sales Order to trigger the billing
💡 Once submitted and approved, click Post Journal Entries. Your expense now appears in the Sales Order lines. From there, just hit Create Invoice, choose invoice type, and boom — the client gets billed!
💵 Re-Invoice Option: Sales Price
If you want to make a margin on expenses (like mileage or billable services), this is your friend.
- Set Re-invoice Costs to Sales Price in the Expense Category.
- Enter both Cost Price and Sales Price (e.g., $1.5 cost, $2.0 sales).
- While creating the expense:
- Choose the category (e.g., “Mileage”)
- Enter Quantity (e.g., 30 km)
- Customer to Re-invoice = Sales Order
The sales order line will show 30 units x $2.00, and the margin is yours 🎯. As always, submit → approve → post entries → create invoice → confirm → get paid.
🚫 Re-Invoice Option: No
Sometimes, expenses like corporate gifts or internal meetings aren’t billed to clients. Here’s how to handle those:
- Set Re-invoice Costs to No in the Expense Category.
- Create an expense as usual — but you won’t see the Customer to Re-invoice field anymore.
- Submit → Approve → Post Journal Entry
No invoice is created, but the expense is tracked in your accounts. Clean and simple!
✅ Final Thoughts
Odoo 18’s expense re-invoicing helps businesses stay financially healthy and transparent with their clients. Whether it’s charging clients exactly what you spent or adding a markup, it’s all handled within a few clicks — no more lost receipts or manual follow-ups.
Perfect for:
- Consulting Firms
- Field Service Providers
- Freelancers & Contractors
- Any business that handles client-based expenses
So next time your team covers costs for a client, don’t sweat it — let Odoo Consultant do the heavy lifting and keep your billing tight. 💼💰