Enable Dark Mode!
By: Cybrosys Technologies

Odoo 14 Fiscal Localization - Mexico


Mexico localization provides the accounting features required for the companies operating in Mexico. The chart of accounts and tax are automatically generated along with the localization. With this localization, Odoo will help the company to perform the accounting activities defined in Odoo using the rules and regulations defined by Mexico localization.

The initial step is to install the Mexico localization from the odoo apps.


At the time of database creation, if the country is chosen as Mexico, then it will automatically install the Mexico accounting features.

Mexico Accounting includes some groups of modules:

l10n_mx: This module includes the basic configuration needed to operate a company in Mexico like basic accounting features, chart of accounts, taxes, etc.

l10n_mx_edi: Support all electronic transactions, CFDI 3.2 (Electronic invoice by internet) and 3.3, payment supplement, invoice addendum

l10n_mx_reports: for mandatory electronic accounting reports. Here accounting apps are mandatory.

l10n_mx_edi_landing: This module extends the functionality of Mexican localization to support customs numbers related to landed costs when you generate the electronic invoice

Electronic Invoice (CFDI 3.2 and 3.3 format)

In Mexico, from 2011 the electronic invoices are in CFDI format. CFDI stands for “Comprobante Fiscal Digital Por Internet” which means a digital fiscal document via the internet (ie the invoices). For CFDI invoice must have the signature of the exhibitor and the signature of the certification provider PAC.

The CFDI 3.2 format was used until 2017 December 31st and after that, the rule was changed. As per the rule, CFDI 3.3 format has to be used from 2018 January 1st. And this CFDI format is supported by Odoo version V11 and above. To enable CFDI for lower odoo versions, one has to upgrade their odoo SaaS instant version to V11 or above.

Now, we are at the advent of Odoo version 14. So to enable the electronic invoice we have to enable it from accounting configuration settings. Go to Accounting module> Configuration -> Settings -> Customer Invoice -> Electronic Invoicing.


On enabling electronic invoices it will be automatically created in CFDI format, ie a signed invoice (CFDI 3.2 and 3.3) and a signed payment complement (CFDI 3.3 only). This is also integrated with Odoo's normal invoicing flow.

Configuring Company

The first step is to configure the company properly so that it can operate in Mexico localization. Go to Settings -> Users & Companies -> Companies and add a valid company address and VAT number properly.


To use this localization in test mode, one can add a valid Mexican address for your company and set the VAT number as EKU9003173C9Also, ensure that a Mexican fiscal position is set for your company contact.

Setting fiscal position & partner form

Set the fiscal position for the partner contact.   All the details in entered while creating the company are already filled, like address, contact details, and VAT.


CURP is an 18 digit alphanumeric code of population registration used in Mexico to identify the residents and Mexican citizens.


Under the Sales & Purchase tab, fiscal positions for the company can be assigned. To add by default the external trade complement an invoice for this customer check in the option ’Need external trade’.


Under the Accounting tab, one might see new fields CLABE and DIOT Information.

CLABE number is an 18 digit code used in Mexican banks that contains the information of the bank, its branch location as well as the individual account number used for safe transfer of payments. 

DIOT Information indicates the operations types that make this supplier.   On the reporting side, we will acquire those details too.

Enabling CFDI Version 3.3

Enable the developer mode and go to Settings -> Technical -> Parameters -> System Parameters and set value of parameter 'l10n_mx_edi_cfdi_version' to 3.3.   If this parameter does not exist and sets the value.


One of the important things to be noted for when enabling the CFDI 3.3 is that for your tax VAT 16% and 0%, factor type is Tasa.


Factor Type: The CFDI version 3.3 has the attribute type 'Tipo Factor' in the tax line, which indicates the factor type that is applied to the base of the tax.

Configuring PAC to sign invoices properly

PAC the Authorized Certification Providers is one of the greatest moves in Mexico for digital invoicing.   Here actually what happens is the invoice tax validation is done separately, which is an advantage for both clients and the SAT, as validation was assigned to an approved third party, which simplified the procedure and reduced the dependence on all invoices to be validated by the tax authority. 

To configure go to Accounting -> Configuration -> Settings, under Electronic Invoicing (MX) can add the PAC from the list of PAC providers.   Also add PAC username and PAC password.


Another way is that one can use the test environment. To enable 'MX PAC test environment'.   Then no need to add a PAC username and password, it will use the test credentials.

Add the fiscal regime to configure the SAT fiscal regime.


Also, Mx certificates can be added to the required field.



The invoicing procedure for Mexican localization is the same as that of Odoo invoice.


The payment way indicates the way that the invoice will be paid, it could be cash, bank transfer, check, or credit card. If the payment method is unknown, one can leave that field empty.

The payment policy is updated once the invoice is confirmed, ie to either PPD or PUE.   This is assigned based on the payment terms.   If the payment term is not defined it takes the payment policy as PUE (means payment in one installment) and on the other hand, it will be considered as PPD.


Usage in CFID 3.3 used to express the key to the user that will give the receiver of the document.

Payment Reference is the reference that used to be set on the journal.

CFDI origin is actually used at the time, when payments, credit/debit notes, invoices are re-signed, or invoices that are redone.   Due to payment in advance we will need to fill this field.

If the SAT is synchronized correctly, and confirming the invoice the electronic invoice with signature can be seen.   (Here SAT status is not synced yet).   So the invoice is not signed.


Accounting Reports

This localization introduces four additional reports. One can see the reports under the reporting menu of the accounting app.


1. Trial Balance 

When it comes to trial balance, the details of each account's balance, debit and credit values, total are shown.   From here also the data can be exported to XML or XLSX format.


Data can also be filtered based on time period.

2. Trial Balance Month 13

This report is the same as the trial balance.   It defines the credit, debit values ??of accounts.   IT also gives a description of the trial balance, including the total assets, total liabilities and current benefit.   These will be shown at the end of the report

3. COA


All the charts of accounts can be viewed here. Also, the journal entries and journal items can be viewed and can be exported to XLSX and XML.

One of the basic configurations is the creation of charts of accounts.   They can be created from Accounting Module -> Configuration -> Chart of Accounts and then CREATE.


The chart of accounts creation is the same, here the code for the account has a format NNN.YY.ZZ, where NNN.YY is the coding group of SAT. 

Once you enter the code and while adding the account name, the tag gets auto-filled.  These tags are set for assigning in custom reports.  So in the COA report, each chart of accounts is shown with the tags.  There are tags already mentioned by the SAT for each account.  They are automatically added with COA while installing the localization package.  Also, one can create custom tags on the fly.

4. Transactions with third parties [DIOT]

For this reporting accounting app is required. DIOT is the Informational Statement of Operations with Third Parties.  It is an added VAT requirement that one must send their suppliers the status of activities to third parties.

In the partner form, under the accounting tab DIOT Information like nationality and operation has to mention


For suppliers, the L10N Mx Type Of Operation is a must.


Watch Video:

If you need any assistance in odoo, we are online, please chat with us.


Leave a comment




Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635



Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.



Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message