Expenses in Odoo: receipts and CFDI
Employee expense reporting with approval and reimbursement. In Mexico what decides whether it works is not the photo of the receipt: it is that the supplier’s CFDI XML arrives and reconciles.
What does the Odoo Expenses module do?
iTechDev implements Odoo Expenses, and the observation we always make in discovery is that this module gets judged wrong.
- Expense reportThe set of expenses an employee submits for approval at once, rather than one by one.
- Tax documentThe supplier’s CFDI with its XML. Without it the expense is reimbursable but not deductible.
- ApprovalWho authorizes and from what amount. Company policy, not system configuration.
- ReimbursementPayment to the employee, via payroll or transfer depending on how you handle it.
- Creditable VATThe tax you can recover, and only if the document is correct and on time.
See in detail
People evaluate it on how convenient it is to photograph a receipt from a phone, and that is the easy part any app solves. What actually matters in Mexico is the rest: that the supplier’s CFDI XML arrives with the expense, that the document is in the company’s name with correct fiscal data, and that VAT is recorded where it can be credited. That is where money is genuinely lost, and it is not lost in one big amount: it is lost across hundreds of small expenses nobody documented properly and that cannot be recovered at close. Odoo handles the full circuit — employee records, manager approves, reimbursement is issued and the journal entry posts by itself — and the difference between a useful implementation and a decorative one is whether that documentation policy was defined before switching it on.
Six operational reasons, zero adjectives
The code is yours from day one
Repos in your name, documented CI/CD and zero vendor lock-in. If you leave tomorrow, you take it all, running.
WhatsApp API with an official provider
We are a Meta Tech Provider: your WhatsApp Business API line with no middlemen, and chatbots wired to your ERP.
Sprint delivery you can click
A working demo every two weeks and measurable progress. No "it’s 80% done" without something you can click.
AI applied to your operation
LLM agents, RAG over your data and process automation — the same practice we use to run iTech itself.
Real nearshore: Texas + Monterrey
Legal entity in the U.S. (iTech Corp, Texas), contracts under U.S. law, same CST time zone and USMCA.
ERP with CFDI 4.0 invoicing
We implement Odoo with integrated SAT stamping (PAC), client portal and reconciliation — a full operation, not just software.
When this module solves something
What the module includes
Mobile capture
The employee records the expense and attaches the document on the spot, not three weeks later.
Expense reports
Several expenses grouped in one submission, which is how approval actually happens.
Approval flow
By amount or by direct manager, with a record of who authorized, when and with what comment.
Categories with rules
Caps by expense type and which ones require a mandatory tax document.
Expense linked to project or customer
So cost reaches project profitability or gets rebilled to the customer.
Reimbursement and posting
Payment to the employee and the accounting entry with its tax, without rekeying.
Corporate card expenses
What was paid on the company card — documented but not reimbursed.
Reporting
How much each area, project and person spends, with what is pending documentation in plain view.
Decisions to make before configuring
1The documentation policy
Which expenses require a mandatory CFDI and what happens to whoever does not document. A management decision; without it the module records the problem instead of solving it.
2Who approves and from what amount
By amount, manager or category. Defined first; configuring blind produces a flow everyone bypasses.
3Caps per category
How much lodging, food, transport. Without caps the flow approves everything and nobody questions anything.
4How reimbursement happens
Via payroll or transfer, and how often. It changes the accounting flow and your people’s expectations.
5Corporate card
If it exists it is handled differently: documented but not reimbursed. Defined from the start or it blends with everything else.
6Rebillable expenses
Which get charged to the customer and how they appear on the invoice. Agreed with whoever sells, not whoever keys.
Tech stack
The tools and platforms we build it with — chosen for your problem, not for hype.
Questions about Expenses in Odoo
Can't find your question? Talk to an engineer — no sales script.
Contact us →Is Expenses in Community?
Yes, with the full circuit: capture, approval, reimbursement and posting. What pushes companies to Enterprise is not this module but the official Mexican accounting where the expense ends up.
Does Odoo read the expense CFDI XML?
The document attaches to the expense and from there it is processed into accounting. How automatic that step is depends on your version and which fiscal modules you have installed, so it is one of the things we verify against your instance in the technical analysis rather than promising up front.
Can I charge expenses to a project?
Yes, and it is among the most useful if you bill by project: the expense reaches profitability alongside the hours, so you see the real margin and not just labour. It can also be marked rebillable so it is charged to the customer.
Does it work for field staff?
It is its best case. Mobile capture with the document on the spot is exactly what avoids the month-end envelope of receipts, where creditable VAT is lost to misplaced or expired documents.
What about corporate cards?
Handled apart from reimbursement: what was paid on the company card still needs documenting, but nothing is paid back. Worth defining from the start, because mixing it with reimbursable expenses is among the most common messes.
How long until it is running?
Configuration is fast; what takes time is the company deciding its documentation policy and people changing the habit.
Request your technical analysis
Three fields and we schedule the first session. You leave with a closed written quote — yours, whatever you decide.
The packages, with published pricing
- Arranque Odoo $29,900You are coming from Excel and want to get CRM, sales, purchasing and inventory in order before dealing with tax compliance.
- Fiscal Esencial $44,900RESICO individuals, RESICO companies up to $35M, or Title IV individuals with income below $4,000,000.
- Empresa MX $89,000Companies under the general tax regime, or Title IV individuals with income from $4,000,000: those required to file electronic accounting and DIOT.
- Empresa MX · Odoo.sh $98,000General tax regime with at least one of the five triggers: retailer addenda, payroll inside Odoo, your own PAC, an accountant on Contpaq, or selling on Mercado Libre.
- Comercio MX $139,000Retail and commerce selling on the floor and online, needing to invoice both.
Plus VAT. You pay the Odoo license directly to Odoo, not to us. Which one applies depends on your tax regime, not your size.
More from Odoo
Start with the technical analysis
A closed budget in writing, yours even if you implement with someone else and credited to the project if you move forward. $7,500, one week.
No CTA sends you to a long questionnaire: three fields and you get the proposal.