Inicio / Blog / Tutoriales / Errores nómina electrónica DIAN
TutorialesColombia

Siete errores frecuentes en nómina electrónica DIAN en 2026

Cuatro años después de la obligatoriedad, las PYMEs colombianas siguen perdiendo deducibilidad sobre costos laborales porque transmiten mal el DSNE.
Siete errores, cada uno con cifras reales y un cierre concreto en Odoo.

Sergei Filatov
Sergei FilatovFounder · data-metrics.pro · 27 may 2026
◷ 11 min de lectura

Resumen en un minuto

Después de cuatro años de nómina electrónica obligatoria, las PYMEs colombianas siguen perdiendo hasta el 15 % anual de sus costos laborales como deducción en renta — no porque no paguen el salario, sino porque transmiten mal el XML al DIAN. Aquí van los siete errores que encontramos en una de cada dos auditorías de DSNE.

El Documento Soporte de Nómina Electrónica (DSNE) no es otro papel más. Es el puente principal entre PILA, la retención en la fuente (formulario 350) y la declaración de renta. Si el DSNE está mal armado, la fiscalización del DIAN puede rechazar el costo bajo el artículo 771-2 del Estatuto Tributario. Y desde 2026 el cruce DSNE / PILA / RUT del trabajador es automático: lo que antes era un sample manual del auditor, hoy lo marca un algoritmo en segundos.

  • El DSNE debe transmitirse al DIAN dentro de los primeros 10 días calendario del mes siguiente al período de nómina.
  • Atrasarse pone en riesgo la deducibilidad de costos laborales (Art. 771-2 ET).
  • El DIAN aclaró en abril de 2026: la transmisión extemporánea es técnicamente posible, pero no garantiza la deducción en fiscalización.
  • Los siete errores: ventana de 10 días, ajustes por duplicado, conceptos mal clasificados, regímenes especiales sin cubrir, CUNE inválido, NIT/cédula desactualizados, generación sin transmisión.
  • La salida: alertas cron, tabla cerrada de conceptos, integración Odoo HR ↔ l10n_co_nomina_electronica y un mini-audit mensual.

Qué es el DSNE y por qué cambió todo en 2026

La Resolución 013 de 2021 del DIAN formalizó la nómina electrónica para todo empleador en Colombia. El roll-out fue por olas según tamaño: arrancó con empresas de +250 trabajadores en septiembre de 2021 y cerró cubriendo desde un trabajador a finales de 2023. En 2026 el DSNE es obligatorio para cualquier empleador formal, sin importar el tamaño.

La idea es simple: el DIAN quiere ver las mismas cifras en tres lugares — el DSNE (lo declarado como costo laboral), la PILA (lo pagado a ARL, EPS, AFP y parafiscales) y la declaración de renta (lo deducido por la empresa). Cualquier diferencia entre las tres fuentes prende una alerta automática en fiscalización.

Técnicamente, el flujo es éste: el ERP genera el XML según el Anexo Técnico Nómina Electrónica v 1.0 (extensión UBL del DIAN), lo firma con el certificado digital cualificado y lo transmite al Servicio Electrónico DIAN. Si el XML pasa validación, el DIAN devuelve el CUNE (Código Único de Nómina Electrónica), un hash SHA-384 sobre los campos clave. El CUNE es la única prueba real de la transmisión — sin CUNE, el documento no existe para el DIAN.

!
Lo que cambió en 2026. El cruce DSNE / PILA / RUT pasó de revisión muestral a algoritmo automático. Las PYMEs que toleraban un margen del 5-10 % entre PILA y DSNE están viendo cartas de fiscalización en menos de 60 días desde el cierre del período. No hay tiempo para reconciliar a fin de año.

Los siete errores que vemos en cada auditoría DSNE

Cada uno se describe con la cifra real de fuga y el paso concreto para cerrarlo en Odoo. No están ordenados por gravedad sino por frecuencia: el #7 es el más peligroso y lo guardamos para el final.

#1. Transmisión fuera de la ventana de 10 días

Período de nómina cerrado el 30 de noviembre → el DSNE debe transmitirse antes del 10 de diciembre. Muchos contadores cierran el mes el 18 o 20 porque siempre lo hicieron así con la PILA, atrasándose una semana o dos sobre el plazo del DSNE.

PYME de 50 trabajadores con salario promedio de 2.5 M COP/mes → costo laboral anual ≈ 1.800 M COP. A una tarifa efectiva del 35 % en renta, la pérdida potencial de deducibilidad ronda los 630 M COP/año (≈ USD 148 k).

El INCP publicó en abril de 2026 una aclaración del DIAN: la transmisión extemporánea es técnicamente admisible, pero la fiscalización conserva el derecho de rechazar la deducibilidad. La ventana de 10 días no es una soft guideline; es un riesgo financiero directo sobre el flujo de caja.

Cómo cerrarlo en Odoo: un ir.cron con alerta cinco días antes del cutoff. Si el DSNE no está transmitido al día −3, dispara un mensaje a Slack o WhatsApp del CFO y crea una tarea en el CRM. Nuestro framework de auditoría Odoo incluye este check por defecto.

#2. Ajustes vía duplicado en lugar de Documento de Ajuste

El contador detecta un error en un DSNE ya transmitido — por ejemplo, una bonificación habitual mal valorada. En vez de generar el Documento Soporte de Ajuste de Nómina Electrónica (un tipo de documento aparte que referencia el CUNE original con un código de causal), emite un DSNE nuevo por la misma suma.

Resultado: el DIAN queda con dos documentos en conflicto para el mismo trabajador y mismo período. La PILA muestra una tercera cifra. El cruce automático marca el caso para fiscalización y la empresa entra a explicar de qué se trata el desajuste sin tener cómo defenderlo.

Cómo cerrarlo: un workflow en Odoo para nómina con un botón Corrección explícito que genere el Documento de Ajuste con referencia explícita al CUNE original y al causal (cod. 1 = corrección, cod. 2 = anulación). Bloquear la duplicación a nivel de modelo ORM evita la mayoría de errores antes de la transmisión.

#3. Conceptos de devengo y deducción mal clasificados

El DIAN maneja una tabla cerrada de conceptos en el Anexo Técnico (tablas 5.1.1 para devengos, 5.1.2 para deducciones). Los desaciertos típicos:

  • Auxilio de transporte (código 102, exento) se marca como otro auxilio (código 156, gravable).
  • Prima de servicios (código 201, legal) se confunde con prima extralegal (código 202, convencional).
  • Bonificación habitual vs. ocasional — cambia la retención en la fuente de 35 % a 0 %.
  • Vacaciones disfrutadas vs. compensadas en dinero — códigos distintos, bases distintas.

Una mala clasificación → declaración 350 inconsistente → riesgo de auditoría y devolución de IVA retrasada. El daño no es inmediato: aparece cuando la DIAN cruza el dato dos o tres meses después y la tesorería ya gastó la plata.

Cómo cerrarlo: una tabla de mapeo concept_id → dian_code validada por unit-test en cada deploy del módulo l10n_co. El auditor toma un sample de 10 trabajadores por trimestre y los confronta contra el Anexo Técnico.

#4. Regímenes especiales no cubiertos

Muchos contadores asumen que la nómina electrónica solo aplica a trabajadores normales con contrato laboral a término indefinido. La realidad es que el DSNE cubre:

  • Aprendices SENA en etapa lectiva (cotizan ARL, reciben cuota de sostenimiento por debajo del SMMLV).
  • Contratistas con beneficios accesorios pagados por planilla (alimentación, transporte, pólizas).
  • Pensionados de la empresa cuando reciben pagos directos desde la empresa.
  • Trabajadores extranjeros con cédula de extranjería (CE), PEP o salvoconducto.

Cómo cerrarlo: auditar la HR-base — toda persona que recibe pagos regulares debe tener un employee_category explícito mapeado a la obligatoriedad de DSNE. Cualquier categoría sin justificación se marca para revisión.

#5. CUNE inválido tras modificación manual del XML

El CUNE se genera como SHA-384 de la concatenación de los campos: NumNE + FecNE + HorNE + NitOFE + DocEmp + ValDev + ValDed + ValTotPago + ClaveTecnicaNominaSi cualquiera de esos campos cambia después de generado el hash, el CUNE deja de validar y el DIAN rechaza el documento.

Escenario habitual: la empresa emite el DSNE, descubre un typo en la cédula del trabajador, el contador corrige a mano el XML antes de enviarlo. Tras la transmisión, el DIAN devuelve un rechazo con código ZR01 (CUNE no concuerda) y el documento hay que regenerarlo desde cero.

Cómo cerrarlo: XML en readonly luego de generar el CUNE. Cualquier modificación dispara: regenerar CUNE → re-firmar con el certificado digital → nueva transmisión. En Odoo, el modelo nomina.electronica con campos bloqueados y un _check_company_auto obligatorio. Nada de arreglarlo en el XML a mano.

#6. NIT del empleador o cédula del trabajador desactualizados

La empresa cambia de razón social → actualiza el RUT en el DIAN → pero el módulo HR sigue emitiendo el DSNE con los datos viejos del empleador. O el trabajador nuevo tiene una cédula con typo (ocho dígitos en vez de diez) capturado en Odoo como pasaporte por defecto, y el DIAN lo rechaza al cruzarlo contra la Registraduría Nacional.

Cómo cerrarlo:

  • Validación regex de la cédula por tipo de documento (CC: 8-10 dígitos, CE: 6-10, pasaporte: alfanumérico).
  • Cron mensual: jala el RUT del empleador desde el web-service del DIAN, lo compara con el master en Odoo y alerta si hay divergencia.
  • Para extranjeros, un campo explícito tipo_documento con selección obligatoria (CE, pasaporte, PEP, salvoconducto).

#7. El sistema genera la boleta de pago en PDF pero no transmite el XML

El más peligroso y el más frecuente. El ERP genera el PDF para el trabajador, lo envía por correo y lo archiva en la empresa. Todos creen que el DSNE viajó al DIAN. Una verificación rápida demuestra: nunca hubo transmisión.

Caso anónimo: PYME del sector de servicios profesionales, 75 trabajadores. Nuestra auditoría descubrió que durante 14 meses consecutivos emitían el PDF de la nómina al empleado, pero el DIAN nunca recibió un solo XML. Causa: el módulo l10n_co_nomina_electronica estaba instalado pero no activado en HR settings, y nadie lo notó porque los pagos salían por banco, los PDFs llegaban al trabajador y ningún reclamo formal lo hizo evidente. La pérdida potencial de deducibilidad sobre 14 meses de costos laborales fue de aproximadamente 2.100 M COP (≈ USD 493 k).

Cómo detectarlo: entrar al portal del DIAN → sección Consulta de DSNE → lista de documentos transmitidos por período. Cruzar contra la nómina contable del HR. Cualquier diferencia mayor a cero es una bomba que hay que desactivar de inmediato.

!
El silencio no es señal de éxito. Que el trabajador reciba el PDF no significa que el DIAN haya recibido el XML. Son dos procesos independientes. La única prueba válida es el CUNE devuelto por el Servicio Electrónico DIAN; cualquier otra cosa es asumir.

Cuándo aplica este angle — y cuándo no

No todo el mundo necesita un audit de DSNE mañana. La lista corta para decidir:

Revísalo con urgencia si:

  • Tienes Odoo HR instalado pero no estás seguro de si el módulo l10n_co_nomina_electronica está activado.
  • El contador usa software externo de nómina (Defontana, Siigo, World Office) sin integración con tu ERP.
  • Tienes más de 10 trabajadores y un riesgo potencial de deducibilidad superior a 50 M COP/año.
  • Los últimos tres años no tuviste auditoría externa de compliance del DSNE.

No es tu caso si:

  • Eres persona natural sin trabajadores (no hay obligación bajo la Resolución 013/2021).
  • Trabajas con un PSE (Proveedor de Servicios Electrónicos) certificado, con SLA mensual de tasa de aceptación de CUNE y tiempo de transmisión.
  • Ya tienes un BI dashboard con métricas mensuales: tiempo de transmisión por período, tasa de aceptación de CUNE, conceptos rechazados, porcentaje de matching PILA-vs-DSNE.

Checklist accionable: qué hacer esta semana

  • Entrar al micrositio del DIAN → sección Consulta DSNE → verificar la fecha del último documento transmitido.
  • Descargar el XML del último mes y validar el CUNE manualmente con una calculadora SHA-384.
  • Cruzar cinco trabajadores: total DSNE = total de la nómina contable para el período.
  • Programar el calendar recurrente: cierre de nómina + cinco días de buffer antes del cutoff DIAN, con alerta al CFO.
  • Auditar conceptos contra el Anexo Técnico v 1.0 — sample de 10 trabajadores de categorías distintas.
i
Si quieres acortar la curva, descarga el checklist DIAN Nómina Electrónica 2026: 23-point audit (PDF, 14 páginas con screenshots del portal DIAN y los códigos del Anexo Técnico).

Qué sigue

Si reconociste al menos dos de los siete errores en tu proceso, ya tienes una fuga anual mínima de 3 M a 15 M COP. Una auditoría de nómina electrónica toma cinco días hábiles, cubre los últimos 12 meses transmitidos y te entrega un plan de acción concreto por cada hallazgo.

Material relacionado: Odoo en Colombia: localización l10n_co completa · DIAN 2026: timeline completo de cambios · Rescate de proyectos Odoo Colombia · Auditoría Odoo: nuestro framework · Implementación Odoo Colombia desde cero.

Preguntas frecuentes

¿Qué hacer con los duplicados de DSNE que ya están en el DIAN?

Generar un Documento Soporte de Ajuste con causal de anulación (cod. 2) sobre cada duplicado. El DSNE original se mantiene; los duplicados se cancelan.

Hazlo dentro de los 10 días siguientes a detectarlo. Si no, queda un rastro de auditoría con divergencia y el caso se marca automáticamente para fiscalización.

Me atrasé en la ventana de 10 días — ¿perdí la deducibilidad para siempre?

No automáticamente. La aclaración INCP-DIAN de abril de 2026 dice que la transmisión extemporánea es técnicamente admisible, pero el DIAN conserva el derecho de rechazar la deducibilidad en fiscalización bajo el Art. 771-2 ET.

En la práctica: cada caso atrasado entra a un pool de revisión con criterio del fiscalizador. No hay garantía. Transmite en plazo, siempre.

Aprendices SENA con cuota de sostenimiento, ¿requieren DSNE?

Sí. Cualquier pago a una persona física en relación laboral o conexa obliga DSNE. Etapa lectiva y productiva quedan cubiertas por igual.

¿Cuánto cuesta arreglar el proceso para que cumpla compliance en Odoo?

Audit (cinco días hábiles): 5 M-15 M COP. Activación y configuración de l10n_co_nomina_electronica + capacitación del equipo HR + integración con un PSE: 20 M-60 M COP.

La sanción evitable llega al 33-35 % de los costos laborales anuales. El ROI suele ser inferior a dos meses.

¿PILA y DSNE deben coincidir al 100 %?

Idealmente, sí. Diferencias superiores al 5 % caen automáticamente en el red-flag pool del DIAN y van a fiscalización prioritaria.

Una conciliación mensual es obligatoria para cualquier PYME con más de 10 trabajadores. No la dejes para fin de año.

¿Qué software cumple sin parches ni workarounds raros?

Las soluciones integradas nativas funcionan: Odoo + l10n_co_nomina_electronica + PSE certificado. También sirven los software locales certificados (World Office, Siigo, Alegra con módulo de nómina).

Excel + carga manual al portal del DIAN, con más de 20 trabajadores, es un riesgo que no compensa el ahorro.

¿Cómo sé si mi módulo l10n_co_nomina_electronica está activado realmente?

En Odoo, ve a Aplicaciones → busca l10n_co_nomina_electronica. Si dice Instalar, no está activo. Si dice Actualizar, está activo pero podría requerir migración.

Después, ve a Configuración → Recursos Humanos → Nómina Electrónica. Si no aparece el menú, el módulo está instalado pero las credenciales DIAN no se cargaron — y nada va a transmitirse.