iTechDev
CMMI Level 2 · 5.0★ on Clutch · 200+ projects · Partner SAP · Salesforce · Azure · AWS · Odoo
Odoo

Carta Porte 3.1 in Odoo: step-by-step road transport setup

By iTechDev TeamJuly 8, 2026 · 5 min
Carta Porte 3.1 in Odoo: step-by-step road transport setup

IN SHORT: Odoo generates the Carta Porte 3.1 complement for road transport (autotransporte, type T) via l10n_mx_edi + a PAC. With the new SAT catalogs in effect since January 13, 2026, a misconfigured complement rejects the invoice. Honest note: Odoo covers road transport well; for sea, air, or rail transport you'll need development or additional modules. Here's the step-by-step to get it stamping without rejections.

Since January 13, 2026, new SAT catalogs for Carta Porte took effect, and many logistics and trucking companies discovered the change the hard way: rejected invoices. If you move goods by road and invoice from Odoo, this guide tells you exactly what to configure so the 3.1 complement comes out right the first time.

What Carta Porte 3.1 is and when you need it

The Carta Porte complement is an attachment to the CFDI that covers the transport of goods within national territory. The current version is 3.1. You need it when:

The complement identifies what is moved, from where, to where, with which vehicle, and who drives it. A single wrong value in any of those blocks = PAC rejection.

What changed on January 13, 2026

SAT updated catalogs that Carta Porte consumes (transport product/service keys, units, hazardous materials, vehicle configurations, among others). If your Odoo still has the old catalogs mapped, the XML is built with keys that no longer exist and the PAC rejects it. The first action after the change is to update the localization and catalogs to the current version.

Honest scope: what Odoo covers and what it doesn't

Let's be clear so you don't buy the wrong expectations:

Transport type Does Odoo cover it out of the box?
Road transport (autotransporte, type T) ✅ Yes, it's the supported case
Sea ⚠️ Requires development / additional module
Air ⚠️ Requires development / additional module
Rail ⚠️ Requires development / additional module

Odoo's Mexican localization is built for road transport, which is the vast majority of cases in the country. If your operation combines modes (sea + land, for example), plan the complementary-transport development from the start — don't assume it "already comes with it."

Step-by-step setup (road transport)

1. Update the localization and SAT catalogs

Make sure your Odoo (18 or 19) has l10n_mx_edi current and the SAT catalogs in effect since January 2026. This step prevents the most common rejection after the change.

2. Configure the issuer's data and the PAC

CSD installed (not the FIEL), correct RFC and tax regime, contracted PAC (Finkok / Factura.com) in test mode first. Never go to production without a successful test stamping.

3. Register the vehicle (road transport)

The transport data captures:

4. Register the operator (driver)

5. Define origin, destination, and distance

6. Describe the goods

7. Stamp in test, validate, and go to production

Generate the XML with the complement, stamp in a test environment, verify the catalogs match the current version, and only then issue in production.

Errors that cause rejection (ordered by frequency)

1. Outdated SAT catalogs. The #1 error since January 2026. Product/service or unit keys that no longer exist. Fix: update the localization.

2. Missing or zero distance traveled. It's mandatory; without it the PAC rejects.

3. Incomplete vehicle data. Missing SCT permit, policy, or an incorrect vehicle configuration.

4. Inconsistent goods weight. Total weight must reconcile with the sum of line items.

5. Invalid origin/destination postal code. It must exist in the SAT postal code catalog.

6. Mis-declared hazardous material. If the goods are hazardous and not declared (or declared wrong), rejection is certain.

7. Operator without valid RFC/license. Incomplete driver data.

Checklist before stamping in production

Carta Porte and CFDI: the complete tax triad

Carta Porte doesn't live alone: it's part of the tax triad that must be spotless in Odoo. The other key piece is CFDI 4.0 and its payment complement (REP). If you're tuning the tax side of your Odoo, also review the complete Odoo in Mexico guide — the same misconfigured master data that rejects an invoice rejects a Carta Porte.

Why configure it with iTechDev

Carta Porte is one of those things where a single wrong detail halts the entire logistics operation. At iTechDev we configure Odoo's Mexican localization (18 and 19) with current catalogs, and when your operation needs something beyond the standard — like a complementary transport mode or a custom transfer flow — we build it as our own Python/OWL module, with 100% of the code yours. We're an Odoo Ready partner, a software factory, CMMI Level 2, REPSE, with more than 200 projects delivered and 5.0★ on Clutch. And we run our own company on Odoo 19, so we know the tax operation from the inside.

Frequently asked questions

Does Odoo support Carta Porte 3.1 in 2026?

Yes, for road transport via l10nmxedi and an authorized PAC. The essential thing is keeping SAT catalogs updated to the version in effect since January 13, 2026; with old catalogs, the PAC rejects the complement.

Does Odoo generate Carta Porte for sea or air transport?

Out of the box it covers road transport (type T). For sea, air, or rail transport, additional development or specific modules are usually required. If your operation is multimodal, plan for it from the start of the project.

Why have my Carta Porte invoices been rejected since January 2026?

The most common cause is outdated SAT catalogs: SAT changed keys and units in effect since January 13, 2026. Other frequent causes are missing distance traveled, incomplete vehicle data, or mis-declared hazardous material.

Do I need Odoo Enterprise for Carta Porte, or is Community enough?

Both can generate Carta Porte with the correct localization; in Enterprise support is official and in Community it relies on OCA + your partner. For high-volume logistics operations with critical compliance, many companies prefer the Enterprise guarantee, but well-maintained Community works too.

Which vehicle and operator data are mandatory?

Vehicle: vehicle configuration, plate, year, SCT permit, and insurance policy. Operator: RFC and license. Origin and destination with a valid postal code and the distance traveled in kilometers are also required. Missing any of these causes rejection. --- Is your Carta Porte in Odoo rejecting invoices since the January change? Start with a [free Odoo assessment →](/en/diagnostico/odoo) and get the real status of your localization. Also explore our [Mexican localization and CFDI in Odoo service](/en/servicios/odoo/localizacion-mexico-cfdi) and the [complete Odoo in Mexico guide](/en/blog/odoo-mexico-guia-completa-2026).

iTechDev Team
Software factory · Monterrey + Texas
iTechDev is a nearshore software factory in Monterrey and a Meta Tech Provider: SAP, Salesforce, Cloud (Azure/AWS), AI and WhatsApp Business API for companies in Mexico and Texas.
← Back to blog
Free assessment · 3 min