Colombia - Retención en la Fuente
l10n_co_withholding · OCA/l10n-colombia
-
Security25/25No findings
-
Activity0/25Only bot commits
-
Required by5/250 modules depend on it
-
Maturity5/25In 1 Odoo series since 18.0
Heuristic over the facts below, not an audit · How it's computed
Migration considerations
L10nCoReteicaRate— Migrating to 19.0: `_sql_constraints` is ignored and its constraints are silently not created: declare `models.Constraint` attributes instead. migration-sql-constraints · source
Migration review checklist, not a compatibility verdict. "Migrating to X.0" applies once you upgrade to that version; "Since X.0" means this version already ignores or rejects that code. Methodology
Description
Retención en la Fuente para Colombia
Este módulo implementa el soporte para retención en la fuente (RteFte), ReteIVA y ReteICA en la localización contable de Colombia.
La retención en la fuente es el mecanismo mediante el cual el Estado colombiano recauda anticipadamente impuestos a través de los agentes retenedores.
Características principales:
- Configuración en la compañía: Define si la empresa es agente de retención y las retenciones por defecto (RteFte, ReteIVA, ReteICA)
- Clasificación de partners: Régimen tributario, tipo de persona, gran contribuyente, autorretenedor
- Posiciones fiscales automáticas: Con mapeo de cuentas para desactivar retenciones según el régimen del proveedor (Régimen Simple, No Contribuyente)
- Impuestos con conceptos: Cada impuesto de retención tiene asociado un concepto tributario (honorarios, servicios, compras, etc.)
- Cuantías mínimas: Validación automática de la base mínima en UVT (configurable vía parámetro del sistema)
- Cálculo automático: Botón "Calcular Retenciones" en facturas que aplica las retenciones según la configuración de la compañía y el partner
- Soporte para ventas y compras: Aplica retenciones tanto en facturas de proveedor como de cliente
- Integración con factura electrónica: Los impuestos negativos se reportan correctamente como WithholdingTaxTotal en el EDI UBL
Dependencies
Code analysis
Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.
Views touched 9
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
res_config_settings_view_form_l10n_co_withholding |
res.config.settings.view.form.l10n_co_withholding | res.config.settings | form | Inherits account.res_config_settings_view_form |
view_l10n_co_reteica_rate_form |
l10n.co.reteica.rate.form | l10n.co.reteica.rate | form | New |
view_l10n_co_reteica_rate_search |
l10n.co.reteica.rate.search | l10n.co.reteica.rate | search | New |
view_l10n_co_reteica_rate_tree |
l10n.co.reteica.rate.tree | l10n.co.reteica.rate | list | New |
view_move_form_l10n_co_withholding |
account.move.form.l10n_co_withholding | account.move | form | Inherits account.view_move_form |
view_partner_form_l10n_co_withholding |
res.partner.form.l10n_co_withholding | res.partner | form | Inherits account.view_partner_property_form |
view_tax_form_l10n_co_withholding |
account.tax.form.l10n_co_withholding | account.tax | form | Inherits account.view_tax_form |
view_tax_group_form_l10n_co_withholding |
account.tax.group.form.l10n_co_withholding | account.tax.group | form | Inherits account.view_tax_group_form |
view_tax_search_l10n_co_withholding |
account.tax.search.l10n_co_withholding | account.tax | search | Inherits account.view_account_tax_search |
HTTP endpoints 0
No HTTP endpoints found for this module.
Models touched 7
No new fields.
Public methods (5)-
l10n_co_check_min_base(self, tax, base_amount) -
l10n_co_compute_withholding_taxes(self) -
l10n_co_get_applicable_withholding_taxes(self) -
l10n_co_get_withholding_taxes(self, partner, tax_type='purchase') -
l10n_co_remove_withholding_taxes(self, line_ids, withholding_tax_ids)
-
l10n_co_min_base_uvtFloathelp='Cuantía mínima en UVT para que aplique esta retención. Si la base gravable es inferior, la retención no se aplica.'string='Base Mínima (UVT)' -
l10n_co_withholding_compensates_tax_idMany2one → account.taxhelp='Impuesto de retención de venta que esta contrapartida compensa.'string='Retención Compensada' args: 'account.tax' -
l10n_co_withholding_conceptSelectionhelp='Concepto tributario de la retención en la fuente según el Estatuto Tributario colombiano.'selection=[('honorarios', 'Honorarios'), ('servicios', 'Servicios'), ('comisiones', 'Comisiones'), ('compras', 'Compras'), ('arrendamiento_mueble', 'Arrendamiento Bienes Muebles'), ('arrendamiento_inmueble', 'Arrendamiento Bienes Inmuebles'), ('rendimientos_financieros', 'Rendimientos Financieros'), ('transporte_carga', 'Transporte de Carga'), ('transporte_pasajeros', 'Transporte de Pasajeros'), ('vigilancia', 'Vigilancia y Aseo (AIU)'), ('temporal', 'Servicios Temporales (AIU)'), ('salud', 'Servicios de Salud'), ('hoteles_restaurantes', 'Hoteles y Restaurantes'), ('software', 'Licencias de Software'), ('it_consulting', 'Consultoría TI'), ('obras_inmuebles', 'Obras en Inmuebles'), ('vehiculos', 'Adquisición de Vehículos'), ('inmuebles', 'Bienes Raíces'), ('inmuebles_comerciales', 'Bienes Raíces Comerciales'), ('agricola', 'Bienes Agrícolas'), ('combustibles', 'Combustibles'), ('cafe', 'Café'), ('pagos_exterior', 'Pagos al Exterior'), ('otros', 'Otros')]string='Concepto de Retención' -
l10n_co_withholding_counterpartBooleanhelp='Impuesto positivo que compensa la retención en ventas para que el total de la factura no se reduzca ante la DIAN.'string='Contrapartida de Retención' -
l10n_co_withholding_typeSelectionhelp='Tipo de retención: Renta, IVA o ICA.'selection=[('rte_fte', 'ReteFte (Renta)'), ('rte_iva', 'ReteIVA'), ('rte_ica', 'ReteICA')]string='Tipo de Retención'
-
l10n_co_get_positive_counterpart(self)
-
l10n_co_withholding_counterpartBooleanhelp='Marca este grupo como el que agrupa las contrapartidas positivas de las retenciones de venta.'string='Grupo de Contrapartida de Retención'
No public methods.
-
activeBooleandefault=True -
city_idMany2one → res.citycomodel_name='res.city'help='Ciudad/municipio para la cual aplica esta tarifa de ReteICA.'required=Truestring='Ciudad' -
economic_activity_idMany2one → l10n.co.economic.activitycomodel_name='l10n.co.economic.activity'help='Actividad económica CIIU para la cual aplica esta tarifa de ReteICA.'required=Truestring='Actividad Económica' -
min_base_purchases_uvtFloatdefault=27.0digits=(6, 2)help='Base mínima en UVT para aplicar ReteICA en compras.'string='Base Mínima Compras (UVT)' -
min_base_services_uvtFloatdefault=4.0digits=(6, 2)help='Base mínima en UVT para aplicar ReteICA en servicios.'string='Base Mínima Servicios (UVT)' -
rateFloatdigits=(6, 4)help='Porcentaje de retención de ReteICA.'required=Truestring='Tarifa (%)'
-
get_rate_for_partner(self, partner)@api.modelGet ReteICA rate for partner based on city and activity.
-
l10n_co_default_rte_fte_tax_idsMany2many → account.taxcolumn1='company_id'column2='tax_id'comodel_name='account.tax'domain=[('l10n_co_withholding_type', '=', 'rte_fte')]help='Impuestos de retención en la fuente que se aplican por defecto.'relation='res_company_l10n_co_rte_fte_tax_rel'string='ReteFte por Defecto' -
l10n_co_default_rte_ica_tax_idsMany2many → account.taxcolumn1='company_id'column2='tax_id'comodel_name='account.tax'domain=[('l10n_co_withholding_type', '=', 'rte_ica')]help='Impuestos de retención de ICA que se aplican por defecto.'relation='res_company_l10n_co_rte_ica_tax_rel'string='ReteICA por Defecto' -
l10n_co_default_rte_iva_tax_idsMany2many → account.taxcolumn1='company_id'column2='tax_id'comodel_name='account.tax'domain=[('l10n_co_withholding_type', '=', 'rte_iva')]help='Impuestos de retención de IVA que se aplican por defecto.'relation='res_company_l10n_co_rte_iva_tax_rel'string='ReteIVA por Defecto' -
l10n_co_is_retention_agentBooleanhelp='Indica si la empresa actúa como agente de retención.'string='Agente de Retención'
No public methods.
-
l10n_co_default_rte_fte_tax_idsMany2manyreadonly=Falserelated='company_id.l10n_co_default_rte_fte_tax_ids'string='ReteFte por Defecto' -
l10n_co_default_rte_ica_tax_idsMany2manyreadonly=Falserelated='company_id.l10n_co_default_rte_ica_tax_ids'string='ReteICA por Defecto' -
l10n_co_default_rte_iva_tax_idsMany2manyreadonly=Falserelated='company_id.l10n_co_default_rte_iva_tax_ids'string='ReteIVA por Defecto' -
l10n_co_is_retention_agentBooleanreadonly=Falserelated='company_id.l10n_co_is_retention_agent'string='Agente de Retención Colombia'
No public methods.
-
city_idMany2one → res.citycomodel_name='res.city'help='Ciudad/municipio del partner. Se usa para determinar las tarifas de ReteICA aplicables.'string='Ciudad' -
l10n_co_is_authorretenedorBooleanhelp='Indica si el partner es autorretenedor de renta.'string='Autorretenedor' -
l10n_co_is_gran_contribuyenteBooleanhelp='Indica si el partner está calificado como gran contribuyente.'string='Gran Contribuyente' -
l10n_co_is_retention_agentBooleanhelp='Indica si el partner actúa como agente de retención.'string='Agente de Retención' -
l10n_co_tax_regimeSelectionhelp='Régimen tributario del partner para determinar las retenciones aplicables.'selection=[('ordinary', 'Régimen Ordinario'), ('simple', 'Régimen Simple'), ('non_taxpayer', 'No Contribuyente / No Responsable')]string='Régimen Tributario'
No public methods.