Enfocado a jubilación, pensiones o haberes de retiro.
La estructura básica de un CFDI de Nómina se muestra en : Nomina de sueldo
Ejemplos de CFDI de Nómina adicionales
"NameId": "16",
"CfdiType": Facturama::CfdiType::NOMINA,
"ExpeditionPlace": "78220",
"PaymentForm": "99",
"PaymentMethod": "PUE",
"NameId" => "16",
"CfdiType" => "N",
"ExpeditionPlace" => "78220",
"PaymentForm" => "99",
"PaymentMethod" => "PUE",
"NameId": "16",
"CfdiType": "N",
"ExpeditionPlace": "78220",
"PaymentForm": "99",
"PaymentMethod": "PUE",
cfdi.setNameId(facturama.Catalogs().NameIds().get(16).getValue());
cfdi.setCfdiType( CfdiType.Nomina.getValue() );
cfdi.setExpeditionPlace("78216");
cfdi.setPaymentForm(facturama.Catalogs().PaymentForms().get(3).getValue());
cfdi.setPaymentMethod("PUE");
NameId = "16",
CfdiType = CfdiType.Nomina,
ExpeditionPlace = "78220",
PaymentForm = "99",
PaymentMethod = "PUE",
"NameId": "16",
"CfdiType": "N",
"ExpeditionPlace": "78220",
"PaymentForm": "99",
"PaymentMethod": "PUE",
"Folio": 100,
"Receiver": {
"CfdiUse": "P01",
"Name": "ULISES CUEVAS PEREZ",
"Rfc": "ROAJ850914837"
},
"Receiver" => {
"Name" => "ULISES CUEVAS PEREZ",
"CfdiUse" => "P01",
"Rfc" => "ROAJ850914837"
},
"Receiver": {
"Name": "ULISES CUEVAS PEREZ",
"CfdiUse": "P01",
"Rfc": "ROAJ850914837"
},
Receiver receiver = new Receiver();
receiver.setName("ULISES CUEVAS PEREZ");
receiver.setCfdiUse("P01");
receiver.setRfc("ROAJ850914837");
cfdi.setReceiver(receiver);
Receiver = new Receiver
{
Name = "ULISES CUEVAS PEREZ",
CfdiUse = "P01",
Rfc = "ROAJ850914837"
},
"Receiver": {
"CfdiUse": "P01",
"Name": "ULISES CUEVAS PEREZ",
"Rfc": "ROAJ850914837"
},
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
"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": "El registro del empleador",
"FromEmployerRfc": "EKU9003173C9"
},
"Employee": {
"Curp": "BADD110313HCMLNS09",
"SocialSecurityNumber": "1234567890",
"StartDateLaborRelations": "2019-01-15T13:43:59.3952019-06:00",
"ContractType": "99",
"RegimeType": "99",
"Unionized": true,
"TypeOfJourney": "01",
"EmployeeNumber": "012345672ST",
"Department": "Software and Deployments",
"Position": "Developer",
"PositionRisk": "1",
"FrequencyPayment": "01",
"Bank": "SANTANDER",
"BankAccount": "1234567890",
"FederalEntityKey": "SLP"
},
"Perceptions": {
"Details": [
{
"PerceptionType": "001",
"Code": "00500",
"Description": "Salario Diario",
"TaxedAmount": 4,
"ExemptAmount": 5
}
]
},
"Deductions": {
"Details": [
{
"DeduccionType": "006",
"Code": "002",
"Description": "Descuento por incapacidad",
"Amount": 100
},
{
"DeduccionType": "002",
"Code": "ISR",
"Description": "Impuesto Sobre la Renta",
"Amount": 20
}
]
}
}
}
"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": "El registro del empleador",
"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": "006",
"Code": "002",
"Description": "Descuento por incapacidad",
"Amount": 100
},
{
"DeduccionType": "002",
"Code": "ISR",
"Description": "Impuesto Sobre la Renta",
"Amount": 20
}
]
}
}
}
"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": "El registro del empleador",
"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": "006",
"Code": "002",
"Description": "Descuento por incapacidad",
"Amount": 100
},
{
"DeduccionType": "002",
"Code": "ISR",
"Description": "Impuesto Sobre la Renta",
"Amount": 20
}
]
}
}
}
"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": "El registro del empleador",
"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": "006",
"Code": "002",
"Description": "Descuento por incapacidad",
"Amount": 100
},
{
"DeduccionType": "002",
"Code": "ISR",
"Description": "Impuesto Sobre la Renta",
"Amount": 20
}
]
}
}
}
"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": "El registro del empleador",
"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": "006",
"Code": "002",
"Description": "Descuento por incapacidad",
"Amount": 100
},
{
"DeduccionType": "002",
"Code": "ISR",
"Description": "Impuesto Sobre la Renta",
"Amount": 20
}
]
}
}
}
"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": "El registro del empleador",
"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": "006",
"Code": "002",
"Description": "Descuento por incapacidad",
"Amount": 100
},
{
"DeduccionType": "002",
"Code": "ISR",
"Description": "Impuesto Sobre la Renta",
"Amount": 20
}
]
}
}
}
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
"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,
"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,
"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,
"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,
"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,
"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"
}
"Issuer": {
"EmployerRegistration": "B5510768108"
"FromEmployerRfc": "EKU9003173C9"
}
"Issuer": {
"EmployerRegistration": "B5510768108"
"FromEmployerRfc": "EKU9003173C9"
}
"Issuer": {
"EmployerRegistration": "B5510768108"
"FromEmployerRfc": "EKU9003173C9"
}
"Issuer": {
"EmployerRegistration": "B5510768108"
"FromEmployerRfc": "EKU9003173C9"
}
"Issuer": {
"EmployerRegistration": "B5510768108"
"FromEmployerRfc": "EKU9003173C9"
}
En este nodo se debe expresar la información adicional del contribuyente emisor del comprobante fiscal (Empleador).
"Employee": {
"Curp": "ROAJ850914837",
"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",
"FederalEntityKey": "SLP"
}
"Employee": {
"Curp": "ROAJ850914837",
"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",
"FederalEntityKey": "SLP"
}
"Employee": {
"Curp": "ROAJ850914837",
"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",
"FederalEntityKey": "SLP"
}
"Employee": {
"Curp": "ROAJ850914837",
"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",
"FederalEntityKey": "SLP"
}
"Employee": {
"Curp": "ROAJ850914837",
"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",
"FederalEntityKey": "SLP"
}
"Employee": {
"Curp": "ROAJ850914837",
"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",
"FederalEntityKey": "SLP"
}
En este nodo se debe expresar la información del contribuyente receptor (trabajador asalariado o asimilado a salarios) del comprobante.
"Perceptions": {
"Details": [
{
"PerceptionType": "039",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro en parcialidades",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"TotalASinglePayment": 66761.08,
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0
}
}
"Perceptions": {
"Details": [
{
"PerceptionType": "039",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro en parcialidades",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"TotalASinglePayment": 66761.08,
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0
}
}
"Perceptions": {
"Details": [
{
"PerceptionType": "039",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro en parcialidades",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"TotalASinglePayment": 66761.08,
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0
}
}
"Perceptions": {
"Details": [
{
"PerceptionType": "039",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro en parcialidades",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"TotalASinglePayment": 66761.08,
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0
}
}
"Perceptions": {
"Details": [
{
"PerceptionType": "039",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro en parcialidades",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"TotalASinglePayment": 66761.08,
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0
}
}
"Perceptions": {
"Details": [
{
"PerceptionType": "039",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro en parcialidades",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"TotalASinglePayment": 66761.08,
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0
}
}
En este nodo se pueden expresar las percepciones aplicables.
En este caso contiene 2 subnodos. ("Details", "Retirement")
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
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
{
"NameId": 1,
"CurrencyExchangeRate": 1,
"ExpeditionPlace": "78220",
"Folio": 100,
"CfdiType": "N",
"PaymentForm": "99",
"PaymentMethod": "PUE",
"Receiver": {
"Rfc": "ROAJ850914837",
"Name": "ULISES CUEVAS PEREZ",
"CfdiUse": "P01"
},
"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,
"Employee": {
"Curp": "ROAJ110313HCMLNS07",
"SocialSecurityNumber": "1234567890",
"StartDateLaborRelations": "2019-01-15T13:43:59.3952019-06:00",
"ContractType": "99",
"RegimeType": "99",
"Unionized": true,
"TypeOfJourney": "01",
"EmployeeNumber": "sup02",
"Department": "Software and Deployments",
"Position": "Developer",
"PositionRisk": "99",
"FrequencyPayment": "05",
"Bank": "SANTANDER",
"BankAccount": "1234567890",
"FederalEntityKey": "SLP"
},
"Perceptions": {
"Details": [
{
"PerceptionType": "039",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"TotalASinglePayment": 66761.08,
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0
}
}
}
}
}
{
"NameId": 1,
"CurrencyExchangeRate": 1,
"ExpeditionPlace": "78220",
"Folio": 100,
"CfdiType": "N",
"PaymentForm": "99",
"PaymentMethod": "PUE",
"Receiver": {
"Rfc": "ROAJ850914837",
"Name": "ULISES CUEVAS PEREZ",
"CfdiUse": "P01"
},
"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,
"Employee": {
"Curp": "ROAJ110313HCMLNS07",
"SocialSecurityNumber": "1234567890",
"StartDateLaborRelations": "2019-01-15T13:43:59.3952019-06:00",
"ContractType": "99",
"RegimeType": "99",
"Unionized": true,
"TypeOfJourney": "01",
"EmployeeNumber": "sup02",
"Department": "Software and Deployments",
"Position": "Developer",
"PositionRisk": "99",
"FrequencyPayment": "05",
"Bank": "SANTANDER",
"BankAccount": "1234567890",
"FederalEntityKey": "SLP"
},
"Perceptions": {
"Details": [
{
"PerceptionType": "044",
"Code": "Jubilaciones",
"Description": "Jubilaciones, pensiones o haberes de retiro en parcialidades",
"TaxedAmount": 0,
"ExemptAmount": 66761.08
}
],
"Retirement": {
"AccumulatedIncome": 0,
"NonAccumulatedIncome": 0,
"TotalParciality": 66761.08,
"DailyAmount" : 0
}
}
}
}
}