Saltar a contenido

Nómina

Liga para timbrar nómina

Depende de la versión de CFDI que esté timbrando

https://facturas.easysmart.com.mx/cgi-bin/externos/timbrarGR40

https://facturas.easysmart.com.mx/cgi-bin/externos/timbrarGR33

Layout para nómina

Layout Estándar Nómina 4.0

Símbolo de gato # en layout

Esto es un comentario, una línea de ejemplo para que la puedan incluir, "sin el #", no se deben incluir en el layout real.

Cálculo de Antigüedad

Existen 2 algoritmos para obtener la antigüedad, ambos casos utilice librerías de su entorno de desarrollo para obtener los valores necesarios, a forma de pseudo código se utilizarán estas funciones

  • Diferencia_en_dias : Calcula el número de días calendario entre 2 fecha (incluye años bisiestos)
  • Diferencia_AMD : Diferencia de años, meses y días
  • Suma_Dias : Regresa una nueva fecha en base a sumar N cantidad de días a una fecha dada
  • Dias_en_Mes : Indica cuantos días tiene un mes (incluye años bisiestos)

Semanas Esta es la forma más segura y sencilla de reportar la antigüedad, funciona independientemente del PAC


Dias = Diferencia_en_dias(año_ingreso,mes_ingreso,dia_ingreso,año_pago,mes_pago,dia_pago)
Semanas = integer((Dias + 1) / 7)

Años, Meses y Días Este algoritmo cambia dependiendo de los PAC, aunque dicen que está homologado, no me parece a mí. Este es el algoritmo para el nuevo PAC con CFDI 3.3


(Años,Meses,Días) = Diferencia_AMD(año_ingreso,mes_ingreso,dia_ingreso,año_pago,mes_pago,dia_pago)
Días++;
if (Años > 0) {
   if (Meses>0) {
      Antigüedad = P{Años}Y{Meses}M{Días}D
   } else {
      Antigüedad = P{Años}Y{Días}D
   }
} else {
   Dias = Diferencia_en_dias(año_ingreso,mes_ingreso,dia_ingreso,año_pago,mes_pago,dia_pago)
   Semanas = integer((Dias + 1) / 7)
   Antigüedad = = P{Semanas}W
}

Nota adicional

Adicionalmente el SAT dice que si la antigüedad es menor a un año se utilice la representación en semanas. Y si supera el año, es opcional cualquiera de los 2 métodos

Reglas a considerar

  • Tipo Contrato < 09
    • Registro patronal es obligatorio
    • Campos obligatorios: Número de seguridad social, Antigüedad, Salario Integrado, Salario Cotización, Fecha Alta, Clave de Riesgo
  • Tipo Contrato > 08
    • No se debe enviar registro patronal
    • Debe eliminar los valores : Número de seguridad social, Antigüedad, Salario Integrado, Salario Cotización, Fecha Alta, Clave de Riesgo

Ejemplo general

EMPRESA:EXTERNOS|testext452|EKU9003173C9|
COMPROBANTE:4.0|NOMX|393254|03/03/2023|||4961.31|59.20|MXN|1|4902.11|N|PUE|20200||01
PDF:Aguascalientes, Ags|V9633|03/03/2023|Recibo nómina
RESPUESTA:HTML
#DEBUG:nomina
RECEPTOR:PERH650201NR2|HANS MANUEL PEYROT RAAB|||CN01||20218|605
RECEPTOR_DIRECCION:La calle|1000||La colonia|20000|Aguascalientes|Aguascalientes|Aguascalientes|México
LINEA:84111505||1|ACT||Pago de nómina|4961.31|4961.31|59.20|01
VERSION_NOMINA:1.2
#ENTIDAD_SNCF:IM|500
SUBCONTRATACION:MSO0206067S5|50
SUBCONTRATACION:PERH650201NR2|50
EMPLEADO:Y4529887103|12345|PERH650201HVZYBN07|02|87584578||AGU|Sí
EMP_FECHAS:2023-03-03|2023-03-01|2023-03-30|15|2014-01-07|P9Y2M24D|30.42|8|300
EMP_INFO:Sistemas|0021234567|002|Ingeniero|01|01|05|1
EMP_SALARIO:40|45
PERCEPCION:001|000|Sueldo|2284.88|0
PERCEPCION:045|000|Sueldo|100|0
PAGO_ACCIONES:42|38
PERCEPCION:019|000|Vales|100|0
HORASEXTRA:01|03|1|30
HORASEXTRA:01|01|2|20
HORASEXTRA:01|02|3|50
PERCEPCION:039|000|Jubilacion|1000|0
PERCEPCION:014|000|Subsidio incapacidad|1200|0
TOTAL_PERCEPCIONES:4684.88|0|3684.88||1000
JUBILACION_PENSION:1000|||500|500
DEDUCCION:001|000|IMSS|59.20|0
TOTAL_DEDUCCIONES:||59.20|
OTRO_PAGO:002|000|Subsidio empleo pagado|276.43
SUBSIDIO_EMPLEO:276.43
INCAPACIDAD:01|01|600
INCAPACIDAD:01|02|600
TOTALES_NOMINA:O|4684.88|59.20|276.43
LEYENDA_LEGAL:
Texto con la leyenda legal del recibo
FIN_LEYENDA_LEGAL:
FIN:

Continuar a: Facturar / Notas de crédito
Continuar a : Generar recibos de nómina
Continuar a : Documentos de Pago
Continuar a : Subir Archivo Batch para escuelas
Continuar a : Retenciones y Pagos

Continuar a : Cancelaciones