One-minute summary
From January 1, 2026, issuing a CFDI without a real underlying transaction is no longer an administrative fine — Article 113-bis of the CFF makes it a tax crime with a 2-to-9-year prison sentence. SAT now runs on-site visits with photo and video evidence and 48-hour express audits. Most Odoo deployments in Mexico still run on "CFDI 3.3 with a 4.0 patch" and do not keep pace with the catalogs SAT published on January 29. This is the map of what your Odoo must have to operate in Mexico 2026 without your invoicing flow stopping.
- CFDI 4.0 has been the only valid format since April 1, 2023. SAT catalogs were refreshed January 30, 2026.
- Article 113-bis CFF turns the issuance, transfer or use of a CFDI without a real transaction into a tax crime (2 to 9 years prison).
- SAT can now run on-site visits with audio and video and close an audit in 48 hours instead of the standard 45 days.
- Carta Porte 3.1 is mandatory for federal trucking and multimodal operations.
- The cancellation flow grants the receiver 3 business days; silence counts as automatic acceptance.
- The CSD (digital seal certificate) can be suspended by SAT — recovery takes 7 to 14 business days with no ability to issue CFDIs.
- l10n_mx covers the base but needs add-ons for Carta Porte 3.1, Comercio Exterior 2.0, INE, Hidrocarburos and post-cancellation monitoring.
What changes in 2026: SAT raises the stakes
The SAT (Servicio de Administración Tributaria) is the most demanding e-invoicing regulator in LATAM. The volume passing through its stamping infrastructure exceeds Peru's SUNAT, Colombia's DIAN and Chile's SII combined. Against that backdrop, lawmakers approved in December 2025 the toughest rule package since CFDI 3.3 was rolled out.
#1. Real-transaction law
Article 113-bis of the Federal Fiscal Code now directly classifies the issuance, transfer or use of a CFDI that does not match a real transaction as a tax crime. The penalty is 2 to 9 years in prison for whoever issues such a CFDI, plus corporate liability. Until December the area was governed by administrative fines; now it is a criminal matter.
#2. Expanded SAT powers
SAT can run visits at the taxpayer's domicile, use photo, video and audio recording, and demand documents under an express-audit regime (48 hours). These methods used to apply only to large taxpayers and suspected schemes; they now reach any PYME under review.
#3. Updated CFDI 4.0 catalogs
Published January 29, effective January 30, 2026. They touch the key catalogs: Productos y Servicios, ClaveUnidad, FormaPago, MetodoPago and UsoCFDI. If the ERP does not pull the new versions through the SAT API, CFDIs bounce with a validation error. Many Odoo installs — especially community forks — use a catalog snapshot from the implementation date, and without quarterly maintenance the CFDIs start bouncing.
#4. Cancellation rules
The cancellation request is sent through Portal SAT or the Buzón Tributario. The receiver has 3 business days to accept or reject; silence counts as automatic acceptance. Until 2025 the window was "72 hours" with no clean definition of business days — now it is pinned to the Buzón Tributario operating hours.
#5. CSD suspension
SAT can suspend the Certificado de Sello Digital — without it you cannot issue a single CFDI — for mass issuance without backing, prolonged inactivity, omitted filings, or irregularities in the hydrocarbons sector. Restoring a CSD takes on average 7 to 14 business days: the business cannot invoice, collect, or operate.
l10n_mx: what your Odoo must have
The l10n_mx module is Odoo's most mature LATAM localization package. Most of it is maintained by Vauxoo (a Gold partner headquartered in CDMX), which explains its strong base coverage. But "the base" is no longer enough in 2026.
The standard l10n_mx Enterprise configuration covers:
- CFDI 4.0 generation with automatic XML assembly and a PAC connection.
- SAT catalogs with refresh capability (needs regular maintenance).
- Cancellation flow with motivo selection: 01 (Errors with related document), 02 (Operation not performed), 03 (Nominative operation), 04 (Nominative operation with related document).
- Complemento de Pagos (REP) for PPD (deferred or installment payment) — mandatory when an invoice ships with MétodoPago PPD.
- Constancia de Retenciones e Información de Pagos for withholders.
- Nómina CFDI 1.2 with IMSS, INFONAVIT, ISR and SAR withholdings — critical when payroll runs inside Odoo.
What does not ship out-of-the-box and needs additional install:
- Carta Porte 3.1 — a separate add-on (OCA or commercial). Version 3.0 ran through July 17, 2024; since then only 3.1 applies. It carries Ubicaciones, Mercancías, Autotransporte/Marítimo/Aéreo/Ferroviario sections, SCT permit types and pedimentos for cross-border transport.
- Complemento Comercio Exterior 2.0 for export CFDIs with the IMMEX padrón. Maquiladoras and exporters: mandatory.
- Complemento INE for electoral operations (relevant in election years and for permanent providers of political parties).
- Complemento Notarios for real-estate operations via notary.
- CFDI pre-validator — the most underestimated piece. A local XML validator that checks the CFDI before sending it to the PAC. Without it the company pays the PAC for every attempt, including rejections.
PAC: choice and integration
| PAC | Throughput | Strength | When to choose |
|---|---|---|---|
| Edicom | Medium | Stability, MFE | Enterprise, middle market |
| SW Sapien | Up to 12,000 CFDI/hour | High throughput | E-commerce, retail, Buen Fin |
| Facturama | Low | API simplicity | PYMES up to 5,000 CFDI/month |
| Solución Factible | Medium | Reliability | Long-term contracts |
| Diverza | Medium | Corporate | Multinationals |
In Odoo 17+ switching PAC means configuring Accounting → Mexican Localization → Web Services and installing the matching OCA module (l10n_mx_edi_pac_sapien, l10n_mx_edi_pac_facturama, etc.). For LATAM-wide patterns, compare with the DIAN rollout in Colombia and Odoo Peru with SUNAT.
The 2026 technical takeaway: after the new SAT catalogs and updated cancellation rules, the PAC no longer covers every edge case on its side. A pre-validator must live inside the Odoo workflow, or the company spends between 5% and 15% of its monthly PAC budget on pure rebounds.
When Odoo works in Mexico — and when it does not
PYME of 20 to 150 employees, operations inside Mexico, standard flows (sales → invoice → payment → cancellation). l10n_mx Enterprise covers 95% out-of-the-box. Implementation: 3 to 5 months, USD 25,000 to 80,000. Clean scenario.
Maquiladora with IMMEX padrón and exports to the US. Odoo works, but it requires serious customization: l10n_mx + OCA Comercio Exterior modules + a custom pedimentos workflow + SAAI integration. Implementation: 5 to 7 months, USD 60,000 to 150,000. If a partner promises "turnkey in 2 months", it is technically not feasible.
Logistics with federal trucking. Carta Porte 3.1 is must-have. Without a validated Carta Porte the truck stops at the first federal toll booth. Odoo works with the right add-on, but it needs a pre-validator. Without one: fines of MX$ 17,030 to 93,330 per defective Carta Porte plus 1 to 2 days of downtime per vehicle.
Hotel or restaurant with high-volume POS and global discounts. The base Odoo POS does not resolve CFDI 4.0 global discounts or tips as a complement. You must configure pos_l10n_mx_edi and customize tip handling via a withholding complement. Without it: risk of incorrect withholdings and a SAT audit flag.
5 typical Odoo implementation mistakes in Mexico
#1. CFDI 3.3 "with a 4.0 patch"
Until April 2023 CFDI 3.3 was the rule, and many integrations were written against that schema. After the mandatory migration, some partners simply tacked the 4.0 namespace onto the existing XML generator. It works for simple invoices and falls apart on Comercio Exterior, REP in PPD mode, global discounts and cancellation with motivo 04. Symptom: 10% to 25% of CFDIs bounce in the first month post go-live and the CFO loses nights to reconciliation.
#2. No pre-validator
Every CFDI sent to the PAC costs money — even if it bounces. Without a local XML validator the company pays for its own errors. An e-commerce shop with 100,000 CFDIs per month overpays MX$ 50,000 to 150,000 per year on bounces.
#3. Cancellation without the 3-day wait
SAT requires 3 business days for the receiver to respond. Many Odoo configurations send the cancellation and mark the invoice cancelled immediately. On the SAT side the invoice stays "pending". Symptom: SAT controls diverge from internal accounting and the finance team builds a shadow reconciliation in Excel.
#4. Carta Porte on an expired version
Version 3.0 ran through July 17, 2024. After that, only 3.1. Implementations from 2023 and early 2024 still run on 3.0 because the partner never refreshed the add-on. Symptom: the truck sits at the toll booth, the fine grows, the client SLA breaks.
#5. No CSD backup or monitoring
If SAT suspends the CSD, the company cannot issue a single CFDI until it is restored. Odoo does not ship CSD-status monitoring or automatic failover to a backup certificate. Without custom work the company learns about the suspension from a customer who never received their invoice.
Case study: automotive maquiladora in Querétaro
Tier-2 supplier to Stellantis, Ford and Nissan. 240 employees, 380 active SKUs, 12 shifts per day. Before migration: SAP Business One v9.3 with an outdated Carta Porte 3.0 module; the partner promised the upgrade for 14 months and never delivered.
The breaking point:
- 18% of Cartas Porte bounced each month — SAT no longer accepted version 3.0
- MX$ 380,000 in accumulated fines over 9 months
- IMMEX padrón at risk of revocation due to 3 Comercio Exterior inconsistencies
- Stellantis (primary client) threatened to terminate the contract without full traceability lot → pedimento → container
What was done in 5 months:
- 2-week audit stage at a fixed price of MX$ 38,000, a 45-page technical report listing every SAT bounce, every Comercio Exterior inconsistency, and the IMMEX risks
- Migration SAP B1 → Odoo 17 Enterprise + l10n_mx + OCA Carta Porte 3.1
- Pre-validator before sending to PAC Edicom (the existing PAC was kept)
- Cancellation flow with a 24-hour window and correct motivos
- Custom workflow for Comercio Exterior 2.0 + pedimentos
- Logistics dashboard: stamping per hour, live bounces, Slack alerts to the team
Results at 6 months:
- Cartas Porte bounces: 18% → 0% by month four
- 0 SAT fines in the 12 months post go-live
- IMMEX padrón fully restored
- SAP B1 + HANA DB + Carta Porte add-on licenses: MX$ 1,850,000 per year → 0
- Odoo investment + support: MX$ 580,000 in year 1, MX$ 320,000 from year 2 on
- Net savings: MX$ 1,200,000 per year from month six
"The difference was not the ERP itself — it was having a pre-validator and a live dashboard. Before, we learned about a bounce when the PAC email arrived; now the logistics team sees it in seconds."
Partner landscape and cost
Mexico has the densest Gold-Partner Odoo ecosystem in LATAM: more than 10 Gold partners in the official catalog, including Vauxoo (the company's HQ), Birtum, Grupo Xmarts (offices in CDMX, MTY, GDL and Cancún), Soltein (GDL+MTY+Nuevo León), QUADIT and SYCA Consultores. That is the upside — there is infrastructure. It is also the downside — clients expect premium service and move slowly.
Average ticket — the highest in LATAM:
- PYME (20–150 employees): USD 25,000 to 80,000
- Middle market with exports: USD 80,000 to 200,000
- Large/Enterprise with multi-RFC and complex flows: USD 200,000 to 500,000
The high ticket reflects compliance maturity and expertise density. Cheap freelance offers of USD 5,000 to 15,000 on Workana cover only the bare Odoo install without serious l10n_mx setup — post go-live this typically translates into MX$ 200,000+ of rescue work.
When to pick a non-Vauxoo partner. Vauxoo dominates SEO and is the natural choice for standard cases. But: their implementation is optimized for their own methodology (less flexibility); their Carta Porte and Comercio Exterior add-ons are licensed separately; for niches like CSD reactivation, CFDI analytics as a BI source, or post-cancellation recovery they do not specialize. Alternative partners — especially those that pair Odoo with data engineering (ClickHouse or BigQuery for CFDI analytics) — cover the gaps Vauxoo does not.
What to do next
If you are scoping an Odoo implementation or audit in Mexico for 2026, start with two actions. First: audit the current CFDI stream — how many monthly bounces, which complements are missing, which Carta Porte version your trucks travel under. Second: review readiness for "real operations" — whether you have documentary backing for every CFDI issued in the last 12 months. If gaps exist, close them before the first SAT visit.
We send by email a CFDI 4.0 and Carta Porte 3.1 checklist for Odoo — 52 points covering every complement, every cancellation motive and every pre-validator parameter.
See also: Odoo in Peru 2026 · Odoo in Colombia 2026 · Odoo in Argentina 2026 · Odoo audit in 30 minutes · Odoo project rescue.
Frequently asked questions
How much does it cost to implement Odoo for a PYME in Mexico?
Between USD 25,000 and 80,000 for a standard PYME (20 to 150 employees). Maquiladoras with exports: USD 60,000 to 150,000. Hospitality with multi-RFC and POS: USD 40,000 to 90,000. E-commerce with marketplaces: USD 30,000 to 70,000.
The ranges cover the Odoo SH or Enterprise environment, tuned l10n_mx, training and the first 90 days of post-launch support. They do not include historical migration or custom work outside the original scope.
Does Odoo Community work for CFDI 4.0?
Technically yes, through OCA l10n_mx modules. In practice no for a serious business. PAC integrations on Community are limited, there is no enterprise-grade Carta Porte add-on, and there is no SLA on patches. For PYMES with five or more employees, Enterprise or Odoo SH is the right call.
What should you do if SAT suspends your CSD?
First receive the notification via Buzón Tributario with the cause. Then file a promoción de aclaración on Portal SAT (10 business-day window). Within 7 to 14 business days SAT issues a resolution. During that period the business cannot stamp invoices.
Preventive measure: keep a backup CSD on a separate RFC (if you have a multi-entity structure) and run CSD-status monitoring inside Odoo.
How long does a SAP B1 → Odoo migration take?
4 to 7 months depending on the volume of custom logic in SAP B1. Loading historical CFDIs and three years of transactional data is a separate task of 1 to 2 months. Parallel operation of both systems runs 1 to 2 months after go-live.
What is Carta Porte 3.1 and who needs it?
A CFDI complement for moving merchandise on federal highways or multimodally (port → rail → trucking). Mandatory for anyone moving merchandise on federal highways regardless of company size.
It carries: ubicaciones, mercancías, transport type, SCT license, weight and pedimentos for cross-border movement.
Can you use l10n_mx without a certified PAC?
No. The PAC (Proveedor Autorizado de Certificación) is the only path to CFDI stamping. SAT publishes and maintains the list of accredited PACs, and any attempt to skip the PAC means the CFDI is not fiscally valid.
What does "real transaction" mean under the 2026 law?
A transaction with economic substance: backed by a contract, delivery, payment, correspondence and supplier input documents. A CFDI without that base — for example, issued under a fictitious contract to reduce the taxable base — is a crime under 113-bis CFF as of January 1, 2026.
Documentary backing must be retained for at least 5 years.
How many days of downtime can a CSD suspension cause?
The field average is 7 to 14 business days. During that time no new CFDIs are issued, which freezes collections and logistics traceability. For an e-commerce shop with 1,000 CFDIs per day, this is equivalent to losing a quarter of cashflow.
Which pre-validator should you use before the PAC?
The most stable options in 2026 are Vauxoo's cfdi-validator (open source), Edicom's internal validator (included with their medium+ plan), and custom Python validators built on the SAT XSDs. Odoo's built-in validator is basic and does not contemplate every January 2026 catalog update.
