TL;DR — Resumen Rápido

Horas extra en Aspel NOI: tasas doble y triple incorrectas, códigos CFDI P019/P020 erróneos y retención ISR mal calculada. Corrección paso a paso.

Aspel NOI muestra el mensaje “Error al calcular percepciones” cuando intentas registrar tiempo extraordinario, o el recibo de nómina CFDI se timbra con los códigos P019 y P020 en cero, o con los montos incorrectos. El cálculo de horas extra en México tiene reglas específicas que el sistema debe respetar para cumplir con la Ley Federal del Trabajo y los requisitos del SAT para el CFDI de nómina versión 1.2. Este artículo explica por qué falla el cálculo de horas extra en NOI y cómo corregirlo antes de que afecte tu proceso de timbrado.

Las horas extra en México están reguladas por los Artículos 67 y 68 de la LFT: las primeras 9 horas semanales de tiempo extraordinario se pagan al doble, y las que excedan ese límite se pagan al triple. Además, para ISR hay una exención parcial definida en la LISR. Cuando NOI no está configurado correctamente para aplicar estas reglas, el resultado es un cálculo erróneo que puede derivar en un CFDI inválido o en una retención de impuesto incorrecta.

El Error

Al intentar calcular o timbrar nómina con horas extra, Aspel NOI puede mostrar los siguientes mensajes:

  • “Error al calcular percepciones” — aparece al calcular la nómina cuando la fórmula de horas extra está mal configurada
  • “Código de percepción no válido para CFDI de nómina” — el código SAT asignado a la percepción no corresponde a los catálogos vigentes del SAT
  • “El importe exento supera el límite permitido” — la exención de ISR está calculada incorrectamente, superando el tope de 5 UMA semanal
  • “Error de validación: la clave de percepción 019 no puede tener importe en cero” — el CFDI se genera con horas extra pero sin importe en la percepción correspondiente
  • “Desbordamiento aritmético en cálculo de percepciones” — resultado fuera de rango, generalmente por una fórmula incorrecta que multiplica el salario más de lo esperado

Los escenarios más comunes donde aparece este error:

  1. Primera configuración de horas extra en una empresa que rara vez las utiliza y las percepciones P019/P020 nunca fueron configuradas
  2. Cambio de período de nómina de semanal a quincenal o mensual, donde la regla de “9 horas semanales” debe recalcularse proporcionalmente
  3. Empleados con turno diferencial cuyo salario base es distinto al salario ordinario para efectos del cálculo de horas extra
  4. Actualización de la UMA sin actualizar el tope de exención de ISR en las percepciones de horas extra
  5. Conflicto de fórmulas cuando se copió la percepción de prima dominical o de otro concepto y se modificó parcialmente

Causa del Problema

Percepciones P019 y P020 no configuradas o configuradas incorrectamente

El catálogo de percepciones de NOI debe tener dos entradas separadas para horas extra: una para las primeras 9 horas semanales (doble, código SAT 019) y otra para las horas que exceden ese límite (triple, código SAT 020). Muchas instalaciones de NOI solo tienen una percepción genérica de “horas extra” sin distinguir entre doble y triple, lo que genera un error cuando el CFDI intenta validar los códigos contra el catálogo del SAT.

Fórmula de cálculo incorrecta

La fórmula para horas extra dobles debe calcular: (salario diario ÷ horas de la jornada) × horas extra × 2. Para horas extra triples: (salario diario ÷ horas de la jornada) × horas extra × 3. Si la fórmula no está correctamente parametrizada en NOI, el resultado puede ser el doble del esperado (se aplica el factor 2 o 3 sobre una cantidad que ya incluye el salario base) o producir un error de desbordamiento.

Exención de ISR mal configurada

La LISR establece que las primeras 9 horas extra semanales están exentas de ISR hasta el equivalente a 5 veces el valor de la UMA semanal. Si el tope de exención en NOI no está actualizado con el valor de UMA del ejercicio en curso, el sistema puede calcular una exención mayor a la permitida (generando un error de validación del CFDI) o menor (retención de ISR mayor a la correcta, perjudicando al trabajador).

Conflicto entre períodos de nómina

La regla de las 9 horas semanales aplica independientemente del período de pago. Si la empresa paga quincenalmente, el límite equivalente sería 18 horas extra dobles por quincena (9 × 2 semanas). NOI no siempre realiza esta conversión automáticamente, y algunos configuradores aplican el límite de 9 horas para la quincena entera, calculando incorrectamente la proporción doble/triple.

Código CFDI desactualizado

El SAT actualiza periódicamente su catálogo de claves de percepción para el CFDI de nómina. Si NOI tiene configurado un código antiguo en la percepción de horas extra, el PAC (Proveedor Autorizado de Certificación) rechazará el timbrado por código no reconocido.

Turno diferencial y salario heterogéneo

Cuando un empleado tiene un turno diferencial que modifica su salario por hora, el salario base para calcular las horas extra puede diferir del salario ordinario registrado en NOI. Si la fórmula usa el salario ordinario en lugar del salario de la jornada efectiva, el cálculo es incorrecto.

Solución Paso a Paso

1. Respaldar la base de datos de NOI

Antes de modificar el catálogo de percepciones:

  1. Abre Aspel NOI
  2. Ve a Utilerías > Respaldo
  3. Selecciona Respaldo completo y guárdalo fuera de la carpeta de instalación
  4. Espera a que termine y verifica que el archivo de respaldo se generó

2. Verificar y crear las percepciones de horas extra

  1. Ve a Configuración > Catálogo de percepciones
  2. Busca las percepciones con código SAT 019 y 020
  3. Si no existen, crea dos nuevas percepciones:
    • Horas Extra Dobles (P019): Tipo = Percepción, Subtipo = Horas Extra, Código SAT = 019
    • Horas Extra Triples (P020): Tipo = Percepción, Subtipo = Horas Extra, Código SAT = 020
  4. Configura la fórmula de cada una (ver paso 3)
  5. Activa ambas percepciones y guarda los cambios

3. Configurar la fórmula de cálculo correcta

Para Horas Extra Dobles (P019):

  • Fórmula sugerida: (SDIARIO / HORAS_JORNADA) * HORAS_EXTRA_DOBLE * 2
  • Donde SDIARIO es el salario diario ordinario, HORAS_JORNADA es la duración de la jornada legal del trabajador y HORAS_EXTRA_DOBLE son las horas capturadas

Para Horas Extra Triples (P020):

  • Fórmula sugerida: (SDIARIO / HORAS_JORNADA) * HORAS_EXTRA_TRIPLE * 3

Nota importante: En NOI, las variables exactas dependen de la versión instalada. Consulta el manual de fórmulas de NOI o llama al soporte de Aspel para confirmar los nombres de variable correctos en tu versión.

4. Configurar la exención de ISR

  1. En la percepción P019 (Horas Extra Dobles), configura:
    • Exención: Sí, hasta el tope de 5 UMA semanal
    • El valor de la UMA 2026 es $108.57 diarios → UMA semanal = $760.00 (7 días) → Tope exento = $760.00 × 5 = $3,800.00 semanales
    • Configura el tope de exención con el valor actualizado del ejercicio en curso
  2. En la percepción P020 (Horas Extra Triples), configura:
    • Exención: No (0% exento — gravable al 100%)

5. Capturar horas extra correctamente en la nómina

Al registrar tiempo extraordinario en el período de nómina:

  1. Abre el recibo de nómina del empleado
  2. En percepciones, agrega P019 e ingresa las horas que no superan 9 a la semana
  3. Si el empleado trabajó más de 9 horas extra en la semana, agrega P020 con las horas excedentes
  4. Verifica que el sistema calcule el importe correcto antes de cerrar el recibo
  5. Genera el CFDI de prueba y revisa que aparezcan ambos códigos con sus respectivos importes exentos y gravados

6. Timbrar y validar el CFDI

  1. Una vez verificados los importes, procede al timbrado
  2. Si el PAC rechaza el CFDI, descarga el XML generado antes del rechazo
  3. Revisa los nodos <Percepcion> con clave 019 y 020 y verifica que ImporteExento e ImporteGravado sumen correctamente al TotalImporte
  4. Corrige la configuración de la percepción en NOI y retimbra

Solución Alternativa

Si necesitas timbrar con urgencia y no puedes corregir la configuración de percepciones de inmediato:

Captura manual de importes

  1. Calcula manualmente el importe de horas extra dobles y triples:
    • Horas extra dobles: (Salario diario ÷ horas de jornada) × horas extra dobles × 2
    • Horas extra triples: (Salario diario ÷ horas de jornada) × horas extra triples × 3
  2. En NOI, edita directamente el importe de la percepción (si tu versión lo permite en modo manual)
  3. Verifica que el importe exento no supere el tope de 5 UMA semanal

Ajuste mediante concepto de diferencia

Si NOI no permite la edición directa del importe:

  1. Calcula la diferencia entre el importe correcto y el que NOI calcula automáticamente
  2. Crea un concepto temporal de ajuste con el código correcto
  3. Registra la diferencia como ajuste positivo o negativo según corresponda
  4. Documenta claramente el ajuste para poder corregir la configuración antes de la siguiente nómina

Advertencia: Esta solución alternativa es temporal. Debes corregir la configuración del catálogo de percepciones antes del siguiente período para evitar que el error se repita y para garantizar que los reportes de nómina sean correctos.

Prevención

Para evitar errores en el cálculo de horas extra en Aspel NOI:

  • Configura P019 y P020 desde la instalación inicial de NOI, aunque la empresa no use horas extra regularmente — es mejor tenerlas listas que crearlas bajo presión
  • Actualiza el valor de la UMA cada enero al inicio del ejercicio fiscal, ajustando el tope de exención de ISR en P019
  • Documenta el límite semanal por período de nómina: 9 horas/semana = 18 horas/quincena = 36 horas/mes
  • Verifica las fórmulas cada vez que actualices Aspel NOI a una nueva versión, ya que las actualizaciones pueden restablecer valores predeterminados en el catálogo de percepciones
  • Realiza un cálculo de prueba con un empleado piloto antes de aplicar horas extra a toda la nómina
  • Mantén el catálogo SAT actualizado: descarga periódicamente el catálogo de claves de percepción del SAT y compáralo con el configurado en NOI
  • Capacita al personal de nómina en la distinción entre horas extra dobles y triples para que capturen correctamente las horas en cada percepción

Problemas Relacionados

Error al timbrar: “El importe de la percepción 019 no puede ser mayor al salario”

Este error del PAC aparece cuando la exención calculada supera el importe total de la percepción. Revisa la fórmula de exención en la percepción P019 — el importe exento nunca puede exceder el importe total de la percepción ni el tope de 5 UMA semanal.

Horas extra que no aparecen en el cálculo de IMSS

Las horas extra forman parte del salario variable para efectos del IMSS. Si las percepciones P019 y P020 no están marcadas como “integrables al SBC” en NOI, las horas extra no se incluirán en el Salario Base de Cotización, lo que genera un error en el cálculo de cuotas del IMSS y en los archivos SUA/IDSE.

ISR retenido incorrecto por horas extra

Si el ISR calculado no coincide con la retención esperada, verifica que: (a) el importe exento de P019 esté correcto y no supere el tope de 5 UMA semanal, y (b) que la tarifa mensual de ISR aplicada al acumulado del período sea la correcta para el nivel salarial del trabajador.

Horas extra de días de descanso obligatorio

Las horas trabajadas en días de descanso obligatorio (domingos, días festivos) no se clasifican como tiempo extraordinario — tienen una percepción diferente (prima dominical o trabajo en día de descanso). Confundir estas horas con P019/P020 genera tanto un error de cálculo como una inconsistencia en el CFDI.

Resumen

  • El error al calcular horas extra en Aspel NOI casi siempre se debe a percepciones P019/P020 no configuradas, fórmulas incorrectas o exención de ISR desactualizada
  • Las primeras 9 horas extra semanales se pagan al doble (P019); las adicionales al triple (P020)
  • La exención de ISR para horas extra dobles aplica hasta 5 UMA semanal — actualiza este tope cada enero
  • Captura las horas extra en dos percepciones separadas (P019 y P020) — NOI no separa automáticamente el bloque doble del triple
  • Verifica que los códigos 019 y 020 estén en el catálogo SAT vigente y que el CFDI incluya ImporteExento e ImporteGravado correctamente calculados
  • Las horas extra integran el SBC del IMSS — asegúrate de que las percepciones estén marcadas como integrables
  • Siempre respalda antes de modificar el catálogo de percepciones de NOI

Artículos Relacionados