Complemento-txt Nómina v1.2 (Payroll)
This new complement must be incorporated to Solución Factible®'s txt-connector (Conector-txt v6.0) in its identifier: "Complemento".
Check out the documentation for the new connector (v6.0) here.
Complement's definition
Same as the connector file (Conector-txt v6.0) the payroll complement is divided in lines, each line representing a group of data regarding the complement.
The complement contains identifiers at the beginning of each line indicating the type of business data included in every section, the sections' order is sequential downwards and is based in the order of data the SAT has specified in its XSD technical definition, nevertheless it can be adjusted according to your needs.
The fields pertaining to each section (identifier) are separated by the character "pipe" (|, ASCII 124) and are extracted in that order, nevertheless it can be adjusted according to your needs.
The "new line" (enter, line break, EOL, or carriage return ) can be anyone used by the current operative systems: CR, LF or CR+LF.
EmisorNomina||B5510768108||
EmpleadoNomina|KAHO641101HNTLKS06|04078464789|2011-01-01|P10Y8M15D|01||01|02|0013|Sistemas|Programador|1|04|002|254136985458564558|490.22|146.47|JAL|
TotalPercepcionesNomina|5500|.......|
The complement contains the payroll's invoice data starting each line with its "identifier" marked in bold in the above example.
Identifiers and fields
Each identifier represents the start of a section that contains an specific number of fields. The different identifiers and their fields are shown next.
Some identifiers and their fields can repeat across lines within the file since business data might call for it. For instance multiple "PercepcionNomina" identifiers might exists to accommodate a complement that contains many payments.
- Complemento|nomina|Version|TipoNomina|FechaPago|FechaInicialPago|FechaFinalPago|NumDiasPagados|TotalPercepciones|
TotalDeducciones|TotalOtrosPagos| - EmisorNomina|CURP|Registropatronal|RfcPatronOrigen|
- EntidadSNCFNomina|OrigenRecurso|MontoRecursoPropio|
- EmpleadoNomina|CURP|NumSeguridadSocial|FechaInicioRelLaboral|Antiguedad|TipoContrato|Sindicalizado|TipoJornada|
TipoRegimen|NumEmpleado|Departamento|Puesto|RiesgoPuesto|PeriocidadPago|Banco|CuentaBancaria|
SalarioBaseCotApor|SalarioDiarioIntegrado|ClaveEntFed| - SubContratacionNomina|RfcLabora|PorcentajeTiempo|
- TotalPercepcionesNomina|TotalSueldos|TotalSeparacionIndemnizacion|TotalJubilacionPencionRetiro|TotalGravado|TotalExento|
- PercepcionNomina|TipoPercepcion|Clave|Concepto|ImporteGravado|ImporteExento|
- AccionesOTitulosNomina|ValorMercado|PrecioAlOtorgarse|
- HorasExtraNomina|Dias|TipoHoras|HorasExtra|ImportePagado|
- CamposDinamicosPercepcionNomina|CAMPO_1|....|
- JubilacionPensionRetiroNomina|TotalUnaExhibicion|TotalParcialidad|MontoDiario|IngresoAcumulable|IngresoNoAcumulable|
- SeparacionIndemnizacionNomina|TotalPagado|NumAñosServicio|UltimoSueldoMensOrd|IngresoAcumulable|IngresoNoAcumulable|
- TotalDeduccionesNomina|TotalOtrasDeducciones|TotalImpuestosRetenidos|
- DeduccionNomina|TipoDeduccion|Clave|Concepto|Importe|
- CamposDinamicosDeduccionNomina|CAMPO_1|....|
- OtroPagoNomina|TipoOtroPago|Clave|Concepto|Importe|
- SubsidioAlEmpleoNomina|SubsidioCausado|
- CompensacionSaldosAFavorNomina|SaldoAFavor|Año|RemanenteSalFav|
- IncapacidadNomina|DiasIncapacidad|TipoIncapacidad|ImporteMonetario|
External links
- SAT's documentation Liga SAT
Examples
Simple CFDI
Comprobante|1|A|true|||
Generales|15/07/2017 17:45:00|NA||01||601||notas|45070|
Divisa|Peso Mexicano|MXN|1|
Receptor|OSCAR KALA HAAK|KAHO641101B39|KAHO641101HNTLKS06|empresa@dominioempresa.com.mx||||
Concepto||Pago de nómina|ACT|1|6390||6390||||
Totales|6390|||890|5500|
Complemento|nomina|1.2|O|2017-07-15|2017-07-01|2017-07-15|15|5300|890|200|
EmisorNomina||B5510768108||
EmpleadoNomina|KAHO641101HNTLKS06|04078464789|2011-01-01|P10Y8M15D|01||01|02|0013|Sistemas|Programador|1|04|002|254136985458564558|490.22|146.47|JAL|
TotalPercepcionesNomina|5300|||5100|200.00|
PercepcionNomina|001|123|Sueldos Salarios Rayas y Jornales|5100|200|
TotalDeduccionesNomina|290|600|
DeduccionNomina|001|676|Seguridad social|290|
DeduccionNomina|002|582|ISR|600|
OtroPagoNomina|003|584|Viaticos|200|
Data dictionary
Complemento Nómina 1.2 (Payroll)Complement to be incorporated to the CFDI for the payroll information. |
Type | Fields | Description |
"Complemento" fields | Mandatory id | |
R | Nombre | Name required for the complement. Fixed value:"nomina". |
R | Version | Version of this complement. |
R | TipoNomina | Type of payroll, can be: O= Nómina ordinaria or E= Nómina extraordinaria. |
R | FechaPago | Payment date with format: yyyy-MM-dd, in compliance with ISO 8601. |
R | FechaInicialPago | First payment date with format: yyyy-MM-dd, in compliance with ISO 8601. |
R | FechaFinalPago | Last payment date with format: yyyy-MM-dd, in compliance with ISO 8601. |
R | NumDiasPagados | Number of days payed. |
C | TotalPercepciones | Total income. |
C | TotalDeducciones | Total discount amount. |
C | TotalOtrosPagos | Total of additional income. |
"EmisorNomina" fields | Mandatory id | |
C | CURP | Payroll issuing entity's CURP if applies. |
C | RegistroPatronal | Employer registration number (max. number of characters: 20). |
O | RfcPatronOrigen | Employer RFC when payment was performed through a third party. |
"EntidadSNCFNomina" fields | Conditional id. Required for entities adhered to the "Sistema Nacional de Coordinación Fiscal". | |
R | OrigenRecurso | Required for identifying the resources of payment origin. |
C | MontoRecursoPropio | Payment for the resources for employee's payment. |
"EmpleadoNomina" fields | Mandatory id. | |
R | CURP | Payroll recipient's CURP. |
C | NumSeguridadSocial | Worker's Social security number. |
C | FechaInicioRelLaboral | Beginning of working relationship's date with format: yyyy-MM-dd, in compliance with ISO 8601. |
C | Antigüedad | Labor seniority Ex. P10Y8M15D (10 years, 8 months, 15 days). |
R | TipoContrato | Type of contract. |
O | Sindicalizado | if worker is unionized (if omitted the worker is assumed to not being unionized). |
C | TipoJornada | Type of working hours. |
R | TipoRegimen | Worker's regime. |
R | NumEmpleado | Worker's number (max. number of digits: 15). |
O | Departamento | Worker's section or area. |
O | Puesto | Worker's position. |
O | RiesgoPuesto | worker's position risk (1,2,3,4 or 5). |
R | PeriodicidadPago | Payment frequency. |
C | Banco | Worker's bank id Ex. 110=JP Morgan, 044=Scotiabank. |
C | CuentaBancaria | Bank account or credit/debit card number, etc. |
O | SalarioBaseCotApor | Worker's remuneration if any. |
O | SalarioDiarioIntegrado | Worker's integrated daily wage. |
R | ClaveEntFed | Mexico's state id where worker labors. |
"SubContratacionNomina" fields | Conditional id. | |
R | RfcLabora | RFC of entity who outsources or subcontracts workers. |
R | PorcentajeTiempo | Time in percentage which the worker labored in a business.
Ex. if the a worker labored in business A 40% of time and in business B 60% of time then:
PorcentajeTiempo=40% PorcentajeTiempo=60% Percentages must total 100% |
"TotalPercepcionesNomina" fields | Conditional id. Mandatory if identifier:"PercepcionNomina" exists. | |
C | TotalSueldos | Total of wages. |
C | TotalSeparacionIndemnizacion | Total of compensation due to work separation. |
C | TotalJubilacionPensionRetiro | Total of retirement and pension income. |
R | TotalGravado | Total of taxed income. |
R | TotalExento | Total of tax free income. |
"PercepcionNomina" fields | Conditional id. | |
R | TipoPercepcion | Type of income's id Ex.001=wage, salary, etc, or 010=punctuality bonus. |
R | Clave | The id of the income recorded in the accounting records of the business (min number of digits: 3, max number of digits:15). |
R | Concepto | Income description |
R | ImporteGravado | Taxed amount of the income. |
R | ImporteExento | Tax free amount of the income. |
"AccionesOTitulosNomina" fields | Conditional id. Required for income derived from the acquisition of shares or titles | |
R | ValorMercado | Market value of the share or title. |
R | PrecioAlOtorgarse | Established price for the share or title. |
"HorasExtraNomina" fields | Optional id. | |
R | Dias | Number of days in which the worker labored extra hours. |
R | TipoHoras | Type of payment for the extra hours. (01=double, 02=triple or 03=simple payment) |
R | HorasExtra | Number of extra hours labored. |
R | ImportePagado | Total income for the extra hours. |
"JubilacionPensionRetiroNomina" fields | Optional id. | |
C | TotalUnaExhibicion | Total income when performed in one single payment. If specified the fields "MontoDiario" and "TotalParcialidad" should not |
C | TotalParcialidad | Income amount payed in installments. If specified the field "MontoDiario" must be specified and the field "TotalUnaExhibicion" must not. |
C | MontoDiario | Daily income by pensions or retirement performed in installments. |
R | IngresoAcumulable | Taxable income amount. |
R | IngresoNoAcumulable | Non-taxable income amount. |
"SeparacionIndemnizacionNomina" fields | Optional id. | |
R | TotalPagado | Total income payed for separation's compensation. |
R | NumAñosServicio | Number of laboring years. If the worker work for less than 6 months the value will be "0". If the worker labored for more than 6 months regardless of the years it is taken as a full year Ex.(2 years and 7 months=3 years). |
R | UltimoSueldoMensOrd | Last regular monthly salary. |
R | IngresoAcumulable | Taxable income amount. |
R | IngresoNoAcumulable | Non-taxable income amount. |
"TotalDeduccionesNomina" fields | Conditional id. | |
C | TotalOtrasDeducciones | Total of discounts where the discount's id is different to "002", if any. |
C | TotalImpuestosRetenidos | Total of discounts where the discount's id is "002", if present. |
"DeduccionNomina" fields | Optional id. | |
R | TipoDeduccion | Discount's id. Ex. 001 (social security), 019 (union fee), etc |
R | Clave | The id of the discount recorded in the accounting records of the business (min number of digits: 3, max number of digits:15). |
R | Concepto | Description of the discount. |
R | Importe | Amount of the discount. |
"OtroPagoNomina" fields | Optional id. | |
R | TipoOtroPago | "Other income"'s id when different to (001, 002, 003, and 004). Value=999 |
R | Clave | The id of the "other income" recorded in the accounting records of the business (min number of digits: 3, max number of digits:15). |
R | Concepto | "Other income" description. |
R | Importe | Amount for the "other income". |
"SubsidioAlEmpleoNomina" fields | Mandatory id. | |
R | SubsidioCausado | Worker's subsidy in compliance to the subsidy table published by the SAT here. |
"CompensacionSaldosAFavorNomina" fields | Optional id. | |
R | SaldoAFavor | Income for credit balance for the current working period (year). |
R | Año | Past work period's year for entitled credit balance. |
R | RemanenteSalFav | Remaining balance amount of past work periods. |
"IncapacidadNomina" fields | Optional id. | |
R | DiasIncapacidad | Number of days the worker was absent due to disability. |
R | TipoIncapacidad | Disability's id Ex. 03 (Motherhood). |
R | ImporteMonetario | disability's income amount. |
- R= Required
- C= Conditional
- O= Optional