Colombia - Pre-configuración Factura Electrónica

l10n_co_electronic_invoice
REPOSITORY
REPOSITORYOCA/l10n-colombia
GIT
GIThttps://github.com/OCA/l10n-colombia.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-colombia/tree/19.0/l10n_co_electronic_invoice
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting/Localizations
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), IKU Solutions - Yan Chirino
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), IKU Solutions - Yan Chirino
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Yan Chirino
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-colombia
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - base_address_extended
    - contacts
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - l10n_co
    - account_debit_note
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_latam_base
    - base_vat
    - l10n_latam_invoice_document
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module implements the preconfiguration data required for electronic document interchange (EDI) in Colombia.
It provides the necessary fields, codes, and reference data for Colombian EDI compliance:

> - **Preconfiguración EDI Colombia** (desarrollado por *[Yan Chirino - IKU Solutions]*):
>   Implements Colombian EDI preconfiguration including payment methods, responsibility types, tax types,
>   CIIU codes, UNSPSC codes, UOM codes, and geographic data required for electronic invoicing.
>   For more information, visit
>   <https://micrositios.dian.gov.co/sistema-de-facturacion-electronica/>

Code Analysis

Views touched (18)
XML IDNameModelTypeStatus
product_template_only_form_view_inherit product_template_only_form_view_inherit product.template xpath Inherits product.product_template_form_view
product_uom_form_view_inherit product_uom_form_view_inherit uom.uom xpath Inherits uom.product_uom_form_view
view_company_form_inherit view_company_form_inherit res.company xpath Inherits base.view_company_form
view_l10n_co_ciiu_form view_l10n_co_ciiu_form l10n_co.ciiu form New
view_l10n_co_ciiu_list view_l10n_co_ciiu_list l10n_co.ciiu list New
view_l10n_co_payment_method_form view_l10n_co_payment_method_form l10n_co.payment.method form New
view_l10n_co_payment_method_list view_l10n_co_payment_method_list l10n_co.payment.method list New
view_l10n_co_responsibility_type_form view_l10n_co_responsibility_type_form l10n_co.responsibility.type form New
view_l10n_co_responsibility_type_list view_l10n_co_responsibility_type_list l10n_co.responsibility.type list New
view_l10n_co_tax_type_form view_l10n_co_tax_type_form l10n_co.tax.type form New
view_l10n_co_tax_type_list view_l10n_co_tax_type_list l10n_co.tax.type list New
view_move_form_inherit view_move_form_inherit account.move xpath Inherits l10n_latam_invoice_document.view_move_form
view_partner_form_inherit view_partner_form_inherit res.partner xpath Inherits base.view_partner_form
view_product_unspsc_form view_product_unspsc_form product.unspsc form New
view_product_unspsc_list view_product_unspsc_list product.unspsc list New
view_tax_form_inherit view_tax_form_inherit account.tax xpath Inherits account.view_tax_form
view_unece_uom_code_form view_unece_uom_code_form unece.uom.code form New
view_unece_uom_code_list view_unece_uom_code_list unece.uom.code list New
Models touched (13)

New fields (10)
  • l10n_co_dian_generation_date Datetime
    string='Fecha de generación del documento'
  • l10n_co_dian_operation_type Selection
    compute='_compute_operation_type' store=True string='Operation Type (CO)' args: [('10', 'Estandar'), ('09', 'AIU'), ('11', 'Mandatos'), ('12', 'Transporte'), ('13', 'Cambiario'), ('15', 'Compra Divisas'), ('16', 'Venta Divisas'), ('20', 'Nota Crédito que referencia una factura electrónica'), ('22', 'Nota Crédito sin referencia a facturas'), ('30', 'Nota Débito que referencia una factura electrónica'), ('32', 'Nota Débito sin referencia a facturas'), ('33', 'Inactivo: Nota Débito para facturación electrónica V1 (Decreto 2242)')]
  • l10n_co_dian_status Selection
    selection=[('not_sent', 'No enviado'), ('sent', 'Enviado'), ('accepted', 'Aceptado'), ('rejected', 'Rechazado'), ('error', 'Error')] string='Estado en DIAN'
  • l10n_co_dian_zip_key Char
    copy=False help='TrackId/ZipKey retornado por SendTestSetAsync. Se usa para consultar el estado con GetStatusZip.' readonly=True string='ZipKey DIAN'
  • l10n_co_discrepancy_response_code Selection
    selection=[('nc_1', 'NC - Devolución parcial de los bienes y/o no aceptación parcial del servicio'), ('nc_2', 'NC - Anulación de factura electrónica'), ('nc_3', 'NC - Rebaja o descuento parcial o total'), ('nc_4', 'NC - Ajuste de precio'), ('nc_5', 'NC - Descuento comercial por pronto pago'), ('nc_6', 'NC - Descuento comercial por volumen de ventas'), ('nd_1', 'ND - Intereses'), ('nd_2', 'ND - Gastos por cobrar'), ('nd_3', 'ND - Cambio del valor'), ('nd_4', 'ND - Otros')] string='Concepto de Corrección'
  • l10n_co_edi_cufe_cude_ref Char
    copy=False readonly=True string='CUFE/CUDE'
  • l10n_co_invoice_period_end Date
    help='Fecha de fin del periodo de facturación que modifica esta nota crédito/débito. Obligatorio para NC/ND sin referencia a factura (DIAN CAE04).' string='Periodo Fin'
  • l10n_co_invoice_period_start Date
    help='Fecha de inicio del periodo de facturación que modifica esta nota crédito/débito. Obligatorio para NC/ND sin referencia a factura (DIAN CAE02).' string='Periodo Inicio'
  • l10n_co_payment_method_id Many2one → l10n_co.payment.method
    comodel_name='l10n_co.payment.method' default=<expr> string='Medio de Pago'
  • l10n_co_payment_term Selection
    default='1' selection=[('1', 'Contado'), ('2', 'Credito')] string='Forma de Pago'
Public methods (0)

No public methods.

New fields (1)
  • l10n_co_tax_type_id Many2one → l10n_co.tax.type
    default=<expr> string='Tipo de impuesto' args: 'l10n_co.tax.type'
Public methods (0)

No public methods.

New fields (5)
  • active Boolean
    default=True string='Activo'
  • code Char
    readonly=True required=True string='Código'
  • description Char
    readonly=True required=True string='Descripción' translate=True
  • is_code Boolean
    readonly=True string='¿Es código?'
  • parent_id Many2one → l10n_co.ciiu
    readonly=True string='Padre' args: 'l10n_co.ciiu'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Código'
  • name Char
    string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Codigo'
  • display_name Char
    compute='_compute_name' string='Nombre'
  • name Char
    string='Referencia'
Public methods (0)

No public methods.

New fields (4)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Código'
  • is_withholding_tax Boolean
    default=False string='Es retención?'
  • name Char
    string='Referencia'
Public methods (0)

No public methods.

New fields (1)
  • l10n_co_document_iso_code Char
    string='ISO Code'
Public methods (0)

No public methods.

New fields (4)
  • l10n_co_edi_ref_nominal_tax Float
    help='Tarifa nominal del impuesto al consumo (litros para licores, ml para cerveza). Usado para cálculo de impuestos per-unit (códigos 32, 34).' string='Tarifa Nominal Impuesto Consumo'
  • product_brand Char
    string='Marca'
  • product_model Char
    string='Modelo'
  • product_unspsc_id Many2one → product.unspsc
    string='Producto UNSPSC' args: 'product.unspsc'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True string='Activo'
  • class_code Char
    string='Código Clase'
  • class_name Char
    string='Nombre Clase'
  • family_code Char
    string='Código Familia'
  • family_name Char
    string='Nombre Familia'
  • name Char
    string='Nombre Producto'
  • product_code Char
    string='Código Producto'
  • segment_code Char
    string='Código Segmento'
  • segment_name Char
    string='Nombre Segmento'
Public methods (0)

No public methods.

New fields (5)
  • l10n_co_autoretenedor Boolean
    string='¿Es Autorretenedor?'
  • l10n_co_ciiu_id Many2one → l10n_co.ciiu
    readonly=False related='partner_id.l10n_co_ciiu_id' args: 'l10n_co.ciiu', 'Principal actividad economica'
  • l10n_co_ciiu_ids Many2many → l10n_co.ciiu
    readonly=False related='partner_id.l10n_co_ciiu_ids' string='Otras actividades economicas' args: 'l10n_co.ciiu'
  • l10n_co_regimen_fiscal Selection
    readonly=False related='partner_id.l10n_co_regimen_fiscal' string='Regimen Fiscal'
  • l10n_co_responsibility_ids Many2many → l10n_co.responsibility.type
    readonly=False related='partner_id.l10n_co_responsibility_ids' string='Responsabilidades' args: 'l10n_co.responsibility.type'
Public methods (0)

No public methods.

New fields (4)
  • l10n_co_ciiu_id Many2one → l10n_co.ciiu
    args: 'l10n_co.ciiu', 'Principal actividad economica'
  • l10n_co_ciiu_ids Many2many → l10n_co.ciiu
    string='Otras actividades economicas' args: 'l10n_co.ciiu'
  • l10n_co_regimen_fiscal Selection
    selection=[('48', 'Impuesto sobre las ventas – IVA'), ('49', 'No responsable de IVA')] string='Regimen Fiscal'
  • l10n_co_responsibility_ids Many2many → l10n_co.responsibility.type
    string='Responsabilidades' args: 'l10n_co.responsibility.type'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Codigo'
  • name Char
    string='Referencia'
Public methods (0)

No public methods.

New fields (1)
  • unece_code_id Many2one → unece.uom.code
    help='Código de unidad de medida UNECE adoptado por la DIAN' string='Código de unidad de medida UNECE' args: 'unece.uom.code'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-colombia
GIT
GIThttps://github.com/OCA/l10n-colombia.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-colombia/tree/18.0/l10n_co_electronic_invoice
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYAccounting/Localizations
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), IKU Solutions - Yan Chirino
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), IKU Solutions - Yan Chirino
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Yan Chirino
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-colombia
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - base_address_extended
    - contacts
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - l10n_co
    - account_debit_note
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_latam_base
    - base_vat
    - l10n_latam_invoice_document
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module implements the preconfiguration data required for electronic document interchange (EDI) in Colombia.
It provides the necessary fields, codes, and reference data for Colombian EDI compliance:

> - **Preconfiguración EDI Colombia** (desarrollado por *[Yan Chirino - IKU Solutions]*):
>   Implements Colombian EDI preconfiguration including payment methods, responsibility types, tax types,
>   CIIU codes, UNSPSC codes, UOM codes, and geographic data required for electronic invoicing.
>   For more information, visit
>   <https://micrositios.dian.gov.co/sistema-de-facturacion-electronica/>

Code Analysis

Views touched (19)
XML IDNameModelTypeStatus
product_template_only_form_view_inherit product_template_only_form_view_inherit product.template xpath Inherits product.product_template_form_view
product_uom_categ_form_view_inherit product_uom_categ_form_view_inherit uom.category xpath Inherits uom.product_uom_categ_form_view
product_uom_form_view_inherit product_uom_form_view_inherit uom.uom xpath Inherits uom.product_uom_form_view
view_company_form_inherit view_company_form_inherit res.company xpath Inherits base.view_company_form
view_l10n_co_ciiu_form view_l10n_co_ciiu_form l10n_co.ciiu form New
view_l10n_co_ciiu_list view_l10n_co_ciiu_list l10n_co.ciiu list New
view_l10n_co_payment_method_form view_l10n_co_payment_method_form l10n_co.payment.method form New
view_l10n_co_payment_method_list view_l10n_co_payment_method_list l10n_co.payment.method list New
view_l10n_co_responsibility_type_form view_l10n_co_responsibility_type_form l10n_co.responsibility.type form New
view_l10n_co_responsibility_type_list view_l10n_co_responsibility_type_list l10n_co.responsibility.type list New
view_l10n_co_tax_type_form view_l10n_co_tax_type_form l10n_co.tax.type form New
view_l10n_co_tax_type_list view_l10n_co_tax_type_list l10n_co.tax.type list New
view_move_form_inherit view_move_form_inherit account.move xpath Inherits l10n_latam_invoice_document.view_move_form
view_partner_form_inherit view_partner_form_inherit res.partner xpath Inherits base.view_partner_form
view_product_unspsc_form view_product_unspsc_form product.unspsc form New
view_product_unspsc_list view_product_unspsc_list product.unspsc list New
view_tax_form_inherit view_tax_form_inherit account.tax xpath Inherits account.view_tax_form
view_unece_uom_code_form view_unece_uom_code_form unece.uom.code form New
view_unece_uom_code_list view_unece_uom_code_list unece.uom.code list New
Models touched (13)

New fields (10)
  • l10n_co_dian_generation_date Datetime
    string='Fecha de generación del documento'
  • l10n_co_dian_operation_type Selection
    compute='_compute_operation_type' store=True string='Operation Type (CO)' args: [('10', 'Estandar'), ('09', 'AIU'), ('11', 'Mandatos'), ('12', 'Transporte'), ('13', 'Cambiario'), ('15', 'Compra Divisas'), ('16', 'Venta Divisas'), ('20', 'Nota Crédito que referencia una factura electrónica'), ('22', 'Nota Crédito sin referencia a facturas'), ('30', 'Nota Débito que referencia una factura electrónica'), ('32', 'Nota Débito sin referencia a facturas'), ('33', 'Inactivo: Nota Débito para facturación electrónica V1 (Decreto 2242)')]
  • l10n_co_dian_status Selection
    selection=[('not_sent', 'No enviado'), ('sent', 'Enviado'), ('accepted', 'Aceptado'), ('rejected', 'Rechazado'), ('error', 'Error')] string='Estado de la factura'
  • l10n_co_dian_zip_key Char
    copy=False help='TrackId/ZipKey retornado por SendTestSetAsync. Se usa para consultar el estado con GetStatusZip.' readonly=True string='ZipKey DIAN'
  • l10n_co_discrepancy_response_code Selection
    selection=[('nc_1', 'NC - Devolución parcial de los bienes y/o no aceptación parcial del servicio'), ('nc_2', 'NC - Anulación de factura electrónica'), ('nc_3', 'NC - Rebaja o descuento parcial o total'), ('nc_4', 'NC - Ajuste de precio'), ('nc_5', 'NC - Descuento comercial por pronto pago'), ('nc_6', 'NC - Descuento comercial por volumen de ventas'), ('nd_1', 'ND - Intereses'), ('nd_2', 'ND - Gastos por cobrar'), ('nd_3', 'ND - Cambio del valor'), ('nd_4', 'ND - Otros')] string='Concepto de Corrección'
  • l10n_co_edi_cufe_cude_ref Char
    copy=False readonly=True string='CUFE/CUDE'
  • l10n_co_invoice_period_end Date
    help='Fecha de fin del periodo de facturación que modifica esta nota crédito/débito. Obligatorio para NC/ND sin referencia a factura (DIAN CAE04).' string='Periodo Fin'
  • l10n_co_invoice_period_start Date
    help='Fecha de inicio del periodo de facturación que modifica esta nota crédito/débito. Obligatorio para NC/ND sin referencia a factura (DIAN CAE02).' string='Periodo Inicio'
  • l10n_co_payment_method_id Many2one → l10n_co.payment.method
    comodel_name='l10n_co.payment.method' default=<expr> string='Medio de Pago'
  • l10n_co_payment_term Selection
    default='1' selection=[('1', 'Contado'), ('2', 'Credito')] string='Forma de Pago'
Public methods (0)

No public methods.

New fields (1)
  • l10n_co_tax_type_id Many2one → l10n_co.tax.type
    default=_default_l10n_co_tax_type string='Tipo de impuesto' args: 'l10n_co.tax.type'
Public methods (0)

No public methods.

New fields (5)
  • active Boolean
    default=True string='Activo'
  • code Char
    readonly=True required=True string='Código'
  • description Char
    readonly=True required=True string='Descripción' translate=True
  • is_code Boolean
    readonly=True string='¿Es código?'
  • parent_id Many2one → l10n_co.ciiu
    readonly=True string='Padre' args: 'l10n_co.ciiu'
Public methods (2)
  • name_get(self)
  • name_search(self, name, args=None, operator='ilike', limit=80)
    @api.model

New fields (3)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Código'
  • name Char
    string='Nombre'
Public methods (0)

No public methods.

New fields (4)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Codigo'
  • display_name Char
    compute='_compute_name' string='Nombre'
  • name Char
    string='Referencia'
Public methods (0)

No public methods.

New fields (4)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Código'
  • is_withholding_tax Boolean
    default=False string='Es retención?'
  • name Char
    string='Referencia'
Public methods (0)

No public methods.

New fields (1)
  • l10n_co_document_iso_code Char
    string='ISO Code'
Public methods (0)

No public methods.

New fields (4)
  • l10n_co_edi_ref_nominal_tax Float
    help='Tarifa nominal del impuesto al consumo (litros para licores, ml para cerveza). Usado para cálculo de impuestos per-unit (códigos 32, 34).' string='Tarifa Nominal Impuesto Consumo'
  • product_brand Char
    string='Marca'
  • product_model Char
    string='Modelo'
  • product_unspsc_id Many2one → product.unspsc
    string='Producto UNSPSC' args: 'product.unspsc'
Public methods (0)

No public methods.

New fields (9)
  • active Boolean
    default=True string='Activo'
  • class_code Char
    string='Código Clase'
  • class_name Char
    string='Nombre Clase'
  • family_code Char
    string='Código Familia'
  • family_name Char
    string='Nombre Familia'
  • name Char
    string='Nombre Producto'
  • product_code Char
    string='Código Producto'
  • segment_code Char
    string='Código Segmento'
  • segment_name Char
    string='Nombre Segmento'
Public methods (0)

No public methods.

New fields (5)
  • l10n_co_autoretenedor Boolean
    string='¿Es Autorretenedor?'
  • l10n_co_ciiu_id Many2one → l10n_co.ciiu
    readonly=False related='partner_id.l10n_co_ciiu_id' args: 'l10n_co.ciiu', 'Principal actividad economica'
  • l10n_co_ciiu_ids Many2many → l10n_co.ciiu
    readonly=False related='partner_id.l10n_co_ciiu_ids' string='Otras actividades economicas' args: 'l10n_co.ciiu'
  • l10n_co_regimen_fiscal Selection
    readonly=False related='partner_id.l10n_co_regimen_fiscal' string='Regimen Fiscal'
  • l10n_co_responsibility_ids Many2many → l10n_co.responsibility.type
    readonly=False related='partner_id.l10n_co_responsibility_ids' string='Responsabilidades' args: 'l10n_co.responsibility.type'
Public methods (0)

No public methods.

New fields (4)
  • l10n_co_ciiu_id Many2one → l10n_co.ciiu
    args: 'l10n_co.ciiu', 'Principal actividad economica'
  • l10n_co_ciiu_ids Many2many → l10n_co.ciiu
    string='Otras actividades economicas' args: 'l10n_co.ciiu'
  • l10n_co_regimen_fiscal Selection
    selection=[('48', 'Impuesto sobre las ventas – IVA'), ('49', 'No responsable de IVA')] string='Regimen Fiscal'
  • l10n_co_responsibility_ids Many2many → l10n_co.responsibility.type
    string='Responsabilidades' args: 'l10n_co.responsibility.type'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True string='Activo'
  • code Char
    string='Codigo'
  • name Char
    string='Referencia'
Public methods (0)

No public methods.

New fields (1)
  • unece_code_id Many2one → unece.uom.code
    help='Código de unidad de medida UNECE adoptado por la DIAN' string='Código de unidad de medida UNECE' args: 'unece.uom.code'
Public methods (0)

No public methods.