Odoo Expenses & Fleet, configured for how you actually operate
Two applications, not one. Brainvire configures Expenses around the run from a receipt to a reimbursement, and Fleet around vehicle records, contracts and service history. Both land in the same ledger — and we say plainly what neither does.
Two separate Odoo applications. Expenses runs the path from a receipt to a reimbursement. Fleet keeps vehicle records, contracts, services, accidents and odometer readings.
Odoo’s editions page marks both available in Community and Enterprise. Two line items are Enterprise only: Expense Digitization (OCR) and Reimbursement in Payslip.
No GPS distance capture, no telematics feed, no fuel-card reconciliation, no IFRS 16 lease accounting. Each is an integration or a different system, not a setting.
Small implementations 8 to 12 weeks, mid-market 12 to 24 weeks, multi-entity rollouts 6 to 12 months. Our estimates, not Odoo’s.
/ Before you change anything
Does your spend look like any of this?
Patterns we see where staff spending and company vehicles sit outside the ledger.
Receipts arrive as photographs
In a chat thread weeks after the trip, and somebody retypes them into a workbook.
Approval is a forwarded email
Nobody can say which claims are waiting, who is holding one, or why one was refused.
The card statement is a monthly hunt
Lines are matched to receipts from memory, and whatever nobody claims is absorbed.
The fleet lives in three places
A spreadsheet of plates, a folder of lease PDFs and the garage’s invoices. Nobody can total a vehicle.




Trusted by enterprise Odoo teams worldwide












/ The work itself
What does Brainvire actually configure in Expenses and Fleet?
Odoo ships both working. The value is in the configuration, and in where each hands over to Odoo Accounting.
| Odoo default | What Brainvire changes | Why it matters |
|---|---|---|
| Default expense categories | A category per thing you genuinely reimburse, each with its reference code and expense account | Cost lands in the right account, and the email route works |
| Digitization switched off | Expense Digitization (OCR) set to on demand or automatic, with IAP credits in place | A photographed receipt arrives as a draft, not typing |
| No inbound alias | Incoming Emails on, the expense alias published, reference codes taught to staff | A trip is filed from a phone, without opening Odoo |
| One approval, by rights alone | Studio approval rules with their own approvers, order and conditions, where a second signature is genuinely required | The chain matches your delegation of authority |
| Empty vehicle records | Models and categories, then contracts with a responsible person and the end-date alert set | A renewal reaches a person, not a forgotten calendar |
| Reimbursement by bank only | Reimburse in Payslip where Payroll is live in that country, a payment run where it is not | One agreed route per country, decided before go-live |
| One service type, no analytics | Service types per job plus the two accident types, and analytic plans carrying project, department or vehicle | Cost per vehicle and per project becomes a ledger dimension |
Feature names follow the Odoo 18 documentation. Edition status was read row by row from Odoo’s own editions comparison.
/ Automation, where it pays
Where does automation earn its place on expenses and fleet?
Four places the admin around a claim or a vehicle becomes configuration, and one where it becomes a build.
A receipt arrives as a draft expense
Upload a receipt or drop it on the dashboard and Odoo scans it, filling in the date and the total, on demand or automatically. A person still checks it. Nobody retypes it.
Filing from the road, without the app
Staff email the receipt to the expense alias with the category reference in the subject, and Odoo builds the record. Only authenticated employee work emails are accepted, which is what makes the alias safe to publish.
A second signature, only when the rule says so
Expenses ships one approval step, gated by access rights. Where your delegation of authority needs two, Studio approval rules add them to the button itself, with exclusive approval so one person cannot clear both.
Where Odoo stops, we build
A Saudi fleet operator needed live vehicle positions and a better way to bind drivers to vehicles, so we built it around GPS and IoT devices in the cars. Not an Odoo project, and that is the point.
/ Delivery
How does an Expenses and Fleet implementation run?
Small implementations 8 to 12 weeks, mid-market 12 to 24 weeks, multi-entity rollouts 6 to 12 months. A named owner and a working demo at each stage.
Discovery
We follow one real claim and one real vehicle end to end: who spends, who approves, who repays it, and what a vehicle costs across a year. You provide a controller and the vehicle list.
Design
Categories and accounts, the intake paths, the approval rules, the repayment route per country and the vehicle structure are agreed in writing before anything is built.
Build and data
Configuration, the Studio approval rules, analytic plans and any card or telematics interface. Then employees, vehicles, contracts and open claims load into a test database.
Pilot and go-live
One department and one depot run a month live beside the old method until reimbursements and vehicle costs agree, then the rest follow. Hypercare through the first close.
/ Scope
What makes an expenses and fleet scope bigger or smaller?
A typical engagement covers both applications, the categories and accounts behind them, the approval rules, the repayment route and the vehicle structure. Payslip repayment pulls in Odoo HR and Payroll. Card feeds and telematics are interfaces we build.
Who spends, and where
Headcount is easy. Several countries is not: each settles its own route and tax treatment.
How the money goes back
A payment run is straightforward. Repaying through a payslip needs Payroll live in that country.
Whether cards are in play
Marking who paid takes a field. Reconciling a card program against claims is an interface and a rule set.
How far the vehicles go
A register of plates is quick. Contracts, service history, accidents and telematics are each their own work.
/ On the record
Where have we done this before?
Three engagements. One is not an Odoo project, and that is exactly why it is here.
A 3PL, 4PL and 5PL operator
Document handling and expense tracking had no central tool, and manual HR was producing payroll errors. Odoo 18 Enterprise took CRM, inventory, payroll and the third-party logistics portals, and expense processing moved with it.
Read the case →
Shahen Express
Saudi land transport: the company verifies driver certifications, monitors transport activity and tracks executed trips. Brainvire analyzed the data structures behind its cargo portal, mapped the fields to Odoo’s accounting module and synchronized them, so invoicing and accounting run together.
Read the case →
Vehicle tracking, built
A fleet management company wanted live vehicle positions and reports its customers could pull themselves. We built it around GPS and IoT devices in the cars, with code, fingerprint and facial-scan driver binding.
Read the case →/ Comparison
Odoo, or a dedicated expense and fleet tool?
The specialists start ahead on capture. Odoo starts ahead on what happens next.
| Criterion | A dedicated tool | Odoo 18 |
|---|---|---|
| Receipt capture | Expensify’s SmartScan extracts the data in real time and matches it to a card transaction | Expense Digitization (OCR), Enterprise only, on prepaid IAP credits |
| Distance | Expensify sells distance tracking as a product | A mileage category priced per unit; the distance is typed into Quantity |
| Company cards | SAP Concur sells Bank Card Feeds, bringing card transactions in automatically | Who paid is a field. The card account reconciles in the bank journal like any other |
| Vehicle tracking | Samsara’s telematics covers real-time GPS, routing and fuel | Not shipped. An odometer reading is typed onto the service record |
| Approvals | Concur checks policy on submission, then runs a structured approval workflow | One step by the report’s manager; more steps come from Studio |
| Where the entry lands | An export, then an import into whatever holds your ledger | Post Journal Entries writes it to a journal in the same database |
Choose the dedicated tool if card feeds, automatic distance capture or knowing where a vehicle is right now are the daily job. Odoo ships none of those. Choose Odoo if the reimbursement, the repair bill and the vehicle’s cost belong in the same ledger as everything else. Brainvire resells none of these; every claim in the middle column comes from that vendor’s own pages. Editions: Community versus Enterprise.
/ Questions we are asked
Odoo Expenses and Fleet FAQs.
Are Odoo Expenses and Odoo Fleet available in Community?
Yes, both. Odoo's editions page marks Expenses and Fleet available in Community and in Enterprise. Two related line items are Enterprise only: Expense Digitization (OCR) and Reimbursement in Payslip. A Community database can log, approve and post expenses, but it cannot scan a receipt for you or repay one through a payslip.
How does a receipt become an expense, and does Odoo scan it?
Four intake paths: type it in, upload the receipt, drop it on the Expenses dashboard, or email it to an alias with the category reference in the subject. With Expense Digitization (OCR) on, Odoo scans an uploaded receipt and fills the record in. That runs on an in-app purchase service and needs prepaid credits.
Can Odoo run a multi-step approval chain on expense reports?
Not inside Expenses. A report goes to one manager, and who may approve is decided by access rights starting at Team Approver. Where a second or third signature is genuinely required we build it with Studio approval rules, which add steps with their own approvers, conditions and approval order. Studio is Enterprise only.
How do employees actually get their money back?
Three routes. A posted report is paid individually or in bulk through a bank or cash journal, with group payments making one payment per employee. Or an approved report goes to the next payslip instead. That second option disappears once the report is posted, so the route has to be chosen before posting, not after.
Does Odoo reconcile corporate cards or fuel cards?
No, not out of the box. Each expense records whether the employee or the company paid, so company-paid spend stays out of reimbursement, but there is no card feed in Expenses. The card account reconciles in the bank journal like any other. Where volume justifies it, we build the import and matching rules.
Does Odoo capture mileage with GPS?
No. Mileage is an expense category with a unit price, and the distance is typed into the quantity field. Odometer readings are typed onto the vehicle or the service record too. We checked the Odoo 18 documentation index: GPS and telematics do not appear in it at all. Automatic distance capture is an integration.
What does Odoo Fleet actually hold?
Vehicle records with model, license plate, chassis number and last odometer reading; a driver, who does not have to be an employee; a future driver and an assignment date; contracts with a responsible person and an end-date alert; services and accidents as service records; and a cost report by vehicle and driver.
Does Odoo Fleet do lease accounting?
No. Fleet stores a first contract date, a catalog value, a purchase value and a residual value on the vehicle, plus contracts with an expiry alert. That is management information. IFRS 16 appears nowhere in the Odoo 18 documentation, so a lessee with a material lease portfolio needs a lease accounting tool and a journal interface.
Where does a vehicle's cost land in accounting?
Fleet's own report totals contract and service costs by vehicle and by driver, but that is a Fleet report. The ledger entry comes from the supplier document: the repair bill, the lease invoice, or an employee expense posted to a journal. An owned vehicle is capitalized and depreciated through an asset in Accounting.
/ Next step
Let’s decide how claims and vehicles should run on Odoo.
- A senior architect replies within one business day
- Your details are never shared or sold
- An NDA can be signed before we hear any detail
US +1 (631) 897-7276 · Gulf +971-54-737-4253 · Singapore +65-9086-0319 · India +91-22-6116-3300.









Trusted by 2,000+ brands worldwide
“Brainvire has helped our business grow. We feel like it’s a true partnership. They’re always present. It’s been seven great years, looking forward to more.”
Book a working session
Tell us how a claim reaches approval today, and who can say what a vehicle costs.