Nomina de sueldo 1.2 para CFDI 4.0

Los comprobantes fiscales deben emitirse por los actos o actividades que se realicen, por los ingresos que perciban
o por las retenciones de contribuciones que efectúen los contribuyentes ya sean personas físicas o personas morales.

La estructura básica de un CFDI de Nómina se muestra en esta sección
Sin embargo el CFDI de nómina se puede aplicar a conceptos adicionales al sueldo

CFDIs de Nómina adicionales

Componentes de la Nómina

Datos generales

"NameId": "16",          
"CfdiType": "N",
"ExpeditionPlace": "78240",
"PaymentMethod": "PUE",            
    
Valores: (16) donde 16 = "Recibo de Nómina" ver en la guía
El efecto del comprobante fiscal para el contribuyente emisor: (N) donde N = Nómina
Dependiendo del lenguaje del SDK se tiene una enumeración que permite colocar el valor
Moneda: ver en la guía
  • En el caso de que sea "MXN = Peso Mexicano" puede no asignarse, si es otra moneda el campo es obligatorio
Tasa de cambio de la moneda especificada:
  • Solo se asigna cuando la moneda NO es "MXN = Peso Mexicano"
Forma de pago (99 - Por definir), se debe registrar la clave de la forma de pago "99". ver en la guía
Método de pago Valores: (PPD|PUE) donde PUE = Una sola exhibición y PPD = Parcialidades ver en la guía
La moneda puede ser cualquiera del catálogo, por ejemplo el peso mexicano es MXN ver en la guía
Lugar de expedición, es representado por un Código Postal, que pertenece a una sucursal, pero toma en cuenta que:
Folio del CFDI
  • En el caso de que no se especifique o sea nulo, Facturama asigna el consecutivo

Datos del receptor

	"Receiver": {
		"Rfc": "FUNK671228PH6",
		"CfdiUse": "CN01",
		"Name": "KARLA FUENTE NOLASCO",
		"FiscalRegime": "605",
		"TaxZipCode" : "83200"
	},
    

Debe ser una persona física.
En la estructura es representado por un nodo que se coloca en el atributo Receiver
puedes ver en la documentación de la API

Se debe registrar la clave del Registro Federal de Contribuyentes del receptor (persona física) del comprobante
Se debe registrar la clave "CN01"
Se debe registrar el nombre(s), primer apellido, segundo apellido, según corresponda, del contribuyente inscrito en el RFC receptor del comprobante (trabajador asalariado o asimilado a salarios)
Se debe registrar la clave “605” Sueldos y Salarios e Ingresos Asimilados a Salarios, como régimen fiscal del contribuyente receptor del comprobante (trabajador asalariado o asimilado a salarios)
Se debe registrar el código postal del domicilio fiscal del receptor del comprobante (trabajador asalariado o asimilado a salarios)

Complemento de Nómina

"Complemento": {
    "Payroll": {
      "Type": "O",
      "PaymentDate": "2019-01-15T13:43:59.4011985-06:00",
      "InitialPaymentDate": "2019-01-15T13:43:59.4011985-06:00",
      "FinalPaymentDate": "2019-01-15T13:43:59.4011985-06:00",
      "DaysPaid": 5,
      "Issuer": {
        "EmployerRegistration": "B5510768108",
        "FromEmployerRfc": "EKU9003173C9"
      },
      "Employee": {
        "Curp": "BADD110313HCMLNS09",
        "SocialSecurityNumber": "1234567890",
        "StartDateLaborRelations": "2019-01-15T13:43:59.3952019-06:00",
        "ContractType": "01",
        "RegimeType": "02",
        "Unionized": true,
        "TypeOfJourney": "01",
        "EmployeeNumber": "012345672ST",
        "Department": "Software and Deployments",
        "Position": "Developer",
        "PositionRisk": "1",
        "FrequencyPayment": "01",
        "Bank": "SANTANDER",
        "BankAccount": "1234567890",
        "BaseSalary": 1,
        "DailySalary": 1,
        "FederalEntityKey": "SLP"
      },
      "Perceptions": {
        "Details": [
          {
            "PerceptionType": "001",
            "Code": "00500",
            "Description": "Salario Diario",
            "TaxedAmount": 4,
            "ExemptAmount": 5
          }
        ]
      },
      "Deductions": {
        "Details": [
          {
            "DeduccionType": "001",
            "Code": "IMSS",
            "Description": "Seguridad Social",
            "Amount": 4
          },
          {
            "DeduccionType": "002",
            "Code": "ISR",
            "Description": "Impuesto Sobre la Renta",
            "Amount": 2
          },
          {
            "DeduccionType": "003",
            "Code": "RETIRO",
            "Description": "Aportacion a retiro",
            "Amount": 1
          }
        ]
      },
    "OtherPayments": [{
				"EmploymentSubsidy": {
					"Amount": "10"
				},
				"OtherPaymentType": "002",
				"Code": "000",
				"Description": "Subsidio",
				"Amount": 10
			}]
  }
        

El Nodo "Payroll" que forma parte del Nodo "Complemento" es la esencia de Nómina

Las secciones que lo conforman serán detalladas a continuación


Datos generales de nómina

    "Type": "O",
    "PaymentDate": "2019-01-15T13:43:59.4011985-06:00",
    "InitialPaymentDate": "2019-01-15T13:43:59.4011985-06:00",
    "FinalPaymentDate": "2019-01-15T13:43:59.4011985-06:00",
    "DaysPaid": 5,
        
Tipo de Nómina
  • O = Nómina ordinaria
    se suele clasificar como ordinaria a la nómina que paga conceptos de manera periódica y, por ende, a la que le corresponde una periodicidad determinada, por ejemplo: Diaria, Semanal
  • E = Nómina extraordinaria
    aquella nómina que incluye conceptos que no son objeto de pago de manera periódica o habitual, por ejemplo pagos por separación, aguinaldos o bonos
Fecha de pago
la fecha en que efectivamente el empleador realizó el pago (erogación) de la nómina al trabajador
Fecha inicial del periodo de pago
Fecha final del periodo de pago
Número de días y/o la fracción de días pagados al trabajador
El valor debe ser mayor que cero, se pueden registrar hasta 36,160 días y no se incluyen los ceros a la izquierda.

Empleador

    "Issuer": {
        "EmployerRegistration": "B5510768108"        
      }

        

En este nodo se debe expresar la información adicional del contribuyente emisor del comprobante fiscal (Empleador).

Registro patronal
Se puede incorporar el registro patronal, clave de ramo - pagaduría o la que le asigne la institución de seguridad social al patrón.
Se debe ingresar cuando se cuente con él o se esté obligado conforme a otras disposiciones aplicables. Puede conformarse desde 1 hasta 20 caracteres

Empleado

			"Employee": {
				"Curp": "GAMA800912MSPRRD05",
				"SocialSecurityNumber": "92919084431",
				"PositionRisk": 1,
				"ContractType": "01",
				"RegimeType": "02",
				"Unionized": false,
				"TypeOfJourney": "01",
				"EmployeeNumber": "006",
				"Department": null,
				"Position": null,
				"FrequencyPayment": "04",
				"FederalEntityKey": "SLP",
				"DailySalary": 50.00,
				"StartDateLaborRelations": "2019-01-01"
			},
        

En este nodo se debe expresar la información del contribuyente receptor (trabajador asalariado o asimilado a salarios) del comprobante.

Clave única de registro de población
Se debe registrar la CURP del trabajador asalariado o asimilado a sueldos (receptor) del comprobante de nómina.
Las personas morales no pueden ser receptoras de un comprobante fiscal por concepto de nómina y por ende no son trabajadores, ni cuentan con CURP.
Número de seguridad social del trabajador
Fecha de inicio de la relación laboral entre el empleador y elempleado
Clave del tipo de contrato laboral que tiene el trabajador con su empleador ver catálogo
  • 01 = Contrato de trabajo por tiempo indeterminado.
Clave del régimen por la cual el empleador tiene contratado al trabajador ver catálogo
  • 02 = Sueldos
Sindicalizado
  • Se debe registrar el valor true únicamente cuando el trabajador esté asociado a un sindicato dentro de la organización en la cual presta sus servicios
  • Se debe registrar el valor false cuando el empleador realice el pago a contribuyentes asimilados a salarios, o a asalariados no sindicalizados
Clave del tipo de jornada ver catálogo
  • 01 = Diurna
Numero de empleado
Se debe registrar el número interno que le asigna el empleador a cada uno de sus empleados para su pronta identificación, puede conformarse desde 1 hasta 15 caracteres
Departamento
Se puede registrar el nombre del departamento o área a la que pertenece el trabajador a la que esta asignado, es decir, en donde desarrolla sus funciones.
Se puede asignar el nombre del puesto asignado al usuario
Riesgo del puesto ver catálogo
  • 1 = Clase 1
  • 99 = No aplica (para los que no están afiliados al IMSS)
Periodicidad de pago ver catálogo
  • 01 = Diario
Nombre clave del banco donde el empleador realiza el deposito
obligatorio en el caso de que se use el campo "BankAccount" con un valor de menos de 18 posiciónes
ver catálogo
Cuenta bancaria
Se puede registrar el número de cuenta bancaria (11 posiciones), número de teléfono celular (10 posiciones), número de tarjeta de crédito, débito o de servicios (15 o 16 posiciones), la CLABE (18 posiciones), o número de monedero electrónico, en donde el empleador realiza el depósito de la nómina al trabajador
Salario base
Se puede registrar el importe de la retribución otorgada al trabajador, que se integra por los pagos hechos en efectivo por cuota diaria, gratificaciones, percepciones, alimentación, habitación, primas, comisiones, prestaciones en especie y cualquiera otra cantidad o prestación que se entregue al trabajador por su trabajo
Salario diario integrado
Se puede registrar el importe del salario que se integra con los pagos hechos en efectivo por cuota diaria, gratificaciones, percepciones, habitación, primas, comisiones, prestaciones en especie y cualquier otra cantidad o prestación que se entregue al trabajador por su trabajo, de conformidad con el Art. 84 de la Ley Federal del Trabajo. (Se utiliza para el cálculo de las indemnizaciones).
Clave de la entidad federativa ver catálogo
Se debe registrar la clave de la entidad federativa, donde el trabajador prestó sus servicios al empleador
  • SLP = San Luis Potosí

Percepciones

			"Perceptions": {
				"Details": [{
					"PerceptionType": "046",
					"Code": "046",
					"Description": "ASIMILIADOS A SALARIOS",
					"TaxedAmount": 3621.18,
					"ExemptAmount": 0.00
				}]
			},
      

En este nodo se pueden expresar las percepciones aplicables.

La suma de los importes de los campos TotalSueldos más TotalSeparacionIndemnizacion más TotalJubilacionPensionRetiro debe ser igual a la suma de los importes de los campos TotalGravado más TotalExento

Tipo de percepción ver catálogo
Se debe registrar la clave del tipo de percepción bajo la cual se clasifica cada una de las percepciones pagadas al trabajador
  • 001 = Sueldos, Salarios Rayas y Jornales
Clave de control interno
Se debe registrar la clave de control interno que asigna el patrón a cada percepción de nómina propia de su contabilidad, puede conformarse desde 3 hasta 15 caracteres
Concepto

Se debe registrar la descripción de cada uno de los conceptos de percepción.

Se ingresa el nombre o descripción específica que dé el patrón de cada uno de los conceptos de percepción pagado al trabador que corresponda, esta descripción puede o no coincidir con la descripción del catálogo Tipo de percepción

  • 001 = Sueldos, Salarios Rayas y Jornales
  • 029 = Vales de despensa
  • 010 = Premios por puntualidad
Importe gravado
Se debe registrar el importe gravado por cada concepto de percepción
Importe exento
Se debe registrar el importe exento por cada concepto de percepción

Deducciones

"Deductions": {
    "Details": [
        {
        "DeduccionType": "001",
        "Code": "IMSS",
        "Description": "Seguridad Social",
        "Amount": 4
        },
        {
        "DeduccionType": "002",
        "Code": "ISR",
        "Description": "Impuesto Sobre la Renta",
        "Amount": 2
        },
        {
        "DeduccionType": "003",
        "Code": "RETIRO",
        "Description": "Aportacion a retiro",
        "Amount": 1
        }
    ]
}
      

En este nodo se deben expresar las deducciones aplicables

Tipo de la deducción ver catálogo
Se debe registrar la clave agrupadora que clasifica cada una de las deducciones (descuentos) del trabajador
  • 001 = Seguridad social
  • 019 = Cuotas sindicales
Clave de control interno
Se debe registrar la clave de control interno que asigna el patrón a cada deducción (descuento) de nómina propia de su contabilidad, puede conformarse desde 3 hasta 15 caracteres
Descripción del concepto de deducción Aunque la descripción no coincida textualmente con la descripción del catálogo tipo de deducción, se debe cuidar que el concepto utilizado si tenga relación y sea concordante con la descripción de dicho catálogo de la clave que corresponda.
Importe del concepto
Se debe registrar el importe de un concepto de deducción (descuento) y debe ser mayor que cero

Ejemplo completo en JSON

{
	"NameId": 16,
	"ExpeditionPlace": "78240",
	"Folio": 1,
	"CfdiType": "N",	
	"PaymentMethod": "PUE",	
	"Receiver": {
		"Rfc": "FUNK671228PH6",
		"CfdiUse": "CN01",
		"Name": "KARLA FUENTE NOLASCO",
        "FiscalRegime": "605",
        "TaxZipCode" : "83200"
	},
	"Complemento": {
		"Payroll": {
			"Type": "O",
			"DailySalary": 0.00,
			"BaseSalary": 0.00,
			"PaymentDate": "2019-09-06",
			"InitialPaymentDate": "2019-08-22",
			"FinalPaymentDate": "2019-09-06",
			"DaysPaid": 15,
			"Issuer": {
				"EmployerRegistration": "B5510768108"
			},
			"Employee": {
				"Curp": "GAMA800912MSPRRD05",
				"SocialSecurityNumber": "92919084431",
				"PositionRisk": 1,
				"ContractType": "01",
				"RegimeType": "02",
				"Unionized": false,
				"TypeOfJourney": "01",
				"EmployeeNumber": "006",
				"Department": null,
				"Position": null,
				"FrequencyPayment": "04",
				"FederalEntityKey": "SLP",
				"DailySalary": 50.00,
				"StartDateLaborRelations": "2019-01-01"
			},
			"Perceptions": {
				"Details": [{
					"PerceptionType": "046",
					"Code": "046",
					"Description": "ASIMILIADOS A SALARIOS",
					"TaxedAmount": 3621.18,
					"ExemptAmount": 0.00
				}]
			},
			"Deductions": {
				"Details": [{
					"DeduccionType": "002",
					"Code": "002",
					"Description": "ISR",
					"Amount": 272.60
				}]
			},
			"OtherPayments": [{
				"EmploymentSubsidy": {
					"Amount": "10"
				},
				"OtherPaymentType": "002",
				"Code": "000",
				"Description": "Subsidio",
				"Amount": 10
			}]
		}
	}
}