diff --git a/accounting/localizations/media/mexico01.png b/accounting/localizations/media/mexico01.png index 0aad28941..2696e8bc7 100644 Binary files a/accounting/localizations/media/mexico01.png and b/accounting/localizations/media/mexico01.png differ diff --git a/accounting/localizations/media/mexico03.png b/accounting/localizations/media/mexico03.png index 70222cd59..cc2da8813 100644 Binary files a/accounting/localizations/media/mexico03.png and b/accounting/localizations/media/mexico03.png differ diff --git a/accounting/localizations/media/mexico07.png b/accounting/localizations/media/mexico07.png new file mode 100644 index 000000000..837145d5d Binary files /dev/null and b/accounting/localizations/media/mexico07.png differ diff --git a/accounting/localizations/media/mexico08.png b/accounting/localizations/media/mexico08.png new file mode 100644 index 000000000..a0c4af860 Binary files /dev/null and b/accounting/localizations/media/mexico08.png differ diff --git a/accounting/localizations/media/mexico09.png b/accounting/localizations/media/mexico09.png new file mode 100644 index 000000000..b46e1d73d Binary files /dev/null and b/accounting/localizations/media/mexico09.png differ diff --git a/accounting/localizations/media/mexico10.png b/accounting/localizations/media/mexico10.png new file mode 100644 index 000000000..e8efb0d60 Binary files /dev/null and b/accounting/localizations/media/mexico10.png differ diff --git a/accounting/localizations/media/mexico11.png b/accounting/localizations/media/mexico11.png new file mode 100644 index 000000000..43455a215 Binary files /dev/null and b/accounting/localizations/media/mexico11.png differ diff --git a/accounting/localizations/media/mexico12.png b/accounting/localizations/media/mexico12.png new file mode 100644 index 000000000..4fd53500f Binary files /dev/null and b/accounting/localizations/media/mexico12.png differ diff --git a/accounting/localizations/media/mexico13.png b/accounting/localizations/media/mexico13.png new file mode 100644 index 000000000..b8be3c80e Binary files /dev/null and b/accounting/localizations/media/mexico13.png differ diff --git a/accounting/localizations/media/mexico14.png b/accounting/localizations/media/mexico14.png new file mode 100644 index 000000000..aa52c9fce Binary files /dev/null and b/accounting/localizations/media/mexico14.png differ diff --git a/accounting/localizations/media/mexico15.png b/accounting/localizations/media/mexico15.png new file mode 100644 index 000000000..1d1c808d5 Binary files /dev/null and b/accounting/localizations/media/mexico15.png differ diff --git a/accounting/localizations/media/mexico16.png b/accounting/localizations/media/mexico16.png new file mode 100644 index 000000000..d62d2e2da Binary files /dev/null and b/accounting/localizations/media/mexico16.png differ diff --git a/accounting/localizations/media/mexico17.png b/accounting/localizations/media/mexico17.png new file mode 100644 index 000000000..bb88bdaac Binary files /dev/null and b/accounting/localizations/media/mexico17.png differ diff --git a/accounting/localizations/media/mexico18.png b/accounting/localizations/media/mexico18.png new file mode 100644 index 000000000..baef6a343 Binary files /dev/null and b/accounting/localizations/media/mexico18.png differ diff --git a/accounting/localizations/media/mexico19.png b/accounting/localizations/media/mexico19.png new file mode 100644 index 000000000..f1de2b521 Binary files /dev/null and b/accounting/localizations/media/mexico19.png differ diff --git a/accounting/localizations/media/mexico20.png b/accounting/localizations/media/mexico20.png new file mode 100644 index 000000000..807136052 Binary files /dev/null and b/accounting/localizations/media/mexico20.png differ diff --git a/accounting/localizations/media/mexico21.png b/accounting/localizations/media/mexico21.png new file mode 100644 index 000000000..a71b7f76d Binary files /dev/null and b/accounting/localizations/media/mexico21.png differ diff --git a/accounting/localizations/mexico.rst b/accounting/localizations/mexico.rst index e98b76a2a..291f6d626 100644 --- a/accounting/localizations/mexico.rst +++ b/accounting/localizations/mexico.rst @@ -1,12 +1,46 @@ -============================== -Mexico Accounting Localization -============================== +=================== +Mexico Localization +=================== + +.. 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 + "México" set. + +Introduction +~~~~~~~~~~~~ + +The mexican localization is a group of 3 modules: + +1. **l10n_mx:** All the basic data to manage the accounting, taxes and the + 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 +company in México. Configuration -~~~~~~~~~~~~~~ +~~~~~~~~~~~~~ -First, install the Mexican Accounting Localization. For this, go in Apps -and search for Mexico. Then click on *Install*. +.. 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. + +1. Install the Mexican Accounting Localization. +----------------------------------------------- + +For this, go in Apps and search for Mexico. Then click on *Install*. .. image:: media/mexico01.png :align: center @@ -16,42 +50,20 @@ and search for Mexico. Then click on *Install*. as country when creating your account, the mexican localization will be automatically installed. -Accounting Reports -~~~~~~~~~~~~~~~~~~ +2. Electronic Invoices (CDFI 3.2 and 3.3 format) +------------------------------------------------ -Some specific reports have been added for the Mexican accounting -localization : - -- DIOT - -- COA - -- Trial Balance - -Electronic Invoices (CDFI format) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When sending a customer invoice by email, there is an option to join the -xml file of the invoice to your email (CDFI format). To activate this -setting, go in accounting > settings and activate the Mexican Electronic -Invoicing. +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 - -Invoices Certification -~~~~~~~~~~~~~~~~~~~~~~ - -With the Odoo Mexican Localization, certify your customer invoices. - -Create your customer invoice and simply send it to a PAC. The PAC will -sign the invoice and send it back to you but also send the invoice to -the SAT. Your customer is able to check on the SAT if your invoice is -well valid before paying it. - -Configuration -^^^^^^^^^^^^^ +3. Set you legal information in the company +------------------------------------------- First, make sure that your company is configured with the correct data. Go in :menuselection:`Settings --> Users --> Companies` @@ -60,16 +72,90 @@ your company. Don’t forget to define a mexican fiscal position on your company’s contact. .. tip:: - If you want to test the Mexican Localization, you can copy the - below configuration. + 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 **ACO560518KW7**. .. image:: media/mexico03.png :align: center +4. Set the proper "Fiscal Position" on the partner that represent the company. +------------------------------------------------------------------------------ + +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). + +5. Enabling CFDI Version 3.3 +---------------------------- + +.. 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 + SaaS instance please ask for an upgrade sending a ticket to support in + https://www.odoo.com/help. + +Enable debug mode: + +.. image:: media/mexico10.png + :align: center + +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). + +.. warning:: + The CFDI 3.2 will be legally possible until November 30th 2017 enable the + 3.3 version will be a mandatory step to comply with the new `SAT resolution`_. + +.. image:: media/mexico11.png + :align: center + +Important considerations when yo enable the CFDI 3.3 +==================================================== + +Your tax which represent the VAT 16% and 0% must have the "Factor Type" field +set to "Tasa". + +.. image:: media/mexico12.png + :align: center +.. image:: media/mexico13.png + :align: center + +Yo must go to the Fiscal Position configuration and set the proper code (it is +the first 3 numbers in the name) for example for the test one you should set +601, it will look like the image. + +.. 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 + +6. Configure the PAC in order to sign properly the invoices +----------------------------------------------------------- + To configure the EDI with the **PACs**, you can go in :menuselection:`Accounting --> Settings --> Electronic Invoicing (MX)`. -You can choose a PAC within the`list of supported PACs and then enter -your PAC username and PAC password. +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 @@ -78,9 +164,9 @@ your PAC username and PAC password. If you ticked the box *MX PAC test environment* there is no need to enter a PAC username or password. -You then have to enter your **SAT Certificates**. You will have to -upload your certificate, your certificate key and type your certificate -password. +You then have to enter your **Private Key (CSD)**. You will have to +upload your certificate and key file and then type your certificate password +(this password is given by the SAT). .. image:: media/mexico05.png :align: center @@ -94,18 +180,202 @@ password. :target: ../../_static/files/certificate.key .. tip:: - Here is a SAT certificate you can use if you want to test the - Mexican Accounting Locatization. + Here is a SAT certificate you can use if you want to use the *Test + Environment* for the Mexican Accounting Localization. - :ref:`Certificate:` |download_mexico_certificate_cer| - :ref:`Certificate Key:` |download_mexico_certificate_key| - Certificate password : 12345678a -Process -^^^^^^^ +Usage and testing +~~~~~~~~~~~~~~~~~ -Create a customer invoice and validate it. Now you can click on *Action* -and *Update PAC status*. Your invoice status will be updated. +Invoicing +--------- -.. image:: media/mexico06.png +To use the mexican invoicing you just need to do a normal invoice following +the normal Odoo's behaviour. + +Once you validate your first invoice a correctly signed invoice should look +like this: + + +.. image:: media/mexico07.png :align: center + +You can generate the PDF just clicking on the Print button on he invoice or +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 + +Cancelling invoices +------------------- + +TODO + +Payments (Just available for CFDI 3.3) +-------------------------------------- + +To generate the payment complement you just must to follow the normal payment +process in Odoo, this considerations to understand the behavior are important. + +1. All payment done in the same day of the invoice will be considered as It + will not be signed, because It is the expected behavior legally required + for "Cash payment". +2. To test a regular signed payment just create an invoice for the day before + today and then pay it today. +3. You must print the payment in order to retrieve the PDF properly. +4. Regarding the "Payments in Advance" you must create a proper invoice with + the payment in advance itself as a product line setting the proper SAT code + following the procedure on the official documentation `given by the SAT`_ + in the section **Apéndice 2 Procedimiento para la emisión de los CFDI en el + caso de anticipos recibidos**. +5. Related to topic 4 it is blocked the possibility to create a Customer + Payment without a proper invoice. + +Accounting +---------- +The accounting for Mexico in odoo is composed by 3 reports: + +1. Chart of Account (Called and shown as COA). +2. Electronic Trial Balance. +3. DIOT report. + +1 and 2 are considered as the electronic accounting, and the DIOT is a report +only available on the context of the accounting. + +You can find all those reports in the original report menu on Accounting app. + +.. image:: media/mexico16.png + :align: center + +Electronic Accounting (Requires Accounting App) +=============================================== + +Electronic Chart of account CoA ++++++++++++++++++++++++++++++++ + +The electronic accounting never has been easier, just go to +:menuselection:`Accounting --> Reporting --> Mexico --> COA` and click on the + button **Export for SAT (XML)** + +.. image:: media/mexico19.png + :align: center + +**How to add new accounts?** + +If you add an account with the coding convention NNN.YY.ZZ where NNN.YY is a +SAT coding group then your account will be automatically configured. + +Example to add an Account for a new Bank account go to +:menuselection:`Accounting --> Settings --> Chart of Account` and then create +a new account on the button "Create" and try to create an account with the +number 102.01.99 once you change to set the name you will see a tag +automatically set, the tags set are the one picked to be used in the COA on +xml. + +.. image:: media/mexico20.png + :align: center + +**What is the meaning of the tag?** + +To know all possible tags you can read the `Anexo 24`_ in the SAT +website on the section called **Código agrupador de cuentas del SAT**. + +.. tip:: + When you install the module l10n_mx and yous Chart of Account rely on it + (this happen automatically when you install setting Mexico as country on + your database) then you will have the more common tags if the tag you need + is not created you can create one on the fly. + +Electronic Trial Balance +++++++++++++++++++++++++ + +Exactly as the COA but with Initial balance debit and credit, once you have +your coa properly set you can go to :menuselection:`Accounting --> Reports --> Mexico --> Trial Balance` +this is automatically generated, and can be exported to XML using the button +in the top **Export for SAT (XML)** with the previous selection of the +period you want to export. + +.. image:: media/mexico21.png + :align: center + +All the normal auditory and analysis features are available here also as any +regular Odoo Report. + +DIOT Report (Requires Accounting App) +===================================== + +TODO + +Extra Recommended features +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Contact Module (Free) +--------------------- + +If you want to administer properly your customers, suppliers and addresses +this module even if it is not a technical need, it is highly recommended to +install. + +Multi currency (Requires Accounting App) +---------------------------------------- + +In Mexico almost all companies send and receive payments in different +currencies if you want to manage such capability you should enable the multi +currency feature and you should enable the synchronization with **Banxico**, +such feature allow you retrieve the proper exchange rate automatically +retrieved from SAT and not being worried of put such information daily in the +system manually. + +Go to settings and enable the multi currency feature. + +.. image:: media/mexico17.png + :align: center + +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 +debug mode enabled). + +- 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 "Dowload XSD file to CFDI". + +.. image:: media/mexico18.png + :align: center + +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. + +FAQ +~~~ + +1. Error message (Only applicable on CFDI 3.3): + + (":9:0:ERROR:SCHEMASV:SCHEMAV_CVC_MINLENGTH_VALID: Element '{http://www.sat.gob.mx/cfd/3}Concepto', attribute 'NoIdentificacion': [facet 'minLength'] The value '' has a length of '0'; this underruns the allowed minimum length of '1'. + + **Solution:** You forget to set the proper "Reference" field in the product, + please go to the product form and set your internal reference properly. + +.. _SAT: http://www.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/Anexo24_05012015.pdf +.. _Finkok: https://facturacion.finkok.com/cuentas/registrar/ +.. _`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 +.. _`given by the SAT`: http://sat.gob.mx/informacion_fiscal/factura_electronica/Documents/GuiaAnexo20DPA.pdf +.. _`Anexo 24`: http://www.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/Anexo24_05012015.pdf \ No newline at end of file