Mexican localization in Odoo: CFDI 4.0, PAC stamping, DIOT and payroll
We configure the Mexican tax localization in Odoo —l10n_mx and l10n_mx_edi_40— so your ERP stamps the CFDI 4.0 in compliance with the SAT from within the system: income, expense, payment and transfer, with an authorized PAC, DIOT, payroll and SAT complements. No parallel portals, no manual reconciliation.
What is Odoo localization for Mexico?
Mexican localization is the set of modules and configurations that make Odoo SAT-compliant.
See in detail
It relies on l10n_mx (tax catalog, grouping chart of accounts and payment forms/methods) and l10n_mx_edi_40, the module that generates and stamps CFDI 4.0 through an authorized PAC (Finkok or Factura.com). Once configured, Odoo issues the document when the invoice is confirmed —income, expense, payment and transfer types— and stores the XML and SAT acknowledgment inside the record itself. This is not optional: electronic invoicing compliant with the SAT is mandatory to operate in Mexico. We are a software factory founded in 2018 (Monterrey, Guadalajara + Texas, 5.0★ on Clutch) and Odoo Ready; we configure the localization on verifiable criteria —standard version, SAT complements and PAC— and hand it over documented, with no vendor lock-in.
The SAT clock: dated obligations and how Odoo covers them
Each obligation, with its date and how it lands in your instance. This is the ground a global partner can’t cover for you.
| Obligation | What it is | In force since | How it lands in your Odoo |
|---|---|---|---|
| CFDI 4.0 | Digital tax document for income, expense, payment and transfer | In force; version 3.3 has been discontinued | l10n_mx_edi_40 configured and audited against Anexo 20 |
| Payment complement (REP 2.0) | Electronic payment receipt for installment or deferred collections | Required when collecting in installments or on credit | Native, configured and reconciled with the source invoice |
| DIOT* | Informative return of operations with third parties | Monthly · 2026 format and cadence under SAT review | Generated from Odoo (Enterprise or module) |
| Electronic accounting | SAT grouping chart of accounts and trial balance | Depending on your tax regime | SAT chart of accounts + trial balance configured |
| Carta Porte 3.1* | Goods-transport complement | Road transport (type T) · exclusive 3.1 mandate pending confirmation | Native configured (type T); sea/air/rail = development |
| Comercio exterior | Complement for export operations | When you export goods | Native, configured with customs data |
| CFDI cancellation | Cancellation scheme with receiver acceptance | In force | Flow configured; Odoo stores the reason and acknowledgment |
| Payroll (complement) | Stamped payroll receipt | If you run payroll in Mexico | Add-on: ships in no Odoo edition out of the box |
The obligations and dates are set by the SAT and change. Every data point is verified against the official source before configuring your instance. Items marked with * are pending confirmation of validity with the SAT source.
Official source: the SAT portal (sat.gob.mx). Verified in the analysis, not from memory.
Which one stamps your case: decided by regime, not by size
The localization is the same; what changes is what you must file with the SAT. Each route lands on the package with published pricing.
Add-ons quoted separately: Carta Porte 3.1 from $19,900 (road transport, type T) and Payroll from $45,000 — ships in no edition.
And where it runs decides whether you can stamp the way you need
| Community (self-hosted) | Odoo Online (SaaS) | Odoo.sh (PaaS) | |
|---|---|---|---|
| License | Free (open source) | Enterprise · per user/month | Enterprise · per user/month + platform |
| Who administers the server | You / your partner (iTech AMS) | Odoo (100%) | Odoo (infra) · you/iTech (the code) |
| Custom modules / your own code | Yes, full control | No (only approved App Store) | Yes (deploy via Git) |
| PAC for CFDI | Any (factura.com, Finkok…) | Only the integrated ones (3) | Any |
| Addendas / payroll / multimodal Carta Porte | Developable | No (require code) | Developable |
| Startup cost | Lower license, higher infra/AMS | Predictable, all-inclusive | License + platform |
| For whom | Tight budget, wants full control and has someone to run the infra | SMB that wants standard Odoo, a fast start, and whose tax case fits an integrated PAC | Needs Enterprise + customization/addendas/own PAC/payroll, without administering the server |
The #1 mistake of those who buy Odoo alone: they pay for Odoo Online and then cannot stamp the way they need. Odoo Online does NOT take third-party modules or your own PAC — if your operation needs addendas, payroll or a specific PAC, it is Odoo.sh or Community.
What the localization includes
l10n_mx configuration
Installation and setup of the localization: tax catalog (VAT, IEPS, withholdings), SAT grouping chart of accounts, payment forms and methods, and company tax data (RFC, regime, postal code).
CFDI 4.0 and l10n_mx_edi_40
Activation of l10n_mx_edi_40 to issue CFDI 4.0: income, expense, payment and transfer types, with CFDI use, tax object and validation of the SAT catalogs (c_*) before stamping.
Stamping with an authorized PAC
Connection to a SAT-authorized PAC (Finkok or Factura.com): loading of the digital seal certificate (CSD), tests in the stamping environment and automatic issuance of the XML and acknowledgment when the invoice is confirmed.
Payment complement (REP)
Configuration of the payment receipt complement to stamp installment or deferred payments and reconcile them with the source invoices inside Odoo.
DIOT and electronic accounting
Generation of the DIOT, the trial balance and the grouping chart-of-accounts reports to comply with the electronic accounting the SAT requires.
Cancellation and addendas
Configuration of the CFDI 4.0 cancellation flow (with the receiver-acceptance scheme the SAT requires) and of addendas for customers that need them (retail chains, automotive), issued within the document itself.
Payroll and SAT complements
Stamping of the payroll receipt with its complement, and configuration of carta porte or comercio exterior when the business requires it (goods transport or exports).
How we configure it
1Tax diagnosis
We map regime, RFC, business activity and obligations: which CFDI types you issue, whether you need the payment complement, carta porte, comercio exterior or payroll. Output: scope and PAC selection.
2Base configuration
We install l10n_mx and l10n_mx_edi_40, configure taxes, the grouping chart of accounts, tax data and load the digital seal certificate (CSD).
3Stamping tests
We issue test CFDI 4.0 against the PAC environment, validate the SAT catalogs (c_UsoCFDI, c_RegimenFiscal, c_ObjetoImp) and fix errors before production.
4Complements and reports
We enable the payment complement, DIOT, trial balance and, if applicable, carta porte or comercio exterior; we verify each XML against the SAT standard.
5Go-live and handoff
We move to production with real stamping, document the configuration and hand over the instance and reports — 100% your property, no black box.
Start with the analysis: what you stamp and in which tier
In fifteen minutes we check which version your catalogs are on and whether your tax case fits Odoo Online or needs Odoo.sh. The technical analysis hands you the exact fiscal scope, the tier and the budget in writing, and it is credited to the project if you move forward.
The `itech_cfdi_facturacom` module for Community is audited against Anexo 20 and we run it; we do not claim it battle-tested in production at scale. On Enterprise, stamping is configuration.
Request the analysisWhen you need it
We wrote the stamping and audited it
For our own operation on Odoo 19 Community we built the stamping connector and audited it against the SAT's Anexo 20; we run it. It is not a client case or a module battle-tested in production at scale — it is the proof that we actually do the localization.
erp.itechdev.com.mxProof of competence, not a client case.
Frequently asked questions
Can't find your question? Talk to an engineer — no sales script.
Contact us →Which PAC do you use for stamping?
We work with SAT-authorized PACs, primarily Finkok and Factura.com, which integrate natively or via module with l10n_mx_edi_40. If you already have a contract with another authorized PAC, we evaluate it during the diagnosis. The choice depends on your stamp volume, cost per stamp and support.
What is the difference between CFDI 4.0 and 3.3?
CFDI 4.0 is the current, mandatory version of the tax document; 3.3 has been discontinued by the SAT. Version 4.0 requires additional fields such as the receiver’s exact name and postal code per their Tax Status Certificate, the tax object per line item, and stricter validations. We configure Odoo with l10n_mx_edi_40, which generates CFDI 4.0 directly.
Does Odoo stamp payroll with the SAT complement?
Yes. We configure the payroll module with Mexican tax rules and the SAT payroll complement, so each receipt is stamped with its PAC and the XML is delivered to the employee. We define the exact scope (earnings, deductions, ISR, IMSS) based on your operation during the diagnosis.
Do you handle carta porte and comercio exterior?
Yes, when the business requires it. We configure the carta porte complement for goods transport by road and the comercio exterior complement for export operations. Both are issued as part of the CFDI 4.0 through the PAC, with the goods, location and customs data the SAT requires.
How do you cancel a CFDI from Odoo?
From within Odoo, through the PAC. We configure the CFDI 4.0 cancellation flow per the SAT’s current scheme, which requires stating the cancellation reason and —where applicable— obtaining the receiver’s acceptance before the document is cancelled. Odoo records the status (cancelled, cancellation in progress, rejected) and stores the acknowledgment, so your accounting always reflects the real status before the SAT.
Do I own the tax configuration?
Yes, 100%. The configured instance, any custom modules we develop in Python/XML, the documentation and the PAC access are yours. There is no vendor lock-in: the localization is left operational and documented so any team can keep it running.
Request your localization analysis
Tell us what you stamp today and we schedule the analysis: fiscal scope, tier and a budget in writing.
What we do guarantee
- We verify your SAT catalogs in the analysis, whether or not you pay for the fix.
- Native Carta Porte configured (type T); multimodal is development, quoted separately.
- We do not re-stamp already-issued CFDI: the SAT prohibits it.
- The instance and config are 100% yours, documented.
Make Odoo stamp right from day one
The technical analysis gives you the fiscal scope, the tier and the budget in writing.