Electronic Withholding Ecuadorian Localization
The l10n_ec_withhold module is designed to facilitate the management of withholding taxes in the context of Ecuadorian localization. Withholding taxes play a crucial role in financial transactions, both in the procurement of goods and services (purchases) and the sale of products or services (sales). This module streamlines the process of handling withholding taxes, ensuring compliance with Ecuadorian tax regulations.
auto_awesome What this module does
AI-generated from the code · Odoo 17.0Create and manage Ecuadorian electronic withholding documents for purchases and sales, linked to invoices and sent to the SRI. Users can generate withholdings from invoices, print the withholding report, and control which partners or fiscal positions are exempt.
This module adds Ecuadorian withholding (retención) management to Odoo Accounting. From a posted customer or vendor invoice, users can launch a wizard to create a withholding document. The wizard pre-fills the partner, date and related invoice, lets users add withholding lines by tax type and tax support, and shows the total to withhold.
- Purchase withholdings are created from vendor bills and reconciled against the payable; sale withholdings are created from customer invoices and reconciled against the receivable.
- Withholding documents are posted, numbered, and can be sent electronically to the SRI; a dedicated PDF report "Withholding EC" is available.
- The system checks that the withholding date is not earlier than the invoice date, that the same withholding number is not repeated for a customer, and that an invoice is not included in two sale withholdings.
- Tax support codes must be set on invoice lines or on the invoice; otherwise posting is blocked.
- Fiscal positions and partners can be flagged to avoid withholding, which hides the withholding action on invoices.
- New menus "Purchase Withholding" and "Sales Withholding" list withholding documents, and invoices show a smart button with the count of related withholdings.
It touches account.move, account.move.line, account.journal, account.fiscal.position, res.partner and the EDI sending flow.
Depends on
Menus it adds
Models and fields (14)
- res.partner · extends an existing modell10n_ec_tax_support (Tax Support), l10n_ec_avoid_withhold
- account.move · extends an existing modell10n_ec_tax_support (Tax Support), l10n_ec_withhold_ids (Withhold), l10n_ec_withhold_count (Withholds Count), l10n_ec_withhold_active (Withholds?), l10n_ec_withholding_type (Withholding Type), l10n_ec_withhold_line_ids (Lineas de retencion)
- account.journal · extends an existing modell10n_ec_withholding_type (Withholding Type)
- account.move.line · extends an existing modell10n_ec_tax_support (Tax Support), l10n_ec_withhold_id (Withhold), l10n_ec_invoice_withhold_id (Invoice), l10n_ec_withhold_tax_amount (Withhold Tax Amount)
- account.move.send · extends an existing model
- account.edi.format · extends an existing model
- account.chart.template · extends an existing model
- account.fiscal.position · extends an existing modell10n_ec_avoid_withhold (Avoid Withholding?)
- l10n_ec.wizard.abstract.withhold · new modelinvoice_id (Related Document), issue_date (Date), journal_id (Journal), partner_id (Partner), document_number, electronic_authorization
- l10n_ec.wizard.create.sale.withhold · new modelinvoice_ids (Invoice), withhold_totals, withhold_line_ids (Lines)
- l10n_ec.wizard.abstract.withhold.line · new modelinvoice_id, base_amount (Amount Base), tax_withhold_id (Withholding tax), withhold_amount (Amount Withhold), tax_group_withhold_id (Withholding Type)
- l10n_ec.wizard.create.purchase.withhold · new modelwithhold_totals, withhold_line_ids (Lines)
- l10n_ec.wizard.create.sale.withhold.line · new modelwithhold_id (Withhold)
- l10n_ec.wizard.create.purchase.withhold.line · new modelwithhold_id (Withhold), l10n_ec_tax_support (Tax Support)
Text generated by AI (DeepSeek) from reading the Odoo 17.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/l10n-ecuador.
terminal Installation and usage
OCA documentation · Odoo 17.0Usage
Source · Odoo 17.0To effectively utilize the l10n_ec_withhold module, follow these essential steps:
- Journal, Agencies, and Emission Points Configuration: For each journal, specify whether it will be used for withholding taxes on purchases or withholding taxes on sales. This can be configured in the journal settings.
- Navigate to Invoicing > Configuration > Accounting > Journals.
- Set up relevant journals for electronic withholding.
2. **XML Code Configuration in Taxes:**
In order to align with Ecuadorian tax reporting requirements, the module introduces a feature where users must configure XML codes for taxes. This ensures that the generated tax reports comply with the specified XML standards mandated by local tax authorities.
3. **Tax Support Configuration:**
Users can now configure the "Tax Support" (tax justification) at both the line level and the invoice level. This flexibility allows businesses to provide detailed tax justifications for individual line items, enhancing transparency in tax documentation. Additionally, users have the option to set a global "Tax Support" at the invoice level, providing a comprehensive view of the tax justifications for the entire document.
4. **Position Fiscal Activation for Withholding Taxes:**
To enable the withholding tax functionality seamlessly, users need to activate it in the fiscal position settings for both the supplier and the company. This ensures that the system takes into account the specific fiscal requirements related to withholding taxes during transactions with the designated supplier.No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.