Files
documentation/accounting/fiscal_localizations/localizations/mexico.rst
T

816 lines
33 KiB
ReStructuredText
Raw Normal View History

======
Mexico
======
2017-10-09 17:16:06 +02:00
.. note::
This documentation is written assuming that you follow and know the official
documentation regarding Invoicing, Sales and Accounting and that you have
experience working with odoo on such areas, we are not intended to put
here procedures that are already explained on those documents, just the
information necessary to allow you use odoo in a Company with the country
2017-10-10 11:16:48 +02:00
"Mexico" set.
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
2017-10-09 17:16:06 +02:00
Introduction
2020-01-08 11:05:57 +01:00
============
2017-10-09 17:16:06 +02:00
The mexican localization is a group of 3 modules:
2019-08-29 04:30:46 -07:00
1. **l10n_mx:** All basic data to manage the accounting, taxes and the
2017-10-09 17:16:06 +02:00
chart of account, this proposed chart of account installed is a intended
copy of the list of group codes offered by the `SAT`_.
2. **l10n_mx_edi**: All regarding to electronic transactions, CFDI 3.2 and 3.3,
payment complement, invoice addendum.
3. **l10n_mx_reports**: All mandatory electronic reports for electronic
accounting are here (Accounting app required).
With the Mexican localization in Odoo you will be able not just to comply
with the required features by law in México but to use it as your
accounting and invoicing system due to all the set of normal requirements for
this market, becoming your Odoo in the perfect solution to administer your
2017-10-10 11:16:48 +02:00
company in Mexico.
2020-01-08 11:05:57 +01:00
2018-08-31 14:41:25 +02:00
Configuration
2020-01-08 11:05:57 +01:00
=============
2017-10-09 17:16:06 +02:00
.. tip::
After the configuration we will give you the process to test everything,
try to follow step by step in order to allow you to avoid expend time on
fix debugging problems. In any step you can recall the step and try again.
2020-01-08 11:05:57 +01:00
Install the Mexican Accounting Localization
-------------------------------------------
2017-10-09 17:16:06 +02:00
For this, go in Apps and search for Mexico. Then click on *Install*.
.. image:: media/mexico01.png
:align: center
.. tip::
When creating a database from www.odoo.com, if you choose Mexico
as country when creating your account, the mexican localization will be
automatically installed.
2020-01-08 11:05:57 +01:00
Electronic Invoices (CDFI 3.2 and 3.3 format)
---------------------------------------------
2017-10-09 17:16:06 +02:00
To enable this requirement in Mexico go to configuration in accounting Go in
:menuselection:`Accounting --> Settings` and enable the option on the image
with this you will be able to generate the signed invoice (CFDI 3.2 and 3.3)
and generate the payment complement signed as well (3.3 only) all fully
integrate with the normal invoicing flow in Odoo.
.. image:: media/mexico02.png
:align: center
2019-08-29 09:48:30 +02:00
.. _mx-legal-info:
2020-01-08 11:05:57 +01:00
Set your legal information in the company
-----------------------------------------
2017-10-09 17:16:06 +02:00
First, make sure that your company is configured with the correct data.
Go in :menuselection:`Settings --> Users --> Companies`
and enter a valid address and VAT for
your company. Dont forget to define a mexican fiscal position on your
companys contact.
.. tip::
If you want use the Mexican localization on test mode, you can put any known
address inside Mexico with all fields for the company address and
set the vat to **EKU9003173C9**.
2017-10-09 17:16:06 +02:00
.. image:: media/mexico03.png
:align: center
.. warning::
From a legal point of view, a Mexican company must use the local currency (MXN).
Therefore, Odoo does not provide features to manage an alternative configuration.
If you want to manage another currency, let MXN be the default currency and use
price list instead.
2020-01-08 11:05:57 +01:00
Set the proper "Fiscal Position" on the partner that represent the company
--------------------------------------------------------------------------
2017-10-09 17:16:06 +02:00
Go In the same form where you are editing the company save the record in
order to set this form as a readonly and on readonly view click on the partner
link, then edit it and set in the *Invoicing* tab the proper Fiscal Information
(for the **Test Environment** this must be *601 - General de Ley Personas
Morales*, just search it as a normal Odoo field if you can't see the option).
2020-01-08 11:05:57 +01:00
Enabling CFDI Version 3.3
-------------------------
2017-10-09 17:16:06 +02:00
.. warning::
This steps are only necessary when you will enable the CFDI 3.3 (only available
for V11.0 and above) if you do not have Version 11.0 or above on your
2020-01-08 11:05:57 +01:00
SaaS instance please ask for an upgrade by submitting a ticket to support in
2017-10-09 17:16:06 +02:00
https://www.odoo.com/help.
Enable the :doc:`Developer mode <../../../general/developer_mode/activate>`.
2017-10-09 17:16:06 +02:00
Go and look the following technical parameter, on
:menuselection:`Settings --> Technical --> Parameters --> System Parameters`
and set the parameter called *l10n_mx_edi_cfdi_version* to 3.3 (Create it if
the entry with this name does not exist).
2017-10-09 17:16:06 +02:00
.. warning::
The CFDI 3.2 will be legally possible until November 30th 2017 enable the
2017-10-10 11:16:48 +02:00
3.3 version will be a mandatory step to comply with the new `SAT resolution`_
in any new database created since v11.0 released CFDI 3.3 is the default
behavior.
2017-10-09 17:16:06 +02:00
.. image:: media/mexico11.png
:align: center
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
Important considerations when you enable the CFDI 3.3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2017-10-09 17:16:06 +02:00
Your tax which represent the VAT 16% and 0% must have the "Factor Type" field
set to "Tasa".
2021-02-12 17:41:53 +01:00
.. image:: media/mx_faq_04.png
2017-10-09 17:16:06 +02:00
:align: center
2021-02-12 17:41:53 +01:00
.. image:: media/mx_faq_05.png
2017-10-09 17:16:06 +02:00
:align: center
2017-10-10 11:16:48 +02:00
You must go to the Fiscal Position configuration and set the proper code (it is
2017-10-09 17:16:06 +02:00
the first 3 numbers in the name) for example for the test one you should set
601, it will look like the image.
2017-10-09 17:16:06 +02:00
.. image:: media/mexico14.png
:align: center
All products must have for CFDI 3.3 the "SAT code" and the field "Reference"
properly set, you can export them and re import them to do it faster.
.. image:: media/mexico15.png
:align: center
2020-01-08 11:05:57 +01:00
Configure the PAC in order to sign properly the invoices
--------------------------------------------------------
2017-10-09 17:16:06 +02:00
To configure the EDI with the **PACs**, you can go in
2017-04-25 16:13:49 +02:00
:menuselection:`Accounting --> Settings --> Electronic Invoicing (MX)`.
2017-10-09 17:16:06 +02:00
You can choose a PAC within the **List of supported PACs** on the *PAC field*
and then enter your PAC username and PAC password.
.. warning::
Remember you must sign up in the refereed PAC before hand, that process
can be done with the PAC itself on this case we will have two
(2) availables `Finkok`_ and `Solución Factible`_.
You must process your **Private Key (CSD)** with the SAT institution before
follow this steps, if you do not have such information please try all the
"Steps for Test" and come back to this process when you finish the process
proposed for the SAT in order to set this information for your production
environment with real transactions.
.. image:: media/mexico04.png
:align: center
.. tip::
If you ticked the box *MX PAC test environment* there is no need
to enter a PAC username or password.
.. image:: media/mexico05.png
:align: center
.. tip::
2017-10-09 17:16:06 +02:00
Here is a SAT certificate you can use if you want to use the *Test
Environment* for the Mexican Accounting Localization.
2021-02-12 17:41:53 +01:00
- :download:`Certificate <../../../_static/files/certificate.cer>`
- :download:`Certificate Key <../../../_static/files/certificate.key>`
- **Password:** ``12345678a``
2020-01-08 11:05:57 +01:00
Configure the tag in sales taxes
-----------------------------------
This tag is used to set the tax type code, transferred or withhold, applicable
to the concept in the CFDI.
So, if the tax is a sale tax the "Tag" field should be "IVA", "ISR" or "IEPS".
.. image:: media/mexico33.png
:align: center
Note that the default taxes already has a tag assigned, but when you create a
new tax you should choose a tag.
2020-01-08 11:05:57 +01:00
2017-10-09 17:16:06 +02:00
Usage and testing
2020-01-08 11:05:57 +01:00
=================
2017-10-09 17:16:06 +02:00
Invoicing
---------
2017-10-09 17:16:06 +02:00
To use the mexican invoicing you just need to do a normal invoice following
the normal Odoo's behaviour.
2017-10-09 17:16:06 +02:00
Once you validate your first invoice a correctly signed invoice should look
like this:
.. image:: media/mexico07.png
:align: center
2017-10-10 11:16:48 +02:00
You can generate the PDF just clicking on the Print button on the invoice or
2017-10-09 17:16:06 +02:00
sending it by email following the normal process on odoo to send your invoice
by email.
.. image:: media/mexico08.png
:align: center
Once you send the electronic invoice by email this is the way it should looks
like.
.. image:: media/mexico09.png
:align: center
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
2017-10-09 17:16:06 +02:00
Cancelling invoices
-------------------
2017-10-10 11:16:48 +02:00
The cancellation process is completely linked to the normal cancellation in Odoo.
If the invoice is not paid.
2020-01-08 11:05:57 +01:00
- Go to to the customer invoice journal where the invoice belong to.
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
.. image:: media/mexico28.png
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
.. image:: media/mexico29.png
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
- Check the "Allow cancelling entries" field.
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
.. image:: media/mexico29.png
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
- Go back to your invoice and click on the button "Cancel Invoice".
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
.. image:: media/mexico30.png
2017-10-10 11:16:48 +02:00
- For security reasons it is recommendable return the check on the to allow
cancelling to false again, then go to the journal and un check such field.
**Legal considerations**
- A cancelled invoice will automatically cancelled on the SAT.
- If you retry to use the same invoice after cancelled, you will have as much
cancelled CFDI as you tried, then all those xml are important to maintain a
good control of the cancellation reasons.
- You must unlink all related payment done to an invoice on odoo before
cancel such document, this payments must be cancelled to following the same
approach but setting the "Allow Cancel Entries" in the payment itself.
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
2017-10-09 17:16:06 +02:00
Payments (Just available for CFDI 3.3)
--------------------------------------
To generate the payment complement you only need to follow the normal payment
2017-10-09 17:16:06 +02:00
process in Odoo, this considerations to understand the behavior are important.
2020-01-08 11:05:57 +01:00
#. To generate payment complement the payment term in the invoice must be
PPD, because It is the expected behavior legally required for
"Cash payment".
**1.1. How can I generate an invoice with payment term `PUE`?**
`According to the SAT documentation`_ a payment is classified as ``PUE`` if
it was agreed that the invoice would be fully payed before the 1st of the
next calendar month (the month after the one in the CFDI date); any other
condition will generate a ``PPD`` invoice.
**1.2. How is this done in Odoo?**
The appropriate CFDI payment term (PPD or PUE) is determined by the dates
and the ``Payment Terms`` that are selected in the invoice.
- If an invoice is generated without ``Payment Term`` the attribute
``MetodoPago`` will always be ``PUE``.
- If this is the first week of the month and an invoice is generated
with ``Payment Term`` ``15 Net Days`` the calculated ``Due Date`` will
be before the 1st of the next month, which will result in the
attribute ``MetodoPago`` being ``PUE``.
- If this is not the first week of the month and an invoice is generated
with ``Payment Term`` ``30 Net Days``, the ``Due Date`` will be later higher
than the 1st day of the next month and the ``MetodoPago`` will be ``PPD``.
- If the ``Payment Term`` are defined with 2 or more lines (for example
``30% Advance`` and ``End of Following Month``), this is an installments
term, and the attribute ``MetodoPago`` will always be ``PPD``.
#. To test a normal signed payment just create an invoice with the payment term
``30% Advance, End of Following Month`` and register a payment to it.
2020-01-08 11:05:57 +01:00
#. You must print the payment in order to retrieve the PDF properly.
#. Regarding "Payments in Advance" you must create a proper invoice with
the advance payment itself as a product line setting the proper SAT code
following the procedure in the official documentation `given by the SAT`_
2017-10-09 17:16:06 +02:00
in the section **Apéndice 2 Procedimiento para la emisión de los CFDI en el
caso de anticipos recibidos**.
#. Related to topic 4, creating a Customer Payment without a proper invoice
is not allowed.
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
Electronic Accounting
---------------------
Accounting for Mexico in Odoo is composed of 3 reports:
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
#. Electronic Chart of Accounts (Called and displayed as COA).
2020-01-08 11:05:57 +01:00
#. Electronic Trial Balance.
#. DIOT report.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
1. and 2. are considered electronic accounting, and DIOT is a report only available in the context
of accounting.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
You can find all of those reports in :menuselection:`Accounting --> Reporting --> Mexico`
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_01.png
2017-10-09 17:16:06 +02:00
:align: center
2021-02-12 17:41:53 +01:00
:alt: MX reports
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
Electronic Chart of Accounts (Called and displayed as COA).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
Electronic invoicing has never been so easy, just go to :menuselection:`Accounting -> Reports ->
Mexico -> COA` and click the button **Export for SAT (XML)**.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_02.png
2017-10-09 17:16:06 +02:00
:align: center
2021-02-12 17:41:53 +01:00
:alt: COA for SAT
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
How to add new accounts ?
~~~~~~~~~~~~~~~~~~~~~~~~~
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
If you add an account with the NNN.YY.ZZ encoding convention where NNN.YY is a SAT encoding group,
your account will be set up automatically.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
Example to add an Account for a new Bank account go to :menuselection:`Accounting --> Settings -->
Chart of Account` and then create a new account in the «Create» button and try to create an
account with the number 102.01.99 once you change to establish the name you will see an
automatically configured label, the configured labels are the ones chosen to be used in the COA
in XML.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_03.png
2017-10-09 17:16:06 +02:00
:align: center
2021-02-12 17:41:53 +01:00
:alt: Create account
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
What is the meaning of the tags?
2020-01-08 11:05:57 +01:00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
To know all the possible labels, you can read `Annex 24
<http://www.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/Anexo24_05012015.pdf>`_
on the SAT website in the section called **Código agrupador de cuentas del SAT**.
2017-10-09 17:16:06 +02:00
.. tip::
2021-02-12 17:41:53 +01:00
When you install the l10n_mx module and your chart of accounts depends on it (this happens
automatically when you install the configuration of Mexico as a country in your database), it
will have the most common labels by default. If the tag you need is not created, you can create
it.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
Trial Balance
-------------
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
Exactly like the COA but with the credit and debit of the initial balance, once you have
correctly configured your COA, you can go to :menuselection:`Reports --> Trial Balance` this is
automatically generated and can be exported to XML using the button on the top **Export for SAT
(XML)** with the previous selection of the period you want to export.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_04.png
2017-10-09 17:16:06 +02:00
:align: center
2021-02-12 17:41:53 +01:00
:alt: Electronic verification balance
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
All normal analysis and listed functions are available here as well as any normal Odoo Report.
2020-01-08 11:05:57 +01:00
2017-10-09 17:16:06 +02:00
DIOT Report (Requires Accounting App)
2020-01-08 11:05:57 +01:00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
What is DIOT and the importance of presenting it SAT
****************************************************
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
When it comes to procedures with the SAT Administration Service, we know that we should not
neglect what we present.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
The DIOT is the Informative Declaration of Operations with Third Parties (DIOT), which is an
additional obligation with VAT, where we must give the status of our operations to third parties,
or what is considered the same, with our suppliers.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
This applies to both individuals and Personas Morales, so if we have VAT to present to the SAT
and also deal with suppliers it is necessary to send the DIOT.
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
When to file the DIOT and in what format ?
2021-02-12 17:41:53 +01:00
******************************************
It is easy to present the DIOT, since, like all formats, you can obtain it on the SAT page, it is
the electronic form A-29 that you can find on the SAT website.
Every month if you have operations with third parties, it is necessary to present the DIOT, as we
do with VAT, so if in January we have deals with suppliers, by February we must present the
information relevant to said data.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
Where is DIOT presented?
************************
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
You can present DIOT in different ways, it is up to you which one you will choose and which one
will be more comfortable for you since you will present it every month or every time you have
dealings with suppliers.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
The A-29 form is electronic so you can present it on the SAT page, but this after having made up
to 500 registrations.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
Once these 500 records have been entered in the SAT, you must submit them to the Local Taxpayer
Services Administration (ALSC) with correspondence to your tax address, these records can be
submitted on a digital storage medium such as a CD or USB, which a Once validated, they will
return you, so do not doubt that you will still have these discs and of course, your CD or USB.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
One more thing to know: batch loading?
**************************************
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
When reviewing the official SAT documents in DIOT, you will find the Batch load, and of course
the first thing we think is what is that ?, and according to the SAT site it is:
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
The "batch load" is the conversion of databases from records of transactions with suppliers made
by taxpayers in text files (.txt). These files have the necessary structure for their application
and import into the Informative Declaration of Operations with third parties system, avoiding
direct capture and consequently, optimizing the time invested in their integration for the
presentation in time and form to the SAT.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
You can use it to present the DIOT, since it is allowed, which will facilitate this operation, so
that it does not exist to avoid being in line with the SAT in regards to the Informative
Declaration of Operations with Third Parties.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. seealso::
`official information
<http://www.sat.gob.mx/fichas_tematicas/declaraciones_informativas/Paginas/declaracion_informativa_terceros.aspx>`_
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
How to generate this report in Odoo?
************************************
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
#. Go to :menuselection:`Accounting --> Reports --> Mexico --> Transactions with third partied
(DIOT)`.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_05.png
:align: center
:alt: DIOT report
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
#. A report view is displayed, select the last month to report the immediately preceding month or
leave the current month if it suits you.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_06.png
:align: center
:alt: DIOT filter
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
#. Click on *Export (XLSX)* or *Print (TXT)*
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_07.png
:align: center
:alt: Print DIOT
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
#. Save the downloaded file in a safe place, go to the SAT website and follow the necessary steps
to declare it.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
Important considerations about your supplier and invoice data for DIOT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
- All suppliers must have the fields configured in the accounting tab called "DIOT Information",
the L10N MX Nationality field is completed by simply selecting the appropriate country in the
address, not You need to do nothing else there, but the l10n MX type of operation must be
configured in all your providers.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_08.png
:align: center
:alt: DIOT configuration
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
- There are 3 VAT options for this report, 16%, 0% and exempt, one invoice line in Odoo is
considered exempt if there is no tax on it, the other 2 taxes are already configured correctly.
- Remember that to pay an invoice that represents a prepayment, you must first request the invoice
and then pay it and properly reconcile the payment following the standard Odoo procedure.
- You do not need to fill in all your partner data to try to generate the supplier invoice, you
can correct this information when you generate the report.
- Remember that this report only shows vendor invoices that were actually paid.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
If some of these considerations are not taken into account, a message like this will appear when
you generate the DIOT in TXT with all the partners you need to verify this particular report,
this is the reason why we recommend to use this report not only for exporting your legal
information. obligation, but generate it before the end of the month and use it as your auditory
process to see that all your partners are configured correctly.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_ce_09.png
:align: center
:alt: DIOT Error
Closing Fiscal Period in Odoo
-----------------------------
Before proceeding to the close of the fiscal year, there are some steps that you should normally
take to ensure that your accounting is correct, updated and accurate:
- Make sure that you have fully reconciled your bank account (s) through the end of the year and
confirm that the closing book balances match the balances on your bank statements.
- Verify that all customer invoices have been entered and approved.
- Confirm that you have entered and approved all vendor bills.
- Validate all expenses, ensuring their accuracy.
- Check that all payments received have been entered and recorded exactly.
Year-end checklist
~~~~~~~~~~~~~~~~~~
- Run a **Tax Report**, and verify that your tax information is correct.
- Reconcile all accounts on your **Balance Sheet**
- Compare your bank balances in Odoo against the current bank balances on your statements. Use
the report **Bank Reconciliation** to help you with this.
- Reconcile all cash and bank account transactions by running your **Old Accounts Receivable**
and **Old Accounts Payable** reports
- Audit your accounts, making sure you fully understand the transactions that affect them and the
nature of the transactions, making sure to include loans and fixed assets.
- Run the optional function **Payments Matching**, under the *More* drop-down on the Journal
options from the Accounting dashboard, validating any Vendor Bill and Customer Invoices with its
payments. This step is optional, however it can assist the year-end process if all pending
payments and invoices are reconciled, and it can lead to finding errors or mistakes in the
system.
- Your accountant will probably like to check your items in the balance sheet and do some Journal
Entries for:
- Manual year-end adjustments, using the **Journal Audit** report (For example, the **Current
Earnings for the Year** and **Retained Earnings reports**).
- **Work in Progress**.
- **Depreciation Journals**.
- **Loans**.
- **Tax Adjustments**.
If your accountant is on the year-end audit, they will want to have copies of the balance sheet
items (such as loans, bank accounts, prepayments, sales tax reports, etc ...) to compare against.
your balances in Odoo.
During this process, it is a good practice setting the **Closing Date for Non-Advisers** to the
last day of the preceding financial year, which is set under the accounting settings. In this
way, the accountant can trust that no one else is changing the previous year's transactions while
auditing the books.
.. image:: media/mx_cc_01.png
:align: center
:alt: Fiscal year
Accounting Closing Process
~~~~~~~~~~~~~~~~~~~~~~~~~~
In Odoo there is no need to make a specific year-end entry to close the reporting income accounts
. The result of the exercise is automatically calculated in the account type (Current Year
Earnings) and the difference between Income - Expenses will be accumulated to calculate it.
The reports are created in real-time, which means that the **Income Report** corresponds directly
to the closing date of the year that you specify in Odoo. In addition, at any time that you
generate the **Income Report**, the start date will correspond to the start date of the **Fiscal
Year** and the account balances will all be 0.
As of December 31, the Balance Sheet shows the earnings of the Current Year that do not have been
recognized (Account type Total Current Year Unallocated Earnings in MX account 305.01.01
['current year earnings' type])
.. image:: media/mx_cc_02.png
:align: center
:alt: Balance sheet closing
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
The accountant should create a Journal Entry to recognize the result of the year in Accumulated
Earnings from previous years on the account "previous years results" account (304.01.01 in
Mexico) - that is an equity account.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
The simplified accounting entry would look like this:
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_cc_03.png
2017-10-10 11:16:48 +02:00
:align: center
2021-02-12 17:41:53 +01:00
:alt: Closing journal entry
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
Once the accountant has created the journal entry to locate the **Current Earnings for the Year**,
they must set the **Closing Date** to the last day of the fiscal year. Making sure that before
doing this, whether or not the current gain of the year in the **Balance Sheet** is properly
reporting a balance 0.
.. image:: media/mx_cc_04.png
:align: center
:alt: Check BS closing
2020-01-08 11:05:57 +01:00
2017-10-09 17:16:06 +02:00
Extra Recommended features
2020-01-08 11:05:57 +01:00
==========================
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
Contacts App (Free)
-------------------
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
If you want to properly manage your customers, suppliers and addresses, this module, even if it
is not a technical need, it is highly recommended to install it.
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
Multi-currency (Requires Accounting application)
------------------------------------------------
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
In Mexico, almost all companies send and receive payments in different currencies. If you want to
do this you can enable the use of multi-currency. You should also enable synchronization with the
**Mexican Bank Service**, as this would allow you to automatically have the exchange rate from the
SAT without having to manually create this information every day in Odoo.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
Go to settings and enable the multi-currency feature.
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_mc_01.png
2017-10-09 17:16:06 +02:00
:align: center
2021-02-12 17:41:53 +01:00
:alt: Multi currency configuration
2020-01-08 11:05:57 +01:00
2017-10-09 17:16:06 +02:00
Enabling Explicit errors on the CFDI using the XSD local validator (CFDI 3.3)
-----------------------------------------------------------------------------
Frequently you want receive explicit errors from the fields incorrectly set
on the xml, those errors are better informed to the user if the check is
enable, to enable the Check with xsd feature follow the next steps (with the
:doc:`Developer mode <../../../general/developer_mode/activate>` enabled).
2017-10-09 17:16:06 +02:00
- Go to :menuselection:`Settings --> Technical --> Actions --> Server Actions`
- Look for the Action called "Download XSD files to CFDI"
- Click on button "Create Contextual Action"
- Go to the company form :menuselection:`Settings --> Users&Companies --> Companies`
- Open any company you have.
- Click on "Action" and then on "Download XSD file to CFDI".
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx-xsd-cfdi.png
2017-10-09 17:16:06 +02:00
:align: center
2021-02-12 17:41:53 +01:00
:alt: Download XSD files to CFDI from the Companies list view on Odoo
2017-10-09 17:16:06 +02:00
Now you can make an invoice with any error (for example a product without
code which is pretty common) and an explicit error will be shown instead a
generic one with no explanation.
.. note::
If you see an error like this:
2021-02-12 17:41:53 +01:00
| ``The cfdi generated is not valid``
| ``attribute decl. 'TipoRelacion', attribute 'type': The QName value
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_TipoRelacion' does
2021-02-12 17:41:53 +01:00
not resolve to a(n) simple type definition., line 36``
2020-01-08 11:05:57 +01:00
This can be caused by a database backup restored in anothe server,
or when the XSD files are not correctly downloaded. Follow the same steps
as above but:
- Go to the company in which the error occurs.
2021-02-12 17:41:53 +01:00
- Click on *Action* and then on *Download XSD file to CFDI*.
2021-02-12 17:41:53 +01:00
Common problems and errors
==========================
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
- **Error messages** (Only applicable on CFDI 3.3):
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
- ``9:0:ERROR:SCHEMASV:SCHEMAV_CVC_MINLENGTH_VALID: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Concepto', attribute 'NoIdentificacion':
[facet 'minLength'] The value '' has a length of '0'; this underruns
2021-02-12 17:41:53 +01:00
the allowed minimum length of '1'.``
2017-10-09 17:16:06 +02:00
2021-02-12 17:41:53 +01:00
- ``9:0:ERROR:SCHEMASV:SCHEMAV_CVC_PATTERN_VALID: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Concepto', attribute 'NoIdentificacion':
2021-02-12 17:41:53 +01:00
[facet 'pattern'] The value '' is not accepted by the pattern '[^|]{1,100}'.``
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
**Solution**:
You forgot to set the proper "Reference" field in the product,
please go to the product form and set your internal reference properly.
2017-10-09 17:16:06 +02:00
2020-01-08 11:05:57 +01:00
- **Error messages**:
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
- ``6:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element
'{http://www.sat.gob.mx/cfd/3}RegimenFiscal': The attribute 'Regimen' is required but missing.``
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
- ``5:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element
'{http://www.sat.gob.mx/cfd/3}Emisor': The attribute 'RegimenFiscal' is required but missing.``
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
**Solution**:
2021-02-12 17:41:53 +01:00
You forgot to set the proper "Fiscal Position" on the partner of the company. Go to customers,
remove the customer filter and look for the partner called as your company and set the proper
fiscal position which is the kind of business your company does related to SAT list of possible
values, another option can be that you forgot to follow the considerations about fiscal
positions.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
You need to go to Fiscal Position settings and set the proper code (it is the first 3 numbers
of the name), for example, for the test, you need to set 601, it will look like the picture.
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_faq_01.png
:align: center
:alt: Fiscal position error
2020-01-08 11:05:57 +01:00
.. tip::
For testing purposes this value must be set to ``601 - General de Ley
2021-02-12 17:41:53 +01:00
Personas Morales`` which is the one required for the VAT demo.
2017-10-10 11:16:48 +02:00
- **Error message**:
2021-02-12 17:41:53 +01:00
- ``2:0:ERROR:SCHEMASV:SCHEMAV_CVC_ENUMERATION_VALID: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'FormaPago':
[facet 'enumeration'] The value '' is not an element of the set
{'01', '02', '03', '04', '05', '06', '08', '12', '13', '14', '15', '17',
2021-02-12 17:41:53 +01:00
'23', '24', '25', '26', '27', '28', '29', '30', '99'}``
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
**Solution**:
The payment method is required on your invoice.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_faq_02.png
:align: center
:alt: Payment method error
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
- **Error messages**:
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
- ``2:0:ERROR:SCHEMASV:SCHEMAV_CVC_ENUMERATION_VALID: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'LugarExpedicion':
2021-02-12 17:41:53 +01:00
[facet 'enumeration'] The value '' is not an element of the set {'00``
- ``2:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'LugarExpedicion':
2021-02-12 17:41:53 +01:00
'' is not a valid value of the atomic type '{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_CodigoPostal'.``
- ``5:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element
'{http://www.sat.gob.mx/cfd/3}Emisor': The attribute 'Rfc' is required but missing.``
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
**Solution**:
2021-02-12 17:41:53 +01:00
You must configure your company address correctly, this is a mandatory group of fields, you can
go to your company configuration in :menuselection:`Settings --> Users & Companies --> Companies`
and fill complete all the mandatory fields for your address by following the steps in this
section: :ref:`mx-legal-info`.
2017-10-10 11:16:48 +02:00
- **Error message**:
2021-02-12 17:41:53 +01:00
- ``2:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Comprobante', attribute 'LugarExpedicion':
'' is not a valid value of the atomic type
2021-02-12 17:41:53 +01:00
'{http://www.sat.gob.mx/sitio_internet/cfd/catalogos}c_CodigoPostal'.``
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
**Solution**:
2021-02-12 17:41:53 +01:00
The postal code of your company address is not valid for Mexico, please correct it.
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_faq_03.png
:align: center
:alt: ZIP code error
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
- **Error messages**:
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
- ``18:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Traslado': The attribute 'TipoFactor' is
2021-02-12 17:41:53 +01:00
required but missing.``
- ``34:0:ERROR:SCHEMASV:SCHEMAV_CVC_COMPLEX_TYPE_4: Element
2020-01-08 11:05:57 +01:00
'{http://www.sat.gob.mx/cfd/3}Traslado': The attribute 'TipoFactor' is
2021-02-12 17:41:53 +01:00
required but missing.", '')``
2017-10-10 11:16:48 +02:00
2020-01-08 11:05:57 +01:00
**Solution**:
2021-02-12 17:41:53 +01:00
Set the Mexican name for the 0% and 16% tax in your system and use it on the invoice. Your tax,
which represents 16% VAT and 0%, must have the **Factor Type** field set to *Tasa*.
.. image:: media/mx_faq_04.png
:align: center
:alt: Factor type error
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
.. image:: media/mx_faq_05.png
:align: center
:alt: Rate error
- **Error messages**:
2017-10-10 11:16:48 +02:00
2021-02-12 17:41:53 +01:00
- | ``CCE159``
| ``The XXXX attribute must be registered if the key of cce11: ComercioExterior:
TipoOperacion registered is '1' or '2'.``
**Solution**: It is necessary to specify the Incoterm.
- **Error messages**:
2020-01-08 11:05:57 +01:00
2021-02-12 17:41:53 +01:00
- | ``CCE209``
| ``The attribute cce11: Foreign Trade: Goods: Goods: Customs Unit must have the value
specified in the catalog catCFDI: c_FraccionArancelaria column 'UMT' when the attribute
cce11: Foreign Trade: Goods: Me``
**Solution**: The Tariff Fraction must have the code of the unit of measure 01, corresponding
to Kilograms.
Glossary
========
- :abbr:`CFDI (Comprobante Fiscal Digital por Internet)`: Online Digital Tax Receipt
- :abbr:`CSD (Certificado de Sello Digital)`: Digital Seal Certificate
- :abbr:`PAC (Proveedores Autorizados de Certificación)`: Authorized Certification Provider
- Stamp: Digital signature of the electronic invoice
- Addenda: Complement of information that can be attached to an Internet Digital Tax Receipt
(CFDI) normally required by certain companies in Mexico such as Walmart, Tiendas Sorianas, etc.
- :abbr:`UUID (Universally Unique Identifier)`: It is the acronym in English of the Universally
Unique Identifier. The UUID is the equivalent of Folio Fiscal, it is composed of 32 hexadecimal
digits, shown in 5 groups separated by hyphens.
- LCO: List of Obliged Taxpayers (LCO) is a list issued by the SAT that accounts for all the
taxpayers whom it authorizes the issuance of invoices and payroll receipts. This means that, to
be able to electronically bill your clients, you must be in this database.
2017-10-10 11:16:48 +02:00
2017-10-09 17:16:06 +02:00
.. _SAT: http://www.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/Anexo24_05012015.pdf
.. _Finkok: https://www.finkok.com/contacto.html
2017-10-09 17:16:06 +02:00
.. _`Solución Factible`: https://solucionfactible.com/sf/v3/timbrado.jsp
.. _`SAT resolution`: http://sat.gob.mx/informacion_fiscal/factura_electronica/Paginas/Anexo_20_version3.3.aspx
.. _`According to the SAT documentation`: https://www.sat.gob.mx/cs/Satellite?blobcol=urldata&blobkey=id&blobtable=MungoBlobs&blobwhere=1461173400586&ssbinary=true
2017-10-09 17:16:06 +02:00
.. _`given by the SAT`: http://sat.gob.mx/informacion_fiscal/factura_electronica/Documents/GuiaAnexo20DPA.pdf