Saltar al contenido
Contacto

Guía · Localización mexicana

Localización mexicana en Odoo 20: CFDI 4.0, complemento de pago, Carta Porte y DIOT

Autor
Fabio Soto, Business Analyst
Publicada
Actualizada
Versión
Odoo 20

En corto

Odoo 20 cubre de forma nativa las obligaciones electrónicas más comunes ante el SAT: la factura CFDI 4.0, el complemento de pago de las facturas PPD, la Carta Porte 3.1 de autotransporte, la DIOT, los XML de la contabilidad electrónica, las addendas y los pedimentos. Lo hace con módulos propios de Odoo que se instalan con la localización mexicana, y cada comprobante se sella con el Certificado de Sello Digital de la empresa y se certifica a través de un PAC. Casi todo se configura en los ajustes de Contabilidad y en las fichas de contactos, productos y vehículos.

Qué es la localización mexicana

La localización mexicana es el conjunto de módulos con que Odoo adapta su contabilidad y su facturación a las reglas del SAT. Según la documentación oficial de Odoo 20, con ella se instalan tres módulos: l10n_mx, que trae el plan de cuentas basado en el código agrupador del SAT y los impuestos más comunes; l10n_mx_edi, que genera y valida los documentos electrónicos, y l10n_mx_reports, con los reportes de la contabilidad electrónica y la DIOT. El comercio exterior, la Carta Porte, los pedimentos, el punto de venta y la tienda en línea tienen módulos opcionales, que la documentación recomienda instalar sólo cuando la operación los necesita.

De los tres, sólo l10n_mx es código abierto: en la rama 20.0 del repositorio público de Odoo es el único módulo de la localización mexicana. La facturación electrónica y los reportes forman parte de Odoo Enterprise.

SAT
El Servicio de Administración Tributaria, la autoridad fiscal de México.
CFDI
El Comprobante Fiscal Digital por Internet, que es la factura electrónica mexicana en formato XML.
RFC
El Registro Federal de Contribuyentes, la clave fiscal de cada persona o empresa.
CSD
El Certificado de Sello Digital, con el que la empresa sella cada CFDI que emite.
PAC
El Proveedor Autorizado de Certificación, la empresa autorizada por el SAT para certificar los CFDI, lo que en la práctica se llama timbrar.

Qué cubre Odoo 20, obligación por obligación

La localización se reparte entre varias aplicaciones de Odoo: cada obligación vive donde nace la operación que la origina —la factura en Contabilidad, la Carta Porte en la entrega, el pedimento en la recepción—, y por eso se configura en lugares distintos.

Qué hace Odoo 20 con cada obligación y dónde se configura
ObligaciónQué hace Odoo 20Dónde se configuraMódulo
Factura CFDI 4.0 y notas de créditoGenera el XML, lo manda a timbrar y guarda el folio fiscalAjustes de Contabilidad, contactos y productosl10n_mx_edi
Complemento de pagoLo emite desde la factura PPD ya pagadaPolítica de pago en la factura y forma de pago en el pagol10n_mx_edi
Carta Porte 3.1Emite el CFDI de traslado desde la entrega o la recepciónVehículos en Flotilla, almacén y peso del productol10n_mx_edi_stock
DIOTArma el reporte por proveedor y lo exporta en TXTTipo de operación en cada proveedorl10n_mx y l10n_mx_reports
Contabilidad electrónicaGenera los XML del catálogo de cuentas, la balanza y las pólizasPlan de cuentas con el código agrupadorl10n_mx_reports
AddendasAgrega nodos al XML por contacto o por facturaMenú Addendas & Complementos (MX)l10n_mx_edi
PedimentosLleva el número de pedimento del lote a la facturaCostos en destino y productos con lote o seriel10n_mx_edi_landing

Las filas salen de la documentación oficial de Odoo 20.0 y del código de l10n_mx en la rama 20.0 (ver Fuentes).

Antes de timbrar: RFC, CSD y PAC

La documentación de Odoo pone tres requisitos antes de configurar nada: estar inscrito en el SAT con un RFC válido, tener un CSD vigente y elegir un PAC. El SAT define el certificado así:

«Es un certificado asociado a tu Firma Electrónica Avanzada con el propósito específico de sellar las facturas que emitas e identificar plenamente su información.»

SAT, «Certificado de Sello Digital», portal de trámites y servicios del SAT, consultado el 17 de octubre de 2026.

El PAC es el otro extremo del timbrado. El SAT publica la lista de proveedores autorizados para certificar facturas, y la documentación de Odoo 20 nombra a los tres con que trabaja: Solución Factible, Quadrum y SW Sapien.

Con esos tres elementos, la configuración sigue este orden:

  • La empresa. Su dirección completa, con código postal, estado, país y RFC. Por CFDI 4.0, el nombre debe coincidir con la razón social registrada ante el SAT, sin la abreviatura del régimen societario, y lo mismo vale para el código postal. El régimen fiscal se elige en los ajustes de Contabilidad, y la moneda de la empresa es el peso mexicano: otras monedas se manejan con listas de precios.
  • Los certificados. El archivo .key del CSD se carga con su contraseña, y el .cer se liga a esa llave, ambos en los ajustes generales de Odoo.
  • El PAC. Su nombre, su usuario y su contraseña van en Contabilidad › Configuración › Ajustes, en la sección de facturación electrónica de México. Para probar sin credenciales, Odoo trae un ambiente de pruebas con Solución Factible que no pide usuario ni contraseña.
  • Contactos y productos. Cada cliente lleva su razón social tal como está en el SAT, su RFC, su código postal, su país y su régimen fiscal. Cada producto lleva su clave del catálogo de productos y servicios del SAT, en el campo de categoría UNSPSC.

La documentación advierte dos cosas sobre los contactos: un RFC capturado sin país puede producir facturas incorrectas, y una factura no se envía a timbrar si el cliente no tiene país o código postal, salvo que sea al público en general.

CFDI 4.0: la factura

El SAT fija la versión: a partir del 1 de enero de 2022 el CFDI pasó a la versión 4.0, y desde el 1 de abril de 2023 es la única válida (Anexo 20, SAT). La facturación de Odoo 20 se basa en esa versión del Anexo 20.

La factura sigue el flujo normal de Odoo y suma cuatro datos: si es un CFDI al público en general, el uso del CFDI, la política de pago y la forma de pago. Si nadie elige la política, Odoo la calcula: PUE cuando el vencimiento cae dentro del mes en curso, PPD cuando cae en otro mes. Al confirmar la factura y enviarla con la casilla de CFDI marcada, Odoo la manda a timbrar; cuando vuelve, aparece el folio fiscal y el XML queda en la pestaña CFDI y en el historial de la factura. Un botón consulta en el SAT el estado del comprobante.

Los impuestos traen dos datos que el CFDI 4.0 exige. El tipo de factor —tasa, cuota o exento— viene cargado en los impuestos de la localización, y el código de l10n_mx lo describe como el atributo TipoFactor del CFDI 4.0. El objeto del impuesto tiene ocho valores posibles: Odoo pone el 01 cuando la línea no lleva impuestos y el 02 cuando sí los lleva, elige el 06 o el 07 cuando hay retención de ISR sin IVA, y los demás se capturan a mano.

Lo demás que pide la operación diaria también está documentado:

  • Notas de crédito. Son comprobantes de tipo «E» (egreso) y se relacionan con la factura original por su folio fiscal; creadas desde la factura, la relación se llena sola.
  • Cancelaciones. Odoo pide uno de los cuatro motivos de cancelación, del 01 al 04, y con el 01 crea la factura que sustituye a la original y cancela esta cuando la nueva queda timbrada.
  • Factura global. Agrupa en un solo CFDI las ventas al público en general de un periodo, que puede ir de diario a bimestral. Responde a los campos de periodicidad, meses y año que el Anexo 20 incorporó para estas facturas.
  • Otras relaciones. El campo de CFDI de origen admite los siete tipos de relación del SAT, del 01, nota de crédito, al 07, aplicación de anticipo.
  • Proveedores. Las facturas de compra necesitan su folio fiscal, que Odoo toma del XML del proveedor cuando se adjunta al documento en borrador.
  • Punto de venta y tienda en línea. El ticket puede llevar un código QR o una dirección para que el cliente se facture solo, y la tienda en línea agrega un paso para pedir factura al cerrar la compra.
  • Exportaciones. El complemento de comercio exterior, en su versión 2.0, se agrega con el módulo opcional l10n_mx_edi_extended.

Complemento de pago y la política PUE o PPD

PUE
Pago en una sola exhibición: la factura se paga en el momento.
PPD
Pago en parcialidades o diferido: la factura se paga después o en partes.
Complemento de pago (REP)
El CFDI de tipo «P» (pago) que ampara cada pago recibido de una factura PPD.

El SAT puso en vigor la versión 2.0 del complemento de recepción de pagos el 1 de enero de 2022, compatible con el CFDI 4.0 y obligatoria desde el 1 de abril de 2023. Su página dice cuándo se expide:

«Debe expedirse por la recepción de los pagos recibidos en parcialidades y en los casos en que el pago de la contraprestación no se pague en una sola exhibición, así como, cuando el pago se realice con posterioridad a la emisión de la factura».

SAT, «Factura de recepción de pagos», consultado el 17 de octubre de 2026.

En Odoo 20 el complemento sólo se genera cuando la factura es PPD. El pago se registra igual que cualquier otro, con una diferencia: la forma de pago tiene que ser la real, y por eso la opción «por definir» no está disponible en un pago de factura PPD. Lo que dispara el complemento es la conciliación:

«Haz clic en el botón Actualizar pagos para enviar automáticamente el archivo XML del complemento de pago al gobierno y mostrarlo en la pestaña CFDI tanto en la factura como en el pago.»

Odoo, «México», documentación oficial de Odoo 20.0 en español, consultada el 17 de octubre de 2026.

El complemento se cancela desde la pestaña CFDI de la factura, y para sustituirlo se desconcilia el pago y el nuevo se relaciona con el anterior por su folio fiscal. El factoraje financiero, en el que la empresa vende sus cuentas por cobrar a un tercero, también se registra en la conciliación bancaria y emite su complemento desde la factura con el mismo botón.

Los impuestos de la localización se causan al pago, y el código lo muestra: en la plantilla de l10n_mx de la rama 20.0, el IVA del 16 % de venta y el de compra se declaran exigibles al pago, y la empresa recibe un diario propio, «Effectively Paid», donde Odoo mueve el impuesto de la cuenta de transición a la definitiva al registrar el pago.

Carta Porte 3.1

El SAT describe la Carta Porte como el complemento para incorporar al CFDI «la información relacionada a los bienes y/o mercancías, ubicaciones de origen, puntos intermedios y destinos, así como lo referente al medio por el que se transportan» (portal del SAT). Su versión 3.1 se publicó el 17 de junio de 2024 y es la que se usa desde el 17 de julio de 2024 (SAT).

Odoo 20 la emite con el módulo opcional l10n_mx_edi_stock, que instala también la aplicación Flotilla y necesita Inventario y Ventas. El documento es un CFDI de tipo «T» (traslado), y a diferencia de la factura nace en la orden de entrega o en la recepción, no en una factura ni en un pago. Odoo maneja dos casos según la distancia:

Los dos tipos de traslado de la Carta Porte en Odoo 20
CasoCuándo aplicaQué pide
Sin carreteras federalesDistancia al destino menor de 30 kmLo mismo que una factura: RFC del cliente y clave UNSPSC de cada producto
Transporte federalDistancia al destino mayor de 30 kmVehículo de carga en Flotilla con sus parámetros mexicanos, placa, año del modelo y conductor; operadores con RFC y licencia; peso de cada producto mayor que cero

La Carta Porte se genera con la entrega ya validada. El tipo de transporte se elige en la pestaña de información adicional, el operador sale del conductor del vehículo y se puede cambiar en cada entrega, y la distancia al destino siempre tiene que ser mayor que cero. El origen es la dirección del almacén, el PDF lleva un código QR para que la autoridad lo verifique, y hay campos para materiales peligrosos y para los datos aduaneros de las importaciones y exportaciones.

La documentación delimita el alcance: Odoo 20 cubre el autotransporte con CFDI de traslado. La Carta Porte de tipo ingreso y los transportes aéreo, ferroviario y marítimo quedan fuera de lo que soporta la localización.

DIOT

DIOT
La Declaración Informativa de Operaciones con Terceros, en la que la empresa informa al SAT el IVA acreditable y no acreditable, las retenciones y las importaciones de sus operaciones con proveedores.

En el portal del SAT, la DIOT es una de las declaraciones informativas de las empresas: se presenta con contraseña en la nueva plataforma del SAT.

Odoo 20 la prepara en dos pasos. El primero es el reporte: el código de l10n_mx define un reporte DIOT que separa, proveedor por proveedor, el IVA pagado al 16 %, al 8 % de la región fronteriza norte y al 8 % de la sur, el de importaciones y el de importaciones de intangibles, cada uno acreditable o no acreditable, además de lo retenido, lo exento, la tasa 0 % y lo que no es objeto de impuesto. Los montos salen de los pagos registrados en las facturas de compra. El segundo es el archivo: desde la declaración de impuestos, la acción «DIOT (TXT)» descarga un TXT de 54 columnas que, según la documentación de Odoo, se carga en el formulario del SAT y reduce lo que se captura a mano.

Para que el archivo salga sin errores, cada proveedor necesita su RFC, su país y su tipo de operación, este último en la pestaña de Contabilidad del contacto. El tipo «87 - Operaciones globales» agrupa a esos proveedores bajo el RFC genérico XAXX010101000.

Contabilidad electrónica

El SAT la define así: «Es una herramienta que sirve para presentar mensual, trimestral y/o semestralmente (según corresponda), los registros y asientos contables de las transacciones realizadas» (SAT).

Odoo 20 genera los tres XML que la componen, conforme al Anexo Técnico de Contabilidad Electrónica 1.3:

Los XML de la contabilidad electrónica en Odoo 20
XMLDónde se generaDetalle
Catálogo de cuentasBalanza de comprobación, botón de catálogo SATExige que cada cuenta respete el código agrupador: NNN.XX.YY, NNN.XX.YYY o NNN.XX.YYY.ZZ
Balanza de comprobaciónBalanza de comprobación, acción SAT (XML)Normal o complementaria; el mes 13 se arma con un asiento marcado como cierre de ese mes
PólizasLibro mayor, acción de pólizas en XMLCuatro tipos de exportación: auditoría fiscal, certificación de auditoría, devolución y compensación, con el número de orden o de trámite que da el SAT

El plan de cuentas valida la estructura al crear cada cuenta. La balanza del mes 13 y las pólizas usan dos módulos además de l10n_mx_reports: l10n_mx_reports_closing y l10n_mx_xml_polizas. La localización trae también el balance general basado en la NIF B-6 y el estado de resultados basado en la NIF B-3. La documentación de Odoo recomienda revisar con el contador cada reporte antes de enviarlo, porque las obligaciones cambian según el régimen fiscal.

Addendas

Addenda
Información adicional que se agrega al XML de una factura ya timbrada y que va más allá de los requisitos legales.
Complemento
Información fiscal que reporta operaciones específicas y se agrega al XML antes del timbrado.

En Odoo 20 las dos se configuran en Contabilidad › Configuración › Addendas & Complementos (MX): cada registro es el código del nodo que se inyecta en el XML. Una addenda asignada a un contacto va en todas sus facturas, y también se puede elegir factura por factura, en la pestaña de otra información; un contacto o una factura pueden llevar más de una. La documentación avisa que pueden hacer falta campos adicionales a los estándar de Odoo y que esta configuración puede requerir conocimiento técnico.

Pedimentos

Pedimento
La declaración aduanera que certifica que se pagaron las contribuciones de una importación o exportación de mercancías.

Cuando lo que se factura viene de una importación de primera mano, la documentación de Odoo 20 explica que el Anexo 20 pide el número de pedimento en cada línea de producto, con la fecha del documento. Odoo lo resuelve con el módulo opcional l10n_mx_edi_landing, junto con Inventario, Compras y Ventas, y lo apoya en los costos en destino:

  1. Se activan los costos en destino en los ajustes de Inventario.
  2. El producto se rastrea por lote o por número de serie, se factura por cantidades entregadas y se valúa por lote o serie, con costo PEPS o promedio.
  3. Validada la recepción de la compra, se crea un costo en destino sobre ella con el número de pedimento.
  4. Al facturar la venta, cada línea lleva el pedimento de los lotes que salieron, y si hay más de uno, Odoo divide la línea por cantidad y pedimento.

Una vez capturado, el número de pedimento no se edita ni se repite; si hubo un error, se corrige desde el registro del lote o número de serie. La documentación pide no confundir esta función con el comercio exterior: el pedimento acompaña a la importación, y el complemento de comercio exterior, a la exportación.

Las reglas cambian durante el año

La versión del CFDI no cambia desde 2022, pero lo que la rodea sí. La página del Anexo 20 del SAT muestra la guía de llenado del CFDI 4.0 publicada el 16 de enero de 2026, la matriz de errores actualizada el 25 de marzo de 2026 y los catálogos del CFDI 4.0 actualizados el 15 de octubre de 2026. La documentación de Odoo, por su parte, recomienda consultar al contador antes de instalar un módulo opcional o de enviar un reporte. Para seguir esos cambios, Radar Fiscal, de Nivolty, monitorea el SAT; el timbrado lo sigue haciendo Odoo.

Cómo arrancar la localización

  1. Reúne el RFC, el CSD vigente —el .cer, el .key y su contraseña— y la cuenta con un PAC.
  2. Captura los datos de la empresa tal como están ante el SAT: razón social sin la abreviatura del régimen societario, código postal y régimen fiscal.
  3. Carga los certificados y las credenciales del PAC, y haz las primeras pruebas en el ambiente de pruebas.
  4. Completa los contactos con RFC, país, código postal y régimen fiscal, y los productos con su clave UNSPSC.
  5. Revisa el tipo de factor y el objeto de cada impuesto que se cree, y que el IVA se cause al pago.
  6. Instala los módulos opcionales —Carta Porte, pedimentos, comercio exterior— sólo si la operación los pide, y con el contador.

Si la empresa también paga nómina en México, la guía de nómina mexicana en Odoo explica qué cubre esa localización y cómo se timbra el recibo, que depende del módulo de facturación electrónica de esta misma localización.

Preguntas frecuentes

¿Odoo timbra facturas CFDI 4.0?

Sí. Odoo 20 genera el XML de la factura conforme al Anexo 20 versión 4.0 del SAT, lo sella con el Certificado de Sello Digital de la empresa y lo envía a certificar a un PAC. Cuando el comprobante vuelve timbrado, la factura muestra su folio fiscal y guarda el XML.

¿Cómo se genera el complemento de pago en Odoo?

Se registra el pago de la factura PPD como cualquier otro, con la forma de pago real. Cuando el pago queda conciliado con una factura que ya tiene folio fiscal, el botón «Actualizar pagos» envía el XML del complemento al SAT y lo deja en la pestaña CFDI de la factura y del pago.

¿Odoo 20 genera la Carta Porte 3.1?

Sí, con el módulo de guía de entrega electrónica: emite el CFDI de traslado desde la entrega o la recepción, en autotransporte. Con transporte federal pide el vehículo dado de alta en Flotilla, con su placa, su año y su operador.

¿Odoo genera la DIOT?

Odoo arma el reporte DIOT por proveedor a partir de los pagos registrados en las facturas de compra y lo exporta en un archivo TXT de 54 columnas que, según su documentación, se carga en el formulario del SAT. Cada proveedor necesita su RFC, su país y su tipo de operación.

¿Odoo maneja pedimentos de importación?

Sí. El número de pedimento se registra en el costo en destino de la recepción, queda ligado al lote o al número de serie y pasa a las líneas de la factura de venta de esa mercancía.

¿Se pueden agregar addendas en Odoo?

Sí. Se configuran como nodos de código en el menú Addendas & Complementos (MX) y se asignan a un contacto, para que vayan en todas sus facturas, o a una factura concreta. La documentación de Odoo advierte que esta configuración puede requerir conocimiento técnico.

Por industria

¿Vas a configurar la localización mexicana en tu implementación? Conoce el servicio de localización y cumplimiento en México o escríbenos.

Fuentes

  1. Odoo S.A., «Mexico», documentación oficial de Odoo 20.0, localizaciones fiscales, odoo.com/documentation/20.0/es_419/applications/finance/fiscal_localizations/mexico.html. Consultada el .
  2. Odoo S.A., «México», documentación oficial de Odoo 20.0, versión en español, odoo.com/documentation/20.0/es_419/applications/finance/fiscal_localizations/mexico.html. Consultada el .
  3. Odoo S.A., «Módulo l10n_mx (Mexico - Accounting)», repositorio público odoo/odoo, rama 20.0, github.com/odoo/odoo/tree/20.0/addons/l10n_mx. Consultada el .
  4. Servicio de Administración Tributaria, «Formato de factura (Anexo 20)», sat.gob.mx, omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm. Consultada el .
  5. Servicio de Administración Tributaria, «Factura de recepción de pagos», sat.gob.mx, omawww.sat.gob.mx/tramitesyservicios/Paginas/recepcion_de_pagos.htm. Consultada el .
  6. Servicio de Administración Tributaria, «Complemento Carta Porte», sat.gob.mx, omawww.sat.gob.mx/tramitesyservicios/Paginas/complemento_carta_porte.htm. Consultada el .
  7. Servicio de Administración Tributaria, «Complemento Carta Porte», portal de trámites y servicios del SAT, sat.gob.mx/portal/public/tramites/complemento-carta-porte. Consultada el .
  8. Servicio de Administración Tributaria, «Certificado de Sello Digital», portal de trámites y servicios del SAT, sat.gob.mx/portal/public/tramites/certificado-de-sello-digital. Consultada el .
  9. Servicio de Administración Tributaria, «Lista de Proveedores Autorizados de Certificación de CFDI», portal de trámites y servicios del SAT, sat.gob.mx/portal/public/tramites/lista-de-proveedores-autorizados-de-certificacion-de-cfdi. Consultada el .
  10. Servicio de Administración Tributaria, «Declaraciones y pagos para empresas (Informativas, DIOT)», portal de trámites y servicios del SAT, sat.gob.mx/portal/public/tramites/declaraciones-pm. Consultada el .
  11. Servicio de Administración Tributaria, «Contabilidad electrónica», portal de trámites y servicios del SAT, sat.gob.mx/portal/public/tramites/contabilidad-electronica. Consultada el .