SAT Catalog for the mexican localization

l10n_mx_catalogs
REPOSITORY
REPOSITORYOCA/l10n-mexico
GIT
GIThttps://github.com/OCA/l10n-mexico.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-mexico/tree/19.0/l10n_mx_catalogs
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Gray Matter Logic, Auge TEC
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Gray Matter Logic, Auge TEC
COMMITTERS
COMMITTERSMaxime Chambreuil, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-mexico
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provides the data from the Mexican tax authority (SAT).

## Features

- Necessary fields for electronic invoicing
- Necessary fields for electronic payroll
- Official data from Servicio de Administración Tributaria (SAT

## Updates

To update the catalogs, you need to:

- Go to
  [this page of the SAT website](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)
- Download the XLS file for "Catálogos CFDI Versión 4.0 (xls)"
- Run the
  [script](https://github.com/OCA/l10n-mexico/blob/17.0/l10n_mx_catalogs/import_catalogs_xls.py)

```shell
pip install xlrd
./import_catalogs_xls.py catCFDI_V_4_YYYYMMDD.xls
```

Code Analysis

Views touched (0)

No views found for this module.

Models touched (19)

New fields (6)
  • alternative_names Char
    string='Nombres Alternos'
  • border_incentive Integer
    string='Estímulo Fronterizo'
  • code Char
    required=True string='Código'
  • includes_ieps Char
    string='Incluye IEPS Trasladado'
  • includes_iva Char
    string='Incluye IVA Trasladado'
  • name Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True string='Código'
  • description Char
    string='Descripción'
  • name Char
    required=True string='Nombre'
  • symbol Char
    string='Símbolo'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True size=5 string='Código Postal'
  • locality_code Char
    size=4 string='Código de Localidad'
  • municipality_code Char
    size=4 string='Código de Municipio'
  • state_code Char
    required=True size=3 string='Código de Estado'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True size=5
  • name Char
    required=True
  • zip Char
    required=True size=5
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True args: 'Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    string='Codigo'
  • name Char
    string='Localidad'
  • state_code Char
    string='Codigo de Estado'
  • state_id Many2one → res.country.state
    compute='_compute_state_id' string='Estado' args: 'res.country.state'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Codigo'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (1)
  • map_res_country(self, country_id)
    @api.model
    Map a res.country to a c_pais

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Codigo'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • applies_to_legal_person Boolean
    string='Aplica para persona moral'
  • applies_to_natural_person Boolean
    string='Aplica para persona física'
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (3)
  • clave_transporte Char
    required=True
  • code Char
    required=True
  • description Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
  • name Char
    compute='_compute_name' store=True
Public methods (0)

No public methods.

New fields (5)
  • applies_to_fiscal_regimes Char
    string='Aplica para régimen fiscal'
  • applies_to_legal_person Boolean
    string='Aplica para persona moral'
  • applies_to_natural_person Boolean
    string='Aplica para persona física'
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-mexico
GIT
GIThttps://github.com/OCA/l10n-mexico.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-mexico/tree/17.0/l10n_mx_catalogs
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Alexis López Zubieta <alexis.lopez@augetec.com> (Auge TEC)
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Alexis López Zubieta <alexis.lopez@augetec.com> (Auge TEC)
COMMITTERS
COMMITTERSMaxime Chambreuil, Jesús Alan Ramos Rodríguez, OCA-git-bot, oca-ci, Samuel Macias Oropeza (smo), Santiago Rodriguez
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-mexico
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provides the data from the Mexican tax authority (SAT).

## Features

- Necessary fields for electronic invoicing
- Necessary fields for electronic payroll
- Official data from Servicio de Administración Tributaria (SAT)

## Updates

To update the catalogs, you need to:

* Go to [this page of the SAT website](http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm)
* Download the XLS file for "Catálogos CFDI Versión 4.0 (xls)"
* Run the [script](https://github.com/OCA/l10n-mexico/blob/17.0/l10n_mx_catalogs/import_catalogs_xls.py)

```shell
pip install xlrd
./import_catalogs_xls.py catCFDI_V_4_YYYYMMDD.xls
```

Code Analysis

Views touched (0)

No views found for this module.

Models touched (19)

New fields (6)
  • alternative_names Char
    string='Nombres Alternos'
  • border_incentive Integer
    string='Estímulo Fronterizo'
  • code Char
    required=True string='Código'
  • includes_ieps Char
    string='Incluye IEPS Trasladado'
  • includes_iva Char
    string='Incluye IVA Trasladado'
  • name Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True string='Código'
  • description Char
    string='Descripción'
  • name Char
    required=True string='Nombre'
  • symbol Char
    string='Símbolo'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True size=5 string='Código Postal'
  • locality_code Char
    size=4 string='Código de Localidad'
  • municipality_code Char
    size=4 string='Código de Municipio'
  • state_code Char
    required=True size=3 string='Código de Estado'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True size=5
  • name Char
    required=True
  • zip Char
    required=True size=5
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True args: 'Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    string='Codigo'
  • name Char
    string='Localidad'
  • state_code Char
    string='Codigo de Estado'
  • state_id Many2one → res.country.state
    compute='_compute_state_id' string='Estado' args: 'res.country.state'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Codigo'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (1)
  • map_res_country(self, country_id)
    @api.model
    Map a res.country to a c_pais

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Codigo'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • applies_to_legal_person Boolean
    string='Aplica para persona moral'
  • applies_to_natural_person Boolean
    string='Aplica para persona física'
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (3)
  • clave_transporte Char
    required=True
  • code Char
    required=True
  • description Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
  • name Char
    compute='_compute_name' store=True
Public methods (0)

No public methods.

New fields (5)
  • applies_to_fiscal_regimes Char
    string='Aplica para régimen fiscal'
  • applies_to_legal_person Boolean
    string='Aplica para persona moral'
  • applies_to_natural_person Boolean
    string='Aplica para persona física'
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-mexico
GIT
GIThttps://github.com/OCA/l10n-mexico.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-mexico/tree/15.0/l10n_mx_catalogs
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Alexis López Zubieta <alexis.lopez@augetec.com> (Auge TEC)
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Alexis López Zubieta <alexis.lopez@augetec.com> (Auge TEC)
COMMITTERS
COMMITTERSMaxime Chambreuil, GitHub, OCA-git-bot, oca-ci, Alexis Lopez Zubieta
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-mexico
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_mx
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (19)

New fields (6)
  • alternative_names Char
    string='Nombres Alternos'
  • border_incentive Integer
    string='Estímulo Fronterizo'
  • code Char
    required=True string='Código'
  • includes_ieps Char
    string='Incluye IEPS Trasladado'
  • includes_iva Char
    string='Incluye IVA Trasladado'
  • name Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True string='Código'
  • description Char
    string='Descripción'
  • name Char
    required=True string='Nombre'
  • symbol Char
    string='Símbolo'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    required=True size=5 string='Código Postal'
  • locality_code Char
    size=4 string='Código de Localidad'
  • municipality_code Char
    size=4 string='Código de Municipio'
  • state_code Char
    required=True size=3 string='Código de Estado'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True size=5
  • name Char
    required=True
  • zip Char
    required=True size=5
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True args: 'Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • code Char
    string='Codigo'
  • name Char
    string='Localidad'
  • state_code Char
    string='Codigo de Estado'
  • state_id Many2one → res.country.state
    compute='_compute_state_id' string='Estado' args: 'res.country.state'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Codigo'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (1)
  • map_res_country(self, country_id)
    @api.model
    Map a res.country to a c_pais

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Codigo'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • applies_to_legal_person Boolean
    string='Aplica para persona moral'
  • applies_to_natural_person Boolean
    string='Aplica para persona física'
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
Public methods (0)

No public methods.

New fields (3)
  • clave_transporte Char
    required=True
  • code Char
    required=True
  • description Char
    required=True
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True string='Código'
  • description Char
    required=True string='Descripción'
  • name Char
    compute='_compute_name' store=True
Public methods (0)

No public methods.

New fields (5)
  • applies_to_fiscal_regimes Char
    string='Aplica para régimen fiscal'
  • applies_to_legal_person Boolean
    string='Aplica para persona moral'
  • applies_to_natural_person Boolean
    string='Aplica para persona física'
  • code Char
    required=True string='Código'
  • name Char
    required=True string='Nombre'
Public methods (0)

No public methods.