Colombia - Factura Electrónica Software Propio
Integración directa con los servicios web de la DIAN para la emisión de facturación electrónica colombiana en modo software propio.
Funcionalidades:
- Generación de XML UBL 2.1 con extensiones DIAN
- Firma digital XAdES-EPES y envelope SOAP con WS-Security
- Envío SendTestSetAsync (habilitación) y SendBillSync (producción)
- Consulta de estado: GetStatusZip y GetStatus (por CUFE)
- Consulta de rangos de numeración y clave técnica (GetNumberingRange)
- Generación de AttachedDocument con CDATA
- Eventos RADIAN con flujo secuencial (030, 031, 032, 033)
- Importación de facturas de proveedor desde XML o ZIP
- Representación gráfica PDF según requisitos DIAN
- Generación de ZIP (PDF + XML) para envío por email
Modos de operación: Demostración, Habilitación y Producción.
Documentos soportados:
- Factura electrónica de venta (01)
- Factura electrónica de exportación (02)
- Nota crédito electrónica (91) con o sin referencia
- Nota débito electrónica (92)
- Documento soporte (05)
- Nota de ajuste documento soporte (95)
Copyright (C) 2025 IKU Solutions - Yan Chirino
Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.
auto_awesome Qué hace este módulo
Generado por IA a partir del código · Odoo 19.0Configura la facturación electrónica colombiana con tu propio software: genera, firma y envía facturas DIAN, notas crédito/débito y documentos de soporte, consulta su estado y envía eventos RADIAN.
Este módulo conecta Odoo con la DIAN (autoridad fiscal colombiana) para que puedas emitir facturas electrónicas usando tu propio software en lugar de un proveedor externo.
- En cada diario de ventas o compras eliges un modo de operación: Demostración (demo, sin envío), Habilitación (entorno de pruebas de la DIAN) o Producción. También rellenas la identificación del software, el PIN, la clave técnica, el tipo de resolución, el número y las fechas de la resolución, el prefijo y el rango de numeración (valores separados para producción y habilitación).
- Un botón en el diario consulta a la DIAN los rangos de numeración autorizados.
- Cuando publicas una factura, nota crédito, nota débito o documento soporte, Odoo construye el XML UBL, lo firma, lo envía a la DIAN y almacena el XML firmado, el sobre SOAP, la respuesta de la DIAN y el AttachedDocument en el chatter. En modo demo no se envía nada.
- Antes de enviar, Odoo comprueba que el diario, la compañía, el cliente y los productos tengan los datos fiscales requeridos (código UNSPSC o referencia interna, impuesto, unidad de medida), que los impuestos tengan un tipo de impuesto DIAN, que exista un certificado válido y, para facturas de exportación, que el cliente sea extranjero, la moneda sea USD y los productos tengan marca y modelo. Las notas crédito y débito deben tener un concepto de corrección y referenciar una factura aceptada con CUFE/CUDE.
- La numeración sigue el rango autorizado; si se alcanza el número final, Odoo bloquea la creación de un nuevo documento.
- En la factura puedes consultar el estado en la DIAN (por CUFE o ZipKey) y abrir un asistente para enviar eventos RADIAN (030, 031, 032, 033), que actualiza el estado RADIAN y la lista de eventos enviados.
- El PDF de la factura está adaptado a los requisitos de la DIAN e incluye un código QR que enlaza a la página de validación de la DIAN. Al enviar por correo electrónico, se adjunta un ZIP con el XML del AttachedDocument y el PDF.
- Las facturas de proveedor recibidas como XML o ZIP de la DIAN se pueden importar en Odoo.
Depende de
Modelos y campos (10)
- res.company · amplía un modelo existente
- res.partner · amplía un modelo existente
- account.move · amplía un modelo existentel10n_co_radian_status (Estado RADIAN), l10n_co_radian_events_sent (Eventos RADIAN enviados), l10n_co_is_support_document (Es Documento Soporte)
- ir.attachment · amplía un modelo existente
- account.journal · amplía un modelo existentel10n_co_dian_test_set_id (TestSetId (Hab.)), l10n_co_dian_software_pin (Pin), l10n_co_dian_operation_mode (Modo de Operación), l10n_co_dian_resolution_type (Tipo de Resolución), l10n_co_dian_resolution_type_test (Tipo de Resolución (Habilitación)), l10n_co_electronic_document_prefix (Prefijo), l10n_co_dian_software_technical_key (Clave técnica (Producción)), l10n_co_electronic_document_message (Mensaje de Resolución), l10n_co_dian_software_identification (Identificación), l10n_co_electronic_document_end_number (Número de Fin), l10n_co_electronic_document_resolution (Resolución), l10n_co_electronic_document_prefix_test (Prefijo (Hab.)), l10n_co_dian_software_technical_key_test (Clave Técnica (Hab.)), l10n_co_electronic_document_message_test (Mensaje Resolución (Hab.)), l10n_co_electronic_document_start_number (Número de Inicio), l10n_co_electronic_document_end_number_test (Número de Fin (Hab.)), l10n_co_electronic_document_resolution_test (Resolución (Hab.)), l10n_co_electronic_document_start_number_test (Número de Inicio (Hab.)), l10n_co_electronic_document_end_resolution_date (Fecha de Fin de Resolución), l10n_co_electronic_document_start_resolution_date (Fecha de Inicio de Resolución), l10n_co_electronic_document_end_resolution_date_test (Fecha Fin Resolución (Hab.)), l10n_co_electronic_document_start_resolution_date_test (Fecha Inicio Resolución (Hab.))
- account.move.line · amplía un modelo existente
- account.move.send · amplía un modelo existente
- account.edi.format · amplía un modelo existente
- l10n_co.dian.self.service · modelo nuevo
- l10n_co.dian.radian.event.wizard · modelo nuevonote (Nota), move_id (Factura), event_type (Tipo de Evento)
Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub
Disponibilidad por versión
Revisado: 2026-11-03Estado de confirmación: 2 confirmadas, 7 sin información de 9 versiones.
Fuentes · Odoo 19.0
Confirmado el 2026-11-03 en la rama 19.0 de OCA/l10n-colombia.
terminal Instalación y uso
Documentación de OCA · Odoo 19.0Requisitos
- Módulo
l10n_co_electronic_invoiceinstalado. - Módulo
certificatenativo de Odoo (habilitación y producción). - Python:
xmlsig,lxml,cryptography,xmltodict,requests,qrcode.
Configuración del diario
Contabilidad > Configuración > Diarios → pestaña DIAN:
- Modo de Operación: Demostración, Habilitación o Producción.
- Software ID y PIN: asignados por la DIAN al registrar el software.
- TestSetId (solo habilitación): UUID del set de pruebas.
Habilitación/Demostración — configurar manualmente:
- Tipo de resolución, resolución, prefijo, rango, clave técnica.
Producción — botón "Obtener resolución DIAN":
- Configurar resolución y prefijo antes de consultar.
- Llena automáticamente rango, fechas y clave técnica.
- Si hay múltiples prefijos con la misma resolución, el match usa resolución + prefijo.
Configuración de empresa
- NIT con dígito de verificación (ej:
000000000-0). - Régimen fiscal (IVA / No responsable).
- Responsabilidades fiscales.
- Código CIIU.
Configuración de clientes
Nacionales: país Colombia, NIT/CC, tipo de identificación, régimen fiscal, responsabilidades fiscales.
Extranjeros: país, nombre, tipo de identificación (ID Extranjera o NIT otro país), número de identificación.
Consumidor final: se asigna tipo 13 (CC) automáticamente si no tiene tipo configurado.
Configuración de impuestos
Cada impuesto debe tener el campo Tipo de impuesto DIAN (l10n_co_tax_type_id) configurado con el código correcto: 01 (IVA), 03 (ICA), 04 (INC), 05 (ReteIVA), etc.
Configuración de productos
- Código UNSPSC o referencia interna.
- Impuesto y unidad de medida con código UNECE.
- Para exportación (tipo 02): marca y modelo obligatorios.
Certificado digital
Cargar en Ajustes > Certificados (.pem + clave privada). En demostración se usa certificado demo incluido.
Flujo de facturación
- Crear y confirmar la factura.
- El CRON EDI genera el XML, firma y envía a DIAN.
- Resultado en el chatter (aceptado, rechazado, error).
- Si aceptado: se genera AttachedDocument.
Habilitación (asíncrono)
SendTestSetAsyncretorna ZipKey → estado "Enviado".- Botón Consultar Estado DIAN ejecuta
GetStatusZip. - Si aceptado: genera AttachedDocument.
Producción (sincrónico)
SendBillSyncretorna resultado inmediato.- Botón Consultar Estado DIAN ejecuta
GetStatuspor CUFE.
Factura de exportación (tipo 02)
- Moneda: USD en Odoo, pero el XML va en COP con TRM.
- Cliente con país distinto de Colombia.
- Productos con marca y modelo configurados.
CustomizationID = "32"automático.PaymentExchangeRatecon TRM (COP/USD).
Notas crédito y débito
- Con referencia: desde botón en la factura. Requiere CUFE y estado aceptado en la factura original.
- Sin referencia: crear manualmente. Requiere periodo de facturación (fecha inicio y fin).
- Concepto de corrección obligatorio (tabla DIAN 13.2.4/13.2.5).
Importación de facturas de proveedor
Arrastrar XML o ZIP al card del diario de compras. Detecta automáticamente XMLs DIAN y extrae partner, líneas, CUFE y tipo de documento.
Eventos RADIAN
Desde factura de proveedor confirmada con CUFE:
- 030 - Acuse de recibo.
- 032 - Recibo del bien/servicio.
- 033 - Aceptación expresa, o 031 - Reclamo.
Flujo secuencial validado. Estado RADIAN en "Otra información".
PDF (Representación gráfica)
Incluye: denominación DIAN, info fiscal emisor/receptor, QR DIAN, CUFE/CUDE, mensaje de resolución, referencia NC/ND, forma de pago.
---
Copyright (C) 2025 IKU Solutions - Yan Chirino Licencia AGPL-3.0 o posterior (http://www.gnu.org/licenses/agpl).
Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.