CFDI 4.0 invoicing in Odoo
Odoo stamps CFDI 4.0 in Mexico through its localization, but not with a switch: you install the fiscal modules, contract a PAC, load your seal and map your catalogue to the tax authority codes. Here is what actually takes work, and in what order.
Can Odoo issue CFDI 4.0 invoices in Mexico?
iTechDev implements CFDI 4.0 invoicing in Odoo, and the honest answer to «does Odoo invoice in Mexico?» is yes — but the module is the easy part.
- Digital Seal CertificateYours, obtained from the tax authority and installed in Odoo. Without it there is no stamping.
- PACThe authorized provider that stamps. Odoo connects to several; the one you choose sets cost per stamp and support when something is rejected.
- Product code and unitEvery product needs its tax-authority code. That is the taxpayer’s fiscal decision, not the implementer’s.
- CFDI use and regimeRecipient data living on the contact. A wrong regime rejects the invoice rather than correcting it later.
- Payment complementThe document covering collection when the invoice was on credit. Issued separately and among the most often forgotten.
See in detail
The capability lives in the Mexican localization (`l10n_mx` for the chart of accounts and `l10n_mx_edi` for stamping) and relies on your Digital Seal Certificate and a contracted PAC, same as any other system. What separates an implementation that stamps on day one from one that keeps getting invoices rejected is not the software: it is master-data mapping. Every product needs its tax-authority product code and unit; every customer its tax regime, CFDI use and correct postal code; every tax its configuration. That work happens before the first stamp, or it gets paid for later — multiplied — in rejected invoices and stalled collections. And there is a boundary worth understanding early: stamping is one thing and keeping official Mexican accounting is another — the second is Odoo Enterprise; Community ships the chart of accounts, not the electronic reports.
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 is yours to solve
What gets configured, and in what order
The localization modules
`l10n_mx` and `l10n_mx_edi` are installed and the localization version is checked against the Odoo version you will run.
Your seal certificate
Your certificate and key are loaded. It is sensitive data: handled as such, never by email.
The PAC
Registration and sandbox testing before production. This is where you confirm it supports the current complement version.
Tax codes on products
The bulk of the work. We propose the code; your accountant approves it, because it is the taxpayer’s fiscal decision.
Customer fiscal data
Regime, CFDI use and postal code per contact. A wrong postal code is among the most common and quietest rejections.
Taxes and series
VAT, withholdings where they apply, and the series and folios you will issue with.
Payment complement
The collection flow that triggers the complement, so it does not depend on someone remembering at month end.
Cancellation
The cancellation circuit with acknowledgement and reasons — in practice where daily operations get stuck most.
Decisions to make first
1Who approves the tax codes?
We propose, your accountant approves. Without that agreement in writing, every disputed code becomes rework and fiscal responsibility blurs.
2Which PAC
It changes cost per stamp, support quality when something is rejected, and how fast a change is adopted. Decided before configuring.
3Community or Enterprise?
Stamping is one thing; full official Mexican accounting is another and it is Enterprise. If you will close the month in Odoo, the edition decision happens here.
4How dirty the catalogue is
Duplicate products, inconsistent units, customers without fiscal data. It moves the timeline more than anything else, and gets measured before a date is committed.
5Addendas
If your large customers require them, each is a separate development. Listed from the start: appearing mid-project is the classic expensive surprise.
6Cut-off date
From when you stamp in Odoo and what happens to what remains in the old system. Defined up front, not on go-live day.
Tech stack
The tools and platforms we build it with — chosen for your problem, not for hype.
Questions about CFDI 4.0 in Odoo
Can't find your question? Talk to an engineer — no sales script.
Contact us →Does Odoo stamp CFDI 4.0 out of the box?
The capability ships in the Mexican localization, so it does not start from custom development. But «out of the box» suggests you flip it on, and that is not true: without your seal certificate, a contracted PAC and tax codes across your catalogue, nothing stamps. The module is the easy part; master data is the project.
Can I stamp from Odoo Community or do I need Enterprise?
You can stamp from Community, and that part answers quickly. The useful question is different: if you will also keep official accounting in Odoo — trial balance, DIOT, electronic reports — that is Enterprise. Community ships the Mexican chart of accounts, not the reports. So the edition decision looks at the whole fiscal package, not just stamping.
Which PAC suits me?
It depends on your volume, how critical support is when something is rejected, and how fast that provider adopts published changes. There is no single answer, and be wary of anyone who gives you one without asking how many invoices you issue. What is constant: confirm it supports the current complement version before configuring, not during the first test.
Who is responsible if a tax code is wrong?
Fiscal classification of your products is the taxpayer’s decision, which means yours. We propose the code with the criteria we have seen work and your accountant approves it. We put that in writing from the start because it is where mid-project disputes concentrate, and because taking on someone else’s fiscal responsibility helps nobody.
What about addendas for my large customers?
Each addenda is different and developed separately: there is no universal one. That is why they are listed at project start and quoted apart. If one appears halfway, it moves the timeline — and we would rather say so before signing than discover it together in week four.
I am coming from CONTPAQi or Aspel where I already stamped. Do I lose that?
No, but it does not carry over by itself. Product codes, customer fiscal data and your series are already captured in your current system, and they have to be brought across and mapped to Odoo’s model. That is the work most underestimated in migrations, and it is planned as part of the project rather than left as a post-go-live to-do.
How long until it is stamping?
The module configures in days; the catalogue sets the timeline. A company with two hundred clean products and complete customer fiscal data is a different story from one with two thousand duplicates. Our packages publish price and timeline by scope, and the real range for your case comes out of the technical analysis.
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.