1
|
|
|
{'Certificado': '', |
2
|
|
|
'CfdiRelacionados': [{'CfdiRelacionado': ['F4F09AEF-57F2-4BE0-A828-87D1A80ED61C'], |
3
|
|
|
'TipoRelacion': Code('09', 'Factura generada por pagos diferidos')}], |
4
|
|
|
'Complemento': {'Nomina': {'Deducciones': {'Deduccion': [{'Clave': 'XXX', |
5
|
|
|
'Concepto': 'Deduccion ' |
6
|
|
|
'Semanal', |
7
|
|
|
'Importe': Decimal('10.00'), |
8
|
|
|
'TipoDeduccion': Code('001', 'Seguridad social')}, |
9
|
|
|
{'Clave': 'YYY', |
10
|
|
|
'Concepto': 'Deduccion ' |
11
|
|
|
'Semanal', |
12
|
|
|
'Importe': Decimal('10.00'), |
13
|
|
|
'TipoDeduccion': Code('100', 'Ajuste en Viáticos exentos')}], |
14
|
|
|
'TotalImpuestosRetenidos': Decimal('123.45'), |
15
|
|
|
'TotalOtrasDeducciones': Decimal('123.45')}, |
16
|
|
|
'Emisor': {'Curp': 'OAAJ840102HJCVRN00', |
17
|
|
|
'EntidadSNCF': {'MontoRecursoPropio': Decimal('123.45'), |
18
|
|
|
'OrigenRecurso': Code('IP', 'Ingresos propios')}, |
19
|
|
|
'RegistroPatronal': 'E23-12345-12-1', |
20
|
|
|
'RfcPatronOrigen': 'AAA010101AAA'}, |
21
|
|
|
'FechaFinalPago': datetime.date(2016, 10, 15), |
22
|
|
|
'FechaInicialPago': datetime.date(2016, 10, 1), |
23
|
|
|
'FechaPago': datetime.date(2016, 10, 15), |
24
|
|
|
'Incapacidades': [{'DiasIncapacidad': 1, |
25
|
|
|
'ImporteMonetario': Decimal('22.45'), |
26
|
|
|
'TipoIncapacidad': Code('01', 'Riesgo de trabajo')}, |
27
|
|
|
{'DiasIncapacidad': 2, |
28
|
|
|
'ImporteMonetario': Decimal('22.45'), |
29
|
|
|
'TipoIncapacidad': Code('02', 'Enfermedad en general')}], |
30
|
|
|
'NumDiasPagados': Decimal('15'), |
31
|
|
|
'OtrosPagos': [{'Clave': '003', |
32
|
|
|
'CompensacionSaldosAFavor': {'Año': 2016, |
33
|
|
|
'RemanenteSalFav': Decimal('1234.56'), |
34
|
|
|
'SaldoAFavor': Decimal('12345.67')}, |
35
|
|
|
'Concepto': 'Otro pago 111', |
36
|
|
|
'Importe': Decimal('1234.56'), |
37
|
|
|
'SubsidioAlEmpleo': Decimal('1234.56'), |
38
|
|
|
'TipoOtroPago': Code('001', 'Reintegro de ISR pagado en exceso (siempre que no haya sido enterado al SAT)')}, |
39
|
|
|
{'Clave': '003', |
40
|
|
|
'CompensacionSaldosAFavor': {'Año': 2016, |
41
|
|
|
'RemanenteSalFav': Decimal('123.45'), |
42
|
|
|
'SaldoAFavor': Decimal('123.45')}, |
43
|
|
|
'Concepto': 'Otro pago 222', |
44
|
|
|
'Importe': Decimal('1234.56'), |
45
|
|
|
'SubsidioAlEmpleo': Decimal('1234.56'), |
46
|
|
|
'TipoOtroPago': Code('002', 'Subsidio para el empleo (efectivamente entregado al trabajador)')}], |
47
|
|
|
'Percepciones': {'JubilacionPensionRetiro': {'IngresoAcumulable': Decimal('223.45'), |
48
|
|
|
'IngresoNoAcumulable': Decimal('223.45'), |
49
|
|
|
'MontoDiario': Decimal('223.45'), |
50
|
|
|
'TotalParcialidad': Decimal('223.45'), |
51
|
|
|
'TotalUnaExhibicion': Decimal('223.45')}, |
52
|
|
|
'Percepcion': [{'AccionesOTitulos': {'PrecioAlOtorgarse': Decimal('123.45'), |
53
|
|
|
'ValorMercado': Decimal('12345.67')}, |
54
|
|
|
'Clave': 'AAA', |
55
|
|
|
'Concepto': 'Sueldo ' |
56
|
|
|
'Regular', |
57
|
|
|
'HorasExtra': [{'Dias': 2, |
58
|
|
|
'HorasExtra': 8, |
59
|
|
|
'ImportePagado': Decimal('228.45'), |
60
|
|
|
'TipoHoras': Code('01', 'Dobles')}, |
61
|
|
|
{'Dias': 2, |
62
|
|
|
'HorasExtra': 8, |
63
|
|
|
'ImportePagado': Decimal('228.45'), |
64
|
|
|
'TipoHoras': Code('02', 'Triples')}], |
65
|
|
|
'ImporteExento': Decimal('90.00'), |
66
|
|
|
'ImporteGravado': Decimal('89.00'), |
67
|
|
|
'TipoPercepcion': Code('001', 'Sueldos, Salarios Rayas y Jornales')}, |
68
|
|
|
{'Clave': 'BBB', |
69
|
|
|
'Concepto': 'Sueldo ' |
70
|
|
|
'Regular', |
71
|
|
|
'HorasExtra': [{'Dias': 2, |
72
|
|
|
'HorasExtra': 8, |
73
|
|
|
'ImportePagado': Decimal('288.45'), |
74
|
|
|
'TipoHoras': Code('01', 'Dobles')}, |
75
|
|
|
{'Dias': 2, |
76
|
|
|
'HorasExtra': 8, |
77
|
|
|
'ImportePagado': Decimal('288.45'), |
78
|
|
|
'TipoHoras': Code('03', 'Simples')}], |
79
|
|
|
'ImporteExento': Decimal('90.00'), |
80
|
|
|
'ImporteGravado': Decimal('89.00'), |
81
|
|
|
'TipoPercepcion': Code('005', 'Fondo de Ahorro')}], |
82
|
|
|
'SeparacionIndemnizacion': {'IngresoAcumulable': Decimal('323.45'), |
83
|
|
|
'IngresoNoAcumulable': Decimal('323.45'), |
84
|
|
|
'NumAñosServicio': 7, |
85
|
|
|
'TotalPagado': Decimal('323.45'), |
86
|
|
|
'UltimoSueldoMensOrd': Decimal('323.45')}, |
87
|
|
|
'TotalExento': Decimal('123.45'), |
88
|
|
|
'TotalGravado': Decimal('123.45'), |
89
|
|
|
'TotalJubilacionPensionRetiro': Decimal('123.45'), |
90
|
|
|
'TotalSeparacionIndemnizacion': Decimal('123.45'), |
91
|
|
|
'TotalSueldos': Decimal('123.45')}, |
92
|
|
|
'Receptor': {'Antigüedad': 'P3Y2M23D', |
93
|
|
|
'Banco': Code('002', 'BANAMEX'), |
94
|
|
|
'ClaveEntFed': Code('AGU', 'Aguascalientes'), |
95
|
|
|
'CuentaBancaria': 1234567890, |
96
|
|
|
'Curp': 'OAAJ840102HJCVRN00', |
97
|
|
|
'Departamento': '001', |
98
|
|
|
'FechaInicioRelLaboral': datetime.date(2013, 4, 11), |
99
|
|
|
'NumEmpleado': '001', |
100
|
|
|
'NumSeguridadSocial': '123456789012345', |
101
|
|
|
'PeriodicidadPago': Code('04', 'Quincenal'), |
102
|
|
|
'Puesto': 'Programador', |
103
|
|
|
'RiesgoPuesto': Code('3', 'Clase III'), |
104
|
|
|
'SalarioBaseCotApor': Decimal('123.45'), |
105
|
|
|
'SalarioDiarioIntegrado': Decimal('123.45'), |
106
|
|
|
'Sindicalizado': 'Sí', |
107
|
|
|
'SubContratacion': [{'PorcentajeTiempo': Decimal('23.45'), |
108
|
|
|
'RfcLabora': 'AAA010101AAA'}, |
109
|
|
|
{'PorcentajeTiempo': Decimal('13.45'), |
110
|
|
|
'RfcLabora': 'BBB010101AAA'}], |
111
|
|
|
'TipoContrato': Code('01', 'Contrato de trabajo por tiempo indeterminado'), |
112
|
|
|
'TipoJornada': Code('02', 'Nocturna'), |
113
|
|
|
'TipoRegimen': Code('03', 'Jubilados')}, |
114
|
|
|
'TipoNomina': Code('O', 'Nómina ordinaria'), |
115
|
|
|
'TotalDeducciones': Decimal('123.45'), |
116
|
|
|
'TotalOtrosPagos': Decimal('123.45'), |
117
|
|
|
'TotalPercepciones': Decimal('123.45'), |
118
|
|
|
'Version': '1.2'}}, |
119
|
|
|
'Conceptos': [{'Cantidad': Decimal('1'), |
120
|
|
|
'ClaveProdServ': Code('84111506', 'Servicios de facturación'), |
121
|
|
|
'ClaveUnidad': Code('ACT', 'Actividad'), |
122
|
|
|
'Descripcion': 'Descripcion', |
123
|
|
|
'Importe': Decimal('0'), |
124
|
|
|
'ObjetoImp': Code('01', 'No objeto de impuesto'), |
125
|
|
|
'ValorUnitario': Decimal('0')}], |
126
|
|
|
'Emisor': {'Nombre': 'Esta es una demostración', |
127
|
|
|
'RegimenFiscal': Code('622', 'Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras'), |
128
|
|
|
'Rfc': ' AAA010101AAA'}, |
129
|
|
|
'Exportacion': Code('03', 'Temporal'), |
130
|
|
|
'Fecha': datetime.datetime(2021, 12, 8, 23, 59, 59), |
131
|
|
|
'FormaPago': Code('02', 'Cheque nominativo'), |
132
|
|
|
'LugarExpedicion': Code('99999', None), |
133
|
|
|
'Moneda': Code('XXX', 'Los códigos asignados para las transacciones en que intervenga ninguna moneda'), |
134
|
|
|
'NoCertificado': '30001000000300023708', |
135
|
|
|
'Receptor': {'DomicilioFiscalReceptor': '99999', |
136
|
|
|
'Nombre': 'Juanito Bananas De la Sierra', |
137
|
|
|
'RegimenFiscalReceptor': Code('630', 'Enajenación de acciones en bolsa de valores'), |
138
|
|
|
'Rfc': 'BASJ600902KL9', |
139
|
|
|
'UsoCFDI': Code('P01', 'Por definir')}, |
140
|
|
|
'Sello': '', |
141
|
|
|
'SubTotal': Decimal('0'), |
142
|
|
|
'TipoDeComprobante': Code('P', 'Pago'), |
143
|
|
|
'Total': Decimal('0'), |
144
|
|
|
'Version': '4.0'} |