diff --git a/examples/habilitacion/N000001.py b/examples/habilitacion/N000001.py new file mode 100644 index 0000000..6216063 --- /dev/null +++ b/examples/habilitacion/N000001.py @@ -0,0 +1,123 @@ + +from facho import fe + +SOFTWARE_PIN='20234' +SOFTWARE_ID='100b0d10-0ca0-4ad4-a894-b704a568cbf3' +NIT='901575528' +DV='2' + +def extensions(nomina): + return [] + +def nomina(): + nomina = fe.nomina.DIANNominaIndividual() + + nomina.asignar_fecha_pago('2024-04-30') + + nomina.asignar_metadata(fe.nomina.Metadata( + novedad=fe.nomina.Novedad(value='false'), + secuencia=fe.nomina.NumeroSecuencia( + prefijo='N', + consecutivo='000001' + ), + lugar_generacion=fe.nomina.Lugar( + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + ), + proveedor=fe.nomina.Proveedor( + razon_social='BICI PIZZA S.A.S', + nit=NIT, + dv=DV, + software_id=SOFTWARE_ID, + software_pin=SOFTWARE_PIN + ) + )) + + nomina.asignar_periodo(fe.nomina.Periodo( + fecha_ingreso= '2022-01-05', + fecha_liquidacion_inicio='2024-04-01', + fecha_liquidacion_fin='2024-04-30', + fecha_generacion='2024-04-30' + )) + + nomina.asignar_informacion_general(fe.nomina.InformacionGeneral( + fecha_generacion = '2024-04-30', + hora_generacion = '08:01:00-05:00', + tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRUEBAS, + software_pin = SOFTWARE_PIN, + periodo_nomina = fe.nomina.PeriodoNomina(code='1'), + tipo_moneda = fe.nomina.TipoMoneda(code='COP') + )) + + nomina.asignar_pago(fe.nomina.Pago( + forma=fe.nomina.FormaPago( + code='1', + ), + metodo=fe.nomina.MetodoPago( + code='10' + ) + )) + nomina.asignar_empleador(fe.nomina.Empleador( + razon_social='BICI PIZZA S.A.S', + nit = NIT, + dv = DV, + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + direccion = 'calle etrivial' + )) + + nomina.asignar_trabajador(fe.nomina.Trabajador( + tipo_contrato = fe.nomina.TipoContrato( + code = '1' + ), + alto_riesgo = False, + tipo_documento = fe.nomina.TipoDocumento( + code = '11' + ), + primer_apellido = 'GONZALEZ', + segundo_apellido = '', + primer_nombre = 'JUAN', + lugar_trabajo = fe.nomina.LugarTrabajo( + pais = fe.nomina.Pais(code='CO'), + departamento = fe.nomina.Departamento(code='05'), + municipio = fe.nomina.Municipio(code='05001'), + direccion = 'CL 35C 102-17 BL 7 AP 101' + ), + numero_documento = NIT, + tipo = fe.nomina.TipoTrabajador( + code = '01' + ), + salario_integral = False, + sueldo = fe.nomina.Amount(2400000) + )) + + nomina.adicionar_devengado(fe.nomina.DevengadoBasico( + dias_trabajados = 30, + sueldo_trabajado = fe.nomina.Amount(2400000) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionSalud( + porcentaje = fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(96000) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionFondoPension( + porcentaje=fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(96000) + )) + return nomina + diff --git a/examples/habilitacion/N000001.xml b/examples/habilitacion/N000001.xml new file mode 100644 index 0000000..548deac --- /dev/null +++ b/examples/habilitacion/N000001.xml @@ -0,0 +1,89 @@ + + + + + + + + + + +HS3rmJgPKyCNLNO3TXfP0s1zIGvJTjq40JfMm/muHLA= + + + +88R+0zjb6NIUiHhT8EE1ale8bO+TR6SSQBtVQUYkZ6c= + + + + + + +QF0d+RznylwnbFaGclqPWLndUo35HVDouEYoS1wfVO8= + + +0JBFsBhyo4r/9m5vuBXbKirHOgniDNeGW3RNXpCE/sgXvrV3E4K8/M4HeO0VYtM0 +G4bHvvkP2NCkdrKgZ9gB+XG8E/rEmJnwKpHm2kaNnpM1pYGoqBNWpqCa5FnUsEk4 +c4BmBaKjmBSUrz+2JoOg1RKaaJumqGWm83IjWWJq9b4l40imL0XIgoTmWUtIGOA0 +swm5rokLFldHv9T9CQvuYqCQIb6GAb2HB/GzNcPVO6quCqNVI6K9+Zh6vNpWpnCW +crP8iCn4T3jo2PxU56dwA63xOtkTdYWphaGL4J63flsZysPQ817uuHV/XLu1VwHE +cBpcTWyXL9LB7rgqrVSIzw== + + +MIIH8TCCBdmgAwIBAgIIQxaPJd4YTlMwDQYJKoZIhvcNAQELBQAwgbYxIzAhBgkq +hkiG9w0BCQEWFGluZm9AYW5kZXNzY2QuY29tLmNvMSYwJAYDVQQDEx1DQSBBTkRF +UyBTQ0QgUy5BLiBDbGFzZSBJSSB2MzEwMC4GA1UECxMnRGl2aXNpb24gZGUgY2Vy +dGlmaWNhY2lvbiBlbnRpZGFkIGZpbmFsMRIwEAYDVQQKEwlBbmRlcyBTQ0QxFDAS +BgNVBAcTC0JvZ290YSBELkMuMQswCQYDVQQGEwJDTzAeFw0yNDA1MTYwNTAwMDBa +Fw0yNTA1MTYwNDU5MDBaMIIBQDEtMCsGA1UECRMkVFYgNDYgQyA0MiBFU1RFIDc4 +OSBDT1JSIFNBTlRBIEVMRU5BMSIwIAYJKoZIhvcNAQkBFhNiaWNpcGl6emFAZ21h +aWwuY29tMRowGAYDVQQDExFCSUNJIFBJWlpBIFMuQS5TLjETMBEGA1UEBRMKOTAx +NTc1NTI4MjE2MDQGA1UEDBMtRW1pc29yIEZhY3R1cmEgRWxlY3Ryb25pY2EgLSBQ +ZXJzb25hIEp1cmlkaWNhMTswOQYDVQQLEzJFbWl0aWRvIHBvciBBbmRlcyBTQ0Qg +QWMgMjYgNjkgQyAwMyBUb3JyZSBCIE9mIDcwMTEQMA4GA1UEChMHR0VSRU5URTES +MBAGA1UEBwwJTUVERUxMw41OMRIwEAYDVQQIEwlBTlRJT1FVSUExCzAJBgNVBAYT +AkNPMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5J1O+4ZedrSBUsb+ +9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5/wra04OU57cS1/+/ +yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/PbswnrKukFU2acxISwT +Lu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SIiqqPwHKh+6EDIoou +jo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891KBA9Yebdw7m/+ufu ++eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWnspvDK97D8YG0MeifP +YveIPwIDAQABo4ICdDCCAnAwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRA/iZp +RzInMtGsIcgu7M+N1TVo6DBvBggrBgEFBQcBAQRjMGEwNgYIKwYBBQUHMAKGKmh0 +dHA6Ly9jZXJ0cy5hbmRlc3NjZC5jb20uY28vQ2xhc2VJSXYzLmNydDAnBggrBgEF +BQcwAYYbaHR0cDovL29jc3AuYW5kZXNzY2QuY29tLmNvMB4GA1UdEQQXMBWBE2Jp +Y2lwaXp6YUBnbWFpbC5jb20wggEjBgNVHSAEggEaMIIBFjCBwQYNKwYBBAGB9EgB +AgYIADCBrzCBrAYIKwYBBQUHAgIwgZ8MgZxMYSB1dGlsaXphY2nDs24gZGUgZXN0 +ZSBjZXJ0aWZpY2FkbyBlc3TDoSBzdWpldGEgYSBsYSBQQyBkZSBGYWN0dXJhY2nD +s24gRWxlY3Ryw7NuaWNhIHkgRFBDIGVzdGFibGVjaWRhcyBwb3IgQW5kZXMgU0NE +LiBDw7NkaWdvIGRlIEFjcmVkaXRhY2nDs246IDE2LUVDRC0wMDQwUAYNKwYBBAGB +9EgBAQEKADA/MD0GCCsGAQUFBwIBFjFodHRwczovL3d3dy5hbmRlc3NjZC5jb20u +Y28vZG9jcy9EUENfQW5kZXNTQ0QucGRmMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr +BgEFBQcDBDA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3JsLmFuZGVzc2NkLmNv +bS5jby9DbGFzZUlJdjMuY3JsMB0GA1UdDgQWBBRKPoh3BJM7SxEL0UXkSne2MyFO +jjAOBgNVHQ8BAf8EBAMCBeAwDQYJKoZIhvcNAQELBQADggIBAA6Zzor3kpJ6vNKv +TAeHaMfmJ/PaghQ1+Lab7Pwk+lsPsMETFu/IpEK5qij2bV54UNnqyLYOZtIbnWTG +qgT7QxQvy+/of/I3zzF+kH4/Lp2TSlHaDEb/airCZ3I2G23M9iaZzSwYuOsOaGwp +4ovkXlYwQ7FVNfIIoAq95m9cBAigb06bRIlVBVTQq44hQFQQG6aSIT7SSPtCwPhB +5CJzG09pmgbxizqN/yxdjWdfW6Av79dh6K4uQT++Vtyp5DuAkmfn0ehayrUbDLkH +9jQFF128U5pnOPfKWf22acXqQBapesUSV/HZUZ3PXoWeHWXcMdz0azxOEunS4+px +fs5UzInRAmEcYwJHqJT3irFz+J2RsZ0WnJHrTGqFoXniQQH8QbCHehDTGN7/v/v1 +LQBr5PQBnSEWhmrQ9uFrwPyMMg3yd+L75TaHLZ0MTSVezAG52oM9jBiU5tYXkSio +EfPdIsGlG74BybULGSG2OlTINlblj/lj7pL67V+gY9EGN1zzNKL5sW4YXlXewa6K +dTpLmmzWzI8Cm+tOuuJDSHSwMjn525O+Z/oyKLjdQdyfg1KnZYwNZFpMmCwfP5nd +cm4F7Anzb9HX9ciluAxc6as9TsNoDDTSAGPuUr0QvXqXd9ZCgXdNzdFeiaYknLP5 +hT4f5CoO2M8qcG+CH7HnkaOHrSuK + + + +5J1O+4ZedrSBUsb+9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5 +/wra04OU57cS1/+/yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/Pbs +wnrKukFU2acxISwTLu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SI +iqqPwHKh+6EDIooujo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891 +KBA9Yebdw7m/+ufu+eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWns +pvDK97D8YG0MeifPYveIPw== +AQAB + + + +2025-03-16T16:49:57.777363YcIPspAVFcNg+B/galYrdCLYvLIEwFI4KWdSzcuupPY=C=CO, L=Bogota D.C., O=Andes SCD, OU=Division de certificacion entidad final, CN=CA ANDES SCD S.A. Clase II v3, OID.1.2.840.113549.1.9.1=info@andesscd.com.co4834208642831502931https://facturaelectronica.dian.gov.co/politicadefirma/v2/politicadefirmav2.pdfPolítica de firma para facturas electrónicas de la República de Colombia.dMoMvtcG5aIzgYo0tIsSQeVJBDnUnfSOfBpxXrmor0Y=supplierfalsehttps://catalogo-vpfe-hab.dian.gov.co/document/searchqr?documentkey=f498037db4d2f7c42224fbdc958d031927f17f0ad4e4c1f4a3e85d6363d68f3f951860873e6899937c080f03b0bd0ceb2024-04-3002400000.00192000.002208000.00 \ No newline at end of file diff --git a/examples/habilitacion/N000001.zip b/examples/habilitacion/N000001.zip new file mode 100644 index 0000000..267f89f Binary files /dev/null and b/examples/habilitacion/N000001.zip differ diff --git a/examples/habilitacion/N000002.py b/examples/habilitacion/N000002.py new file mode 100644 index 0000000..17bedf4 --- /dev/null +++ b/examples/habilitacion/N000002.py @@ -0,0 +1,123 @@ + +from facho import fe + +SOFTWARE_PIN='20234' +SOFTWARE_ID='100b0d10-0ca0-4ad4-a894-b704a568cbf3' +NIT='901575528' +DV='2' + +def extensions(nomina): + return [] + +def nomina(): + nomina = fe.nomina.DIANNominaIndividual() + + nomina.asignar_fecha_pago('2024-04-30') + + nomina.asignar_metadata(fe.nomina.Metadata( + novedad=fe.nomina.Novedad(value='false'), + secuencia=fe.nomina.NumeroSecuencia( + prefijo='N', + consecutivo='000002' + ), + lugar_generacion=fe.nomina.Lugar( + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + ), + proveedor=fe.nomina.Proveedor( + razon_social='BICI PIZZA S.A.S', + nit=NIT, + dv=DV, + software_id=SOFTWARE_ID, + software_pin=SOFTWARE_PIN + ) + )) + + nomina.asignar_periodo(fe.nomina.Periodo( + fecha_ingreso= '2022-09-05', + fecha_liquidacion_inicio='2024-04-01', + fecha_liquidacion_fin='2024-04-30', + fecha_generacion='2024-04-30' + )) + + nomina.asignar_informacion_general(fe.nomina.InformacionGeneral( + fecha_generacion = '2024-04-30', + hora_generacion = '08:01:00-05:00', + tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRUEBAS, + software_pin = SOFTWARE_PIN, + periodo_nomina = fe.nomina.PeriodoNomina(code='1'), + tipo_moneda = fe.nomina.TipoMoneda(code='COP') + )) + + nomina.asignar_pago(fe.nomina.Pago( + forma=fe.nomina.FormaPago( + code='1', + ), + metodo=fe.nomina.MetodoPago( + code='10' + ) + )) + nomina.asignar_empleador(fe.nomina.Empleador( + razon_social='BICI PIZZA S.A.S', + nit = NIT, + dv = DV, + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + direccion = 'calle etrivial' + )) + + nomina.asignar_trabajador(fe.nomina.Trabajador( + tipo_contrato = fe.nomina.TipoContrato( + code = '1' + ), + alto_riesgo = False, + tipo_documento = fe.nomina.TipoDocumento( + code = '11' + ), + primer_apellido = 'GIRALDO', + segundo_apellido = '', + primer_nombre = 'VIVIANA', + lugar_trabajo = fe.nomina.LugarTrabajo( + pais = fe.nomina.Pais(code='CO'), + departamento = fe.nomina.Departamento(code='05'), + municipio = fe.nomina.Municipio(code='05001'), + direccion = 'CL 35C 102-17 BL 7 AP 101' + ), + numero_documento = NIT, + tipo = fe.nomina.TipoTrabajador( + code = '01' + ), + salario_integral = False, + sueldo = fe.nomina.Amount(1160000) + )) + + nomina.adicionar_devengado(fe.nomina.DevengadoBasico( + dias_trabajados = 30, + sueldo_trabajado = fe.nomina.Amount(1160000) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionSalud( + porcentaje = fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(46400) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionFondoPension( + porcentaje=fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(46400) + )) + return nomina + diff --git a/examples/habilitacion/N000002.xml b/examples/habilitacion/N000002.xml new file mode 100644 index 0000000..db7742d --- /dev/null +++ b/examples/habilitacion/N000002.xml @@ -0,0 +1,89 @@ + + + + + + + + + + +OZ66ZARE1QPKfYYk+BdiEnO0675e7p00fGwhb/Iyd5s= + + + +jZRqaYdQrLDYoqJmrKrLoO2ZHlGX1Xo5IpGFAznaQnI= + + + + + + +XNMT1fgTLgeuUDfYH//8aY/TqzhsRcScSySL/6nKwxE= + + +fHBH/GVqHYi8iFbtTUwLUaVerZjfoj64Toq5jE+qi/HLmwhtDCAK2V/ISn0VDxpJ +3QrAqWw/VjTFEqWmRV7mCxybM98A/+5yeWbvDkG2eY5fUOUHin9+oomysY8cwLjA +joXsvjEJlM1YIndzWG/Dryr14Hcax6ItVSaopA+1BpUoFn/5jWwZXsbmq0jHDjsI +Vyk1WpZzYwmM/aGZg7gj/pR7kZZOnv4d3L/MnFP6vJRdRNtRwO73wBd5lYGU1KaB +iTimrV2gBwg0+o5bqloSaQEtqV87adJG0h3eosSiIhrG9rc9rOpvqqq7tG2nAxRx +NyPM8gwuKoaoU9ogvRsqHQ== + + +MIIH8TCCBdmgAwIBAgIIQxaPJd4YTlMwDQYJKoZIhvcNAQELBQAwgbYxIzAhBgkq +hkiG9w0BCQEWFGluZm9AYW5kZXNzY2QuY29tLmNvMSYwJAYDVQQDEx1DQSBBTkRF +UyBTQ0QgUy5BLiBDbGFzZSBJSSB2MzEwMC4GA1UECxMnRGl2aXNpb24gZGUgY2Vy +dGlmaWNhY2lvbiBlbnRpZGFkIGZpbmFsMRIwEAYDVQQKEwlBbmRlcyBTQ0QxFDAS +BgNVBAcTC0JvZ290YSBELkMuMQswCQYDVQQGEwJDTzAeFw0yNDA1MTYwNTAwMDBa +Fw0yNTA1MTYwNDU5MDBaMIIBQDEtMCsGA1UECRMkVFYgNDYgQyA0MiBFU1RFIDc4 +OSBDT1JSIFNBTlRBIEVMRU5BMSIwIAYJKoZIhvcNAQkBFhNiaWNpcGl6emFAZ21h +aWwuY29tMRowGAYDVQQDExFCSUNJIFBJWlpBIFMuQS5TLjETMBEGA1UEBRMKOTAx +NTc1NTI4MjE2MDQGA1UEDBMtRW1pc29yIEZhY3R1cmEgRWxlY3Ryb25pY2EgLSBQ +ZXJzb25hIEp1cmlkaWNhMTswOQYDVQQLEzJFbWl0aWRvIHBvciBBbmRlcyBTQ0Qg +QWMgMjYgNjkgQyAwMyBUb3JyZSBCIE9mIDcwMTEQMA4GA1UEChMHR0VSRU5URTES +MBAGA1UEBwwJTUVERUxMw41OMRIwEAYDVQQIEwlBTlRJT1FVSUExCzAJBgNVBAYT +AkNPMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5J1O+4ZedrSBUsb+ +9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5/wra04OU57cS1/+/ +yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/PbswnrKukFU2acxISwT +Lu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SIiqqPwHKh+6EDIoou +jo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891KBA9Yebdw7m/+ufu ++eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWnspvDK97D8YG0MeifP +YveIPwIDAQABo4ICdDCCAnAwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRA/iZp +RzInMtGsIcgu7M+N1TVo6DBvBggrBgEFBQcBAQRjMGEwNgYIKwYBBQUHMAKGKmh0 +dHA6Ly9jZXJ0cy5hbmRlc3NjZC5jb20uY28vQ2xhc2VJSXYzLmNydDAnBggrBgEF +BQcwAYYbaHR0cDovL29jc3AuYW5kZXNzY2QuY29tLmNvMB4GA1UdEQQXMBWBE2Jp +Y2lwaXp6YUBnbWFpbC5jb20wggEjBgNVHSAEggEaMIIBFjCBwQYNKwYBBAGB9EgB +AgYIADCBrzCBrAYIKwYBBQUHAgIwgZ8MgZxMYSB1dGlsaXphY2nDs24gZGUgZXN0 +ZSBjZXJ0aWZpY2FkbyBlc3TDoSBzdWpldGEgYSBsYSBQQyBkZSBGYWN0dXJhY2nD +s24gRWxlY3Ryw7NuaWNhIHkgRFBDIGVzdGFibGVjaWRhcyBwb3IgQW5kZXMgU0NE +LiBDw7NkaWdvIGRlIEFjcmVkaXRhY2nDs246IDE2LUVDRC0wMDQwUAYNKwYBBAGB +9EgBAQEKADA/MD0GCCsGAQUFBwIBFjFodHRwczovL3d3dy5hbmRlc3NjZC5jb20u +Y28vZG9jcy9EUENfQW5kZXNTQ0QucGRmMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr +BgEFBQcDBDA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3JsLmFuZGVzc2NkLmNv +bS5jby9DbGFzZUlJdjMuY3JsMB0GA1UdDgQWBBRKPoh3BJM7SxEL0UXkSne2MyFO +jjAOBgNVHQ8BAf8EBAMCBeAwDQYJKoZIhvcNAQELBQADggIBAA6Zzor3kpJ6vNKv +TAeHaMfmJ/PaghQ1+Lab7Pwk+lsPsMETFu/IpEK5qij2bV54UNnqyLYOZtIbnWTG +qgT7QxQvy+/of/I3zzF+kH4/Lp2TSlHaDEb/airCZ3I2G23M9iaZzSwYuOsOaGwp +4ovkXlYwQ7FVNfIIoAq95m9cBAigb06bRIlVBVTQq44hQFQQG6aSIT7SSPtCwPhB +5CJzG09pmgbxizqN/yxdjWdfW6Av79dh6K4uQT++Vtyp5DuAkmfn0ehayrUbDLkH +9jQFF128U5pnOPfKWf22acXqQBapesUSV/HZUZ3PXoWeHWXcMdz0azxOEunS4+px +fs5UzInRAmEcYwJHqJT3irFz+J2RsZ0WnJHrTGqFoXniQQH8QbCHehDTGN7/v/v1 +LQBr5PQBnSEWhmrQ9uFrwPyMMg3yd+L75TaHLZ0MTSVezAG52oM9jBiU5tYXkSio +EfPdIsGlG74BybULGSG2OlTINlblj/lj7pL67V+gY9EGN1zzNKL5sW4YXlXewa6K +dTpLmmzWzI8Cm+tOuuJDSHSwMjn525O+Z/oyKLjdQdyfg1KnZYwNZFpMmCwfP5nd +cm4F7Anzb9HX9ciluAxc6as9TsNoDDTSAGPuUr0QvXqXd9ZCgXdNzdFeiaYknLP5 +hT4f5CoO2M8qcG+CH7HnkaOHrSuK + + + +5J1O+4ZedrSBUsb+9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5 +/wra04OU57cS1/+/yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/Pbs +wnrKukFU2acxISwTLu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SI +iqqPwHKh+6EDIooujo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891 +KBA9Yebdw7m/+ufu+eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWns +pvDK97D8YG0MeifPYveIPw== +AQAB + + + +2025-03-16T16:50:01.250573YcIPspAVFcNg+B/galYrdCLYvLIEwFI4KWdSzcuupPY=C=CO, L=Bogota D.C., O=Andes SCD, OU=Division de certificacion entidad final, CN=CA ANDES SCD S.A. Clase II v3, OID.1.2.840.113549.1.9.1=info@andesscd.com.co4834208642831502931https://facturaelectronica.dian.gov.co/politicadefirma/v2/politicadefirmav2.pdfPolítica de firma para facturas electrónicas de la República de Colombia.dMoMvtcG5aIzgYo0tIsSQeVJBDnUnfSOfBpxXrmor0Y=supplierfalsehttps://catalogo-vpfe-hab.dian.gov.co/document/searchqr?documentkey=cb2e6968a811c661ebdc8b8cd19a323ca05471c2fe3c3b1cfb5275379d7df94d6c22f9405d732295e805095e366a99fa2024-04-3001160000.0092800.001067200.00 \ No newline at end of file diff --git a/examples/habilitacion/N000002.zip b/examples/habilitacion/N000002.zip new file mode 100644 index 0000000..c2bb6f2 Binary files /dev/null and b/examples/habilitacion/N000002.zip differ diff --git a/examples/habilitacion/N000003.py b/examples/habilitacion/N000003.py new file mode 100644 index 0000000..fc8a1ab --- /dev/null +++ b/examples/habilitacion/N000003.py @@ -0,0 +1,123 @@ + +from facho import fe + +SOFTWARE_PIN='20234' +SOFTWARE_ID='100b0d10-0ca0-4ad4-a894-b704a568cbf3' +NIT='901575528' +DV='2' + +def extensions(nomina): + return [] + +def nomina(): + nomina = fe.nomina.DIANNominaIndividual() + + nomina.asignar_fecha_pago('2024-04-30') + + nomina.asignar_metadata(fe.nomina.Metadata( + novedad=fe.nomina.Novedad(value='false'), + secuencia=fe.nomina.NumeroSecuencia( + prefijo='N', + consecutivo='000003' + ), + lugar_generacion=fe.nomina.Lugar( + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + ), + proveedor=fe.nomina.Proveedor( + razon_social='BICI PIZZA S.A.S', + nit=NIT, + dv=DV, + software_id=SOFTWARE_ID, + software_pin=SOFTWARE_PIN + ) + )) + + nomina.asignar_periodo(fe.nomina.Periodo( + fecha_ingreso= '2022-01-05', + fecha_liquidacion_inicio='2024-04-01', + fecha_liquidacion_fin='2024-04-30', + fecha_generacion='2024-04-30' + )) + + nomina.asignar_informacion_general(fe.nomina.InformacionGeneral( + fecha_generacion = '2024-04-30', + hora_generacion = '08:01:00-05:00', + tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRUEBAS, + software_pin = SOFTWARE_PIN, + periodo_nomina = fe.nomina.PeriodoNomina(code='1'), + tipo_moneda = fe.nomina.TipoMoneda(code='COP') + )) + + nomina.asignar_pago(fe.nomina.Pago( + forma=fe.nomina.FormaPago( + code='1', + ), + metodo=fe.nomina.MetodoPago( + code='10' + ) + )) + nomina.asignar_empleador(fe.nomina.Empleador( + razon_social='BICI PIZZA S.A.S', + nit = NIT, + dv = DV, + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + direccion = 'calle etrivial' + )) + + nomina.asignar_trabajador(fe.nomina.Trabajador( + tipo_contrato = fe.nomina.TipoContrato( + code = '1' + ), + alto_riesgo = False, + tipo_documento = fe.nomina.TipoDocumento( + code = '11' + ), + primer_apellido = 'GONZALEZ', + segundo_apellido = '', + primer_nombre = 'JUAN', + lugar_trabajo = fe.nomina.LugarTrabajo( + pais = fe.nomina.Pais(code='CO'), + departamento = fe.nomina.Departamento(code='05'), + municipio = fe.nomina.Municipio(code='05001'), + direccion = 'CL 35C 102-17 BL 7 AP 101' + ), + numero_documento = NIT, + tipo = fe.nomina.TipoTrabajador( + code = '01' + ), + salario_integral = False, + sueldo = fe.nomina.Amount(2400000) + )) + + nomina.adicionar_devengado(fe.nomina.DevengadoBasico( + dias_trabajados = 30, + sueldo_trabajado = fe.nomina.Amount(2400000) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionSalud( + porcentaje = fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(96000) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionFondoPension( + porcentaje=fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(96000) + )) + return nomina + diff --git a/examples/habilitacion/N000003.xml b/examples/habilitacion/N000003.xml new file mode 100644 index 0000000..101fd1d --- /dev/null +++ b/examples/habilitacion/N000003.xml @@ -0,0 +1,89 @@ + + + + + + + + + + +mf3prH7SIB1Df0Z/nOPdRGG0DKXP8oCra41918zaCyg= + + + +H3dF/siCNdG6iSy15jUQct1k4qswXBZToWJH6tsptpk= + + + + + + +IqiqJKHTI0OAWva1xZ+ZOk9ooGkzEa4hReQCr4/W778= + + +Nv0nFvZ4Y3KIaPODEiOFgThDYb+DNKlJrRUAOrIxcNvtotpK7Y91JnYbUgFvl28b +Z5V/catUMyOclGDjPzslTBcHXExleb5eIgUB8URdNvdrB78iXFUOfPc+ESFomru8 +jyPX9cZw24ZYBmQqqusvqIkf/tIARFGZ+7AzXkp28dBRFyWtgjESn60DIrFjm9x5 +Pthv1K95gytjrrpwvdk77KN4uumlCbGoc2Pizbj+ufijbnxEPDS7fS7RR0Qv9uz/ +2X7znR10TK8+gwMz7AVRYQi90ZbhOadxf3j+HVAlHtw+JHbrPSC+7xBOiPPStY6o +6TkQU+ZMpz2IUovjqREXow== + + +MIIH8TCCBdmgAwIBAgIIQxaPJd4YTlMwDQYJKoZIhvcNAQELBQAwgbYxIzAhBgkq +hkiG9w0BCQEWFGluZm9AYW5kZXNzY2QuY29tLmNvMSYwJAYDVQQDEx1DQSBBTkRF +UyBTQ0QgUy5BLiBDbGFzZSBJSSB2MzEwMC4GA1UECxMnRGl2aXNpb24gZGUgY2Vy +dGlmaWNhY2lvbiBlbnRpZGFkIGZpbmFsMRIwEAYDVQQKEwlBbmRlcyBTQ0QxFDAS +BgNVBAcTC0JvZ290YSBELkMuMQswCQYDVQQGEwJDTzAeFw0yNDA1MTYwNTAwMDBa +Fw0yNTA1MTYwNDU5MDBaMIIBQDEtMCsGA1UECRMkVFYgNDYgQyA0MiBFU1RFIDc4 +OSBDT1JSIFNBTlRBIEVMRU5BMSIwIAYJKoZIhvcNAQkBFhNiaWNpcGl6emFAZ21h +aWwuY29tMRowGAYDVQQDExFCSUNJIFBJWlpBIFMuQS5TLjETMBEGA1UEBRMKOTAx +NTc1NTI4MjE2MDQGA1UEDBMtRW1pc29yIEZhY3R1cmEgRWxlY3Ryb25pY2EgLSBQ +ZXJzb25hIEp1cmlkaWNhMTswOQYDVQQLEzJFbWl0aWRvIHBvciBBbmRlcyBTQ0Qg +QWMgMjYgNjkgQyAwMyBUb3JyZSBCIE9mIDcwMTEQMA4GA1UEChMHR0VSRU5URTES +MBAGA1UEBwwJTUVERUxMw41OMRIwEAYDVQQIEwlBTlRJT1FVSUExCzAJBgNVBAYT +AkNPMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5J1O+4ZedrSBUsb+ +9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5/wra04OU57cS1/+/ +yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/PbswnrKukFU2acxISwT +Lu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SIiqqPwHKh+6EDIoou +jo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891KBA9Yebdw7m/+ufu ++eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWnspvDK97D8YG0MeifP +YveIPwIDAQABo4ICdDCCAnAwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRA/iZp +RzInMtGsIcgu7M+N1TVo6DBvBggrBgEFBQcBAQRjMGEwNgYIKwYBBQUHMAKGKmh0 +dHA6Ly9jZXJ0cy5hbmRlc3NjZC5jb20uY28vQ2xhc2VJSXYzLmNydDAnBggrBgEF +BQcwAYYbaHR0cDovL29jc3AuYW5kZXNzY2QuY29tLmNvMB4GA1UdEQQXMBWBE2Jp +Y2lwaXp6YUBnbWFpbC5jb20wggEjBgNVHSAEggEaMIIBFjCBwQYNKwYBBAGB9EgB +AgYIADCBrzCBrAYIKwYBBQUHAgIwgZ8MgZxMYSB1dGlsaXphY2nDs24gZGUgZXN0 +ZSBjZXJ0aWZpY2FkbyBlc3TDoSBzdWpldGEgYSBsYSBQQyBkZSBGYWN0dXJhY2nD +s24gRWxlY3Ryw7NuaWNhIHkgRFBDIGVzdGFibGVjaWRhcyBwb3IgQW5kZXMgU0NE +LiBDw7NkaWdvIGRlIEFjcmVkaXRhY2nDs246IDE2LUVDRC0wMDQwUAYNKwYBBAGB +9EgBAQEKADA/MD0GCCsGAQUFBwIBFjFodHRwczovL3d3dy5hbmRlc3NjZC5jb20u +Y28vZG9jcy9EUENfQW5kZXNTQ0QucGRmMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr +BgEFBQcDBDA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3JsLmFuZGVzc2NkLmNv +bS5jby9DbGFzZUlJdjMuY3JsMB0GA1UdDgQWBBRKPoh3BJM7SxEL0UXkSne2MyFO +jjAOBgNVHQ8BAf8EBAMCBeAwDQYJKoZIhvcNAQELBQADggIBAA6Zzor3kpJ6vNKv +TAeHaMfmJ/PaghQ1+Lab7Pwk+lsPsMETFu/IpEK5qij2bV54UNnqyLYOZtIbnWTG +qgT7QxQvy+/of/I3zzF+kH4/Lp2TSlHaDEb/airCZ3I2G23M9iaZzSwYuOsOaGwp +4ovkXlYwQ7FVNfIIoAq95m9cBAigb06bRIlVBVTQq44hQFQQG6aSIT7SSPtCwPhB +5CJzG09pmgbxizqN/yxdjWdfW6Av79dh6K4uQT++Vtyp5DuAkmfn0ehayrUbDLkH +9jQFF128U5pnOPfKWf22acXqQBapesUSV/HZUZ3PXoWeHWXcMdz0azxOEunS4+px +fs5UzInRAmEcYwJHqJT3irFz+J2RsZ0WnJHrTGqFoXniQQH8QbCHehDTGN7/v/v1 +LQBr5PQBnSEWhmrQ9uFrwPyMMg3yd+L75TaHLZ0MTSVezAG52oM9jBiU5tYXkSio +EfPdIsGlG74BybULGSG2OlTINlblj/lj7pL67V+gY9EGN1zzNKL5sW4YXlXewa6K +dTpLmmzWzI8Cm+tOuuJDSHSwMjn525O+Z/oyKLjdQdyfg1KnZYwNZFpMmCwfP5nd +cm4F7Anzb9HX9ciluAxc6as9TsNoDDTSAGPuUr0QvXqXd9ZCgXdNzdFeiaYknLP5 +hT4f5CoO2M8qcG+CH7HnkaOHrSuK + + + +5J1O+4ZedrSBUsb+9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5 +/wra04OU57cS1/+/yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/Pbs +wnrKukFU2acxISwTLu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SI +iqqPwHKh+6EDIooujo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891 +KBA9Yebdw7m/+ufu+eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWns +pvDK97D8YG0MeifPYveIPw== +AQAB + + + +2025-03-16T16:51:23.354553YcIPspAVFcNg+B/galYrdCLYvLIEwFI4KWdSzcuupPY=C=CO, L=Bogota D.C., O=Andes SCD, OU=Division de certificacion entidad final, CN=CA ANDES SCD S.A. Clase II v3, OID.1.2.840.113549.1.9.1=info@andesscd.com.co4834208642831502931https://facturaelectronica.dian.gov.co/politicadefirma/v2/politicadefirmav2.pdfPolítica de firma para facturas electrónicas de la República de Colombia.dMoMvtcG5aIzgYo0tIsSQeVJBDnUnfSOfBpxXrmor0Y=supplierfalsehttps://catalogo-vpfe-hab.dian.gov.co/document/searchqr?documentkey=beae68d136b80593b01b5cd7594bc86cc2f6ffd17d0238e5842e29ef6dfde62d26cb959764b6bf0943e73149596bfec02024-04-3002400000.00192000.002208000.00 \ No newline at end of file diff --git a/examples/habilitacion/N000003.zip b/examples/habilitacion/N000003.zip new file mode 100644 index 0000000..ce288a8 Binary files /dev/null and b/examples/habilitacion/N000003.zip differ diff --git a/examples/habilitacion/N000004.py b/examples/habilitacion/N000004.py new file mode 100644 index 0000000..c06ffe7 --- /dev/null +++ b/examples/habilitacion/N000004.py @@ -0,0 +1,123 @@ + +from facho import fe + +SOFTWARE_PIN='20234' +SOFTWARE_ID='100b0d10-0ca0-4ad4-a894-b704a568cbf3' +NIT='901575528' +DV='2' + +def extensions(nomina): + return [] + +def nomina(): + nomina = fe.nomina.DIANNominaIndividual() + + nomina.asignar_fecha_pago('2024-04-30') + + nomina.asignar_metadata(fe.nomina.Metadata( + novedad=fe.nomina.Novedad(value='false'), + secuencia=fe.nomina.NumeroSecuencia( + prefijo='N', + consecutivo='000004' + ), + lugar_generacion=fe.nomina.Lugar( + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + ), + proveedor=fe.nomina.Proveedor( + razon_social='BICI PIZZA S.A.S', + nit=NIT, + dv=DV, + software_id=SOFTWARE_ID, + software_pin=SOFTWARE_PIN + ) + )) + + nomina.asignar_periodo(fe.nomina.Periodo( + fecha_ingreso= '2022-09-05', + fecha_liquidacion_inicio='2024-04-01', + fecha_liquidacion_fin='2024-04-30', + fecha_generacion='2024-04-30' + )) + + nomina.asignar_informacion_general(fe.nomina.InformacionGeneral( + fecha_generacion = '2024-04-30', + hora_generacion = '08:01:00-05:00', + tipo_ambiente = fe.nomina.InformacionGeneral.AMBIENTE_PRUEBAS, + software_pin = SOFTWARE_PIN, + periodo_nomina = fe.nomina.PeriodoNomina(code='1'), + tipo_moneda = fe.nomina.TipoMoneda(code='COP') + )) + + nomina.asignar_pago(fe.nomina.Pago( + forma=fe.nomina.FormaPago( + code='1', + ), + metodo=fe.nomina.MetodoPago( + code='10' + ) + )) + nomina.asignar_empleador(fe.nomina.Empleador( + razon_social='BICI PIZZA S.A.S', + nit = NIT, + dv = DV, + pais = fe.nomina.Pais( + code = 'CO' + ), + departamento = fe.nomina.Departamento( + code = '05' + ), + municipio = fe.nomina.Municipio( + code = '05001' + ), + direccion = 'calle etrivial' + )) + + nomina.asignar_trabajador(fe.nomina.Trabajador( + tipo_contrato = fe.nomina.TipoContrato( + code = '1' + ), + alto_riesgo = False, + tipo_documento = fe.nomina.TipoDocumento( + code = '11' + ), + primer_apellido = 'GIRALDO', + segundo_apellido = '', + primer_nombre = 'VIVIANA', + lugar_trabajo = fe.nomina.LugarTrabajo( + pais = fe.nomina.Pais(code='CO'), + departamento = fe.nomina.Departamento(code='05'), + municipio = fe.nomina.Municipio(code='05001'), + direccion = 'CL 35C 102-17 BL 7 AP 101' + ), + numero_documento = NIT, + tipo = fe.nomina.TipoTrabajador( + code = '01' + ), + salario_integral = False, + sueldo = fe.nomina.Amount(1160000) + )) + + nomina.adicionar_devengado(fe.nomina.DevengadoBasico( + dias_trabajados = 30, + sueldo_trabajado = fe.nomina.Amount(1160000) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionSalud( + porcentaje = fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(46400) + )) + + nomina.adicionar_deduccion(fe.nomina.DeduccionFondoPension( + porcentaje=fe.nomina.Amount(4), + deduccion = fe.nomina.Amount(46400) + )) + return nomina + diff --git a/examples/habilitacion/N000004.xml b/examples/habilitacion/N000004.xml new file mode 100644 index 0000000..eed617f --- /dev/null +++ b/examples/habilitacion/N000004.xml @@ -0,0 +1,89 @@ + + + + + + + + + + +ZAE71pLQXXnN5+540pnkxH5ALNBQcecMdLWFKTKby0g= + + + +kNyh65TH4KfF6wqRoy1duEawgkvOlr2rYLCNfdTfK1c= + + + + + + +BoPBi5C0tXfV04cf74M4jktBxf9eVsXk5IWqGdeOSHw= + + +pw5WDlbd4GhnSAJKlTEDjsb1+VAVtyyXWA/isvGz4LHY5n1Fm4hiN7fD3JIrfOBj +z/tUfROLzbbywUnVklfaDri6txZlFFwa9SY8MO38bgE0HUxGq5khb/4uzktGRInp +H3i0TG5i42YB83PQItSLiEgPWqGVolj5sWfUqD81Ck4CvgtKuZgnn9JPLgP0sjjT +BUjKcMt4K+ZLvXumehKKCzEbtoaa5DHKUrpuCU2giGMMPElwaTulFA5kNLBnAk2n +HBCiIq+YZ2C3BqE+WQptcQDIObmEnRURvvUTB64gCh4Tigmq6vnv/dMPWmQvohmp +ETIZDwU0/xdGcUK7Ujyl4g== + + +MIIH8TCCBdmgAwIBAgIIQxaPJd4YTlMwDQYJKoZIhvcNAQELBQAwgbYxIzAhBgkq +hkiG9w0BCQEWFGluZm9AYW5kZXNzY2QuY29tLmNvMSYwJAYDVQQDEx1DQSBBTkRF +UyBTQ0QgUy5BLiBDbGFzZSBJSSB2MzEwMC4GA1UECxMnRGl2aXNpb24gZGUgY2Vy +dGlmaWNhY2lvbiBlbnRpZGFkIGZpbmFsMRIwEAYDVQQKEwlBbmRlcyBTQ0QxFDAS +BgNVBAcTC0JvZ290YSBELkMuMQswCQYDVQQGEwJDTzAeFw0yNDA1MTYwNTAwMDBa +Fw0yNTA1MTYwNDU5MDBaMIIBQDEtMCsGA1UECRMkVFYgNDYgQyA0MiBFU1RFIDc4 +OSBDT1JSIFNBTlRBIEVMRU5BMSIwIAYJKoZIhvcNAQkBFhNiaWNpcGl6emFAZ21h +aWwuY29tMRowGAYDVQQDExFCSUNJIFBJWlpBIFMuQS5TLjETMBEGA1UEBRMKOTAx +NTc1NTI4MjE2MDQGA1UEDBMtRW1pc29yIEZhY3R1cmEgRWxlY3Ryb25pY2EgLSBQ +ZXJzb25hIEp1cmlkaWNhMTswOQYDVQQLEzJFbWl0aWRvIHBvciBBbmRlcyBTQ0Qg +QWMgMjYgNjkgQyAwMyBUb3JyZSBCIE9mIDcwMTEQMA4GA1UEChMHR0VSRU5URTES +MBAGA1UEBwwJTUVERUxMw41OMRIwEAYDVQQIEwlBTlRJT1FVSUExCzAJBgNVBAYT +AkNPMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5J1O+4ZedrSBUsb+ +9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5/wra04OU57cS1/+/ +yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/PbswnrKukFU2acxISwT +Lu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SIiqqPwHKh+6EDIoou +jo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891KBA9Yebdw7m/+ufu ++eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWnspvDK97D8YG0MeifP +YveIPwIDAQABo4ICdDCCAnAwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRA/iZp +RzInMtGsIcgu7M+N1TVo6DBvBggrBgEFBQcBAQRjMGEwNgYIKwYBBQUHMAKGKmh0 +dHA6Ly9jZXJ0cy5hbmRlc3NjZC5jb20uY28vQ2xhc2VJSXYzLmNydDAnBggrBgEF +BQcwAYYbaHR0cDovL29jc3AuYW5kZXNzY2QuY29tLmNvMB4GA1UdEQQXMBWBE2Jp +Y2lwaXp6YUBnbWFpbC5jb20wggEjBgNVHSAEggEaMIIBFjCBwQYNKwYBBAGB9EgB +AgYIADCBrzCBrAYIKwYBBQUHAgIwgZ8MgZxMYSB1dGlsaXphY2nDs24gZGUgZXN0 +ZSBjZXJ0aWZpY2FkbyBlc3TDoSBzdWpldGEgYSBsYSBQQyBkZSBGYWN0dXJhY2nD +s24gRWxlY3Ryw7NuaWNhIHkgRFBDIGVzdGFibGVjaWRhcyBwb3IgQW5kZXMgU0NE +LiBDw7NkaWdvIGRlIEFjcmVkaXRhY2nDs246IDE2LUVDRC0wMDQwUAYNKwYBBAGB +9EgBAQEKADA/MD0GCCsGAQUFBwIBFjFodHRwczovL3d3dy5hbmRlc3NjZC5jb20u +Y28vZG9jcy9EUENfQW5kZXNTQ0QucGRmMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr +BgEFBQcDBDA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3JsLmFuZGVzc2NkLmNv +bS5jby9DbGFzZUlJdjMuY3JsMB0GA1UdDgQWBBRKPoh3BJM7SxEL0UXkSne2MyFO +jjAOBgNVHQ8BAf8EBAMCBeAwDQYJKoZIhvcNAQELBQADggIBAA6Zzor3kpJ6vNKv +TAeHaMfmJ/PaghQ1+Lab7Pwk+lsPsMETFu/IpEK5qij2bV54UNnqyLYOZtIbnWTG +qgT7QxQvy+/of/I3zzF+kH4/Lp2TSlHaDEb/airCZ3I2G23M9iaZzSwYuOsOaGwp +4ovkXlYwQ7FVNfIIoAq95m9cBAigb06bRIlVBVTQq44hQFQQG6aSIT7SSPtCwPhB +5CJzG09pmgbxizqN/yxdjWdfW6Av79dh6K4uQT++Vtyp5DuAkmfn0ehayrUbDLkH +9jQFF128U5pnOPfKWf22acXqQBapesUSV/HZUZ3PXoWeHWXcMdz0azxOEunS4+px +fs5UzInRAmEcYwJHqJT3irFz+J2RsZ0WnJHrTGqFoXniQQH8QbCHehDTGN7/v/v1 +LQBr5PQBnSEWhmrQ9uFrwPyMMg3yd+L75TaHLZ0MTSVezAG52oM9jBiU5tYXkSio +EfPdIsGlG74BybULGSG2OlTINlblj/lj7pL67V+gY9EGN1zzNKL5sW4YXlXewa6K +dTpLmmzWzI8Cm+tOuuJDSHSwMjn525O+Z/oyKLjdQdyfg1KnZYwNZFpMmCwfP5nd +cm4F7Anzb9HX9ciluAxc6as9TsNoDDTSAGPuUr0QvXqXd9ZCgXdNzdFeiaYknLP5 +hT4f5CoO2M8qcG+CH7HnkaOHrSuK + + + +5J1O+4ZedrSBUsb+9tjNPHI9RGeIJcJl3Wc/208OqMYcCwGLUkrYBgH78E7IayD5 +/wra04OU57cS1/+/yBUWYR60oqkaH2/8OXkJMqmjisVM/b58m7zyMw4TAF8N/Pbs +wnrKukFU2acxISwTLu36HC4hshWw8bEGP54szvv1xnwqcOAWNBCxcBuc9k1JD+SI +iqqPwHKh+6EDIooujo0H15w3rAxkHQRvYe6/IrpvH2sqJl1I3dLv0iqy9+d2l891 +KBA9Yebdw7m/+ufu+eqs+0zKrwV6QLhRFmceHzEkPMTFepc2COGf80OUNbI6WWns +pvDK97D8YG0MeifPYveIPw== +AQAB + + + +2025-03-16T16:51:26.699846YcIPspAVFcNg+B/galYrdCLYvLIEwFI4KWdSzcuupPY=C=CO, L=Bogota D.C., O=Andes SCD, OU=Division de certificacion entidad final, CN=CA ANDES SCD S.A. Clase II v3, OID.1.2.840.113549.1.9.1=info@andesscd.com.co4834208642831502931https://facturaelectronica.dian.gov.co/politicadefirma/v2/politicadefirmav2.pdfPolítica de firma para facturas electrónicas de la República de Colombia.dMoMvtcG5aIzgYo0tIsSQeVJBDnUnfSOfBpxXrmor0Y=supplierfalsehttps://catalogo-vpfe-hab.dian.gov.co/document/searchqr?documentkey=40d20d7af2d7ee471909e62fcb4beef7de82494e6c8df4e8349ca33a1246dea601b4cc9035e18972e853ecd435799eaa2024-04-3001160000.0092800.001067200.00 \ No newline at end of file diff --git a/examples/habilitacion/N000004.zip b/examples/habilitacion/N000004.zip new file mode 100644 index 0000000..9dcd2c2 Binary files /dev/null and b/examples/habilitacion/N000004.zip differ diff --git a/facho/fe/data/dian/codelist/TarifaImpuestoReteFuente-2.1.gc b/facho/fe/data/dian/codelist/TarifaImpuestoReteFuente-2.1.gc new file mode 100644 index 0000000..2ff8d6f --- /dev/null +++ b/facho/fe/data/dian/codelist/TarifaImpuestoReteFuente-2.1.gc @@ -0,0 +1,479 @@ + + + + + TarifaImpuestoReteFuente + Tarifas por Impuesto + 1 + urn:dian:names:especificacion:ubl:listacodigos:gc:TarifaImpuestos + urn:dian:names:especificacion:ubl:listacodigos:gc:TarifaImpuestos-2.1 + http://dian.gov.co/ubl/os-ubl-2.0/cl/gc/default/TarifaImpuestos-2.1.gc + + DIAN (Dirección de Impuestos y Aduanas Nacionales) + 195 + + + + + Code + Codigo Comun + + + + Name + Nombre + + + + Description + Descripcion + + + + CodeKey + + + + + + + 2.50 + + + ReteFuente + + + Compras generales (declarantes) + + + + + 3.50 + + + ReteFuente + + + Compras generales (no declarantes) + + + + + 1.50 + + + ReteFuente + + + Compras con tarjeta débito o crédito + + + + + 1.50 + + + ReteFuente + + + Compras de bienes o productos agrícolas o pecuarios sin procesamiento industrial + + + + + 2.50 + + + ReteFuente + + + Compras de bienes o productos agrícolas o pecuarios con procesamiento industrial (declarantes) + + + + + 3.50 + + + ReteFuente + + + Compras de bienes o productos agrícolas o pecuarios con procesamiento industrial declarantes (no declarantes) + + + + + 0.50 + + + ReteFuente + + + Compras de café pergamino o cereza + + + + + 0.10 + + + ReteFuente + + + Compras de combustibles derivados del petróleo + + + + + 1.00 + + + ReteFuente + + + Enajenación de activos fijos de personas naturales (notarías y tránsito son agentes retenedores) + + + + + 1.00 + + + ReteFuente + + + Compras de vehículos + + + + + 1.00 + + + ReteFuente + + + Compras de bienes raíces cuya destinación y uso sea vivienda de habitación (por las primeras 20.000 UVT, es decir hasta $637.780.000) + + + + + 2.50 + + + ReteFuente + + + Compras  de bienes raíces cuya destinación y uso sea vivienda de habitación (exceso de las primeras 20.000 UVT, es decir superior a $637.780.000) + + + + + 2.50 + + + ReteFuente + + + Compras  de bienes raíces cuya destinación y uso sea distinto a vivienda de habitación + + + + + 4.00 + + + ReteFuente + + + Servicios generales (declarantes) + + + + + 6.00 + + + ReteFuente + + + Servicios generales (no declarantes) + + + + + 4.00 + + + ReteFuente + + + Por emolumentos eclesiásticos (declarantes) + + + + + 3.50 + + + ReteFuente + + + Por emolumentos eclesiásticos (no declarantes) + + + + + 1.00 + + + ReteFuente + + + Servicios de transporte de carga + + + + + 3.50 + + + ReteFuente + + + Servicios de  transporte nacional de pasajeros por vía terrestre (declarantes) + + + + + 3.50 + + + ReteFuente + + + Servicios de  transporte nacional de pasajeros por vía terrestre (no declarantes) + + + + + 1.00 + + + ReteFuente + + + Servicios de  transporte nacional de pasajeros por vía aérea o marítima + + + + + 1.00 + + + ReteFuente + + + Servicios prestados por empresas de servicios temporales (sobre AIU) + + + + + 2.00 + + + ReteFuente + + + Servicios prestados por empresas de vigilancia y aseo (sobre AIU) + + + + + 2.00 + + + ReteFuente + + + Servicios integrales de salud prestados por IPS + + + + + 3.50 + + + ReteFuente + + + Servicios de hoteles y restaurantes (declarantes) + + + + + 3.50 + + + ReteFuente + + + Servicios de hoteles y restaurantes (no declarantes) + + + + + 4.00 + + + ReteFuente + + + Arrendamiento de bienes muebles + + + + + 3.50 + + + ReteFuente + + + Arrendamiento de bienes inmuebles (declarantes) + + + + + 3.50 + + + ReteFuente + + + Arrendamiento de bienes inmuebles (no declarantes) + + + + + 2.50 + + + ReteFuente + + + Otros ingresos tributarios (declarantes) + + + + + 3.50 + + + ReteFuente + + + Otros ingresos tributarios (no declarantes) + + + + + 11.00 + + + ReteFuente + + + Honorarios y comisiones (personas jurídicas) + + + + + 11.00 + + + ReteFuente + + + Honorarios y comisiones personas naturales que suscriban contrato o cuya sumatoria de los pagos o abonos en cuenta superen las 3.300 UVT ($105.135.000) + + + + + 10.00 + + + ReteFuente + + + Honorarios y comisiones (no declarantes) + + + + + 3.50 + + + ReteFuente + + + Servicios de licenciamiento o derecho de uso de software + + + + + 7.00 + + + ReteFuente + + + Intereses o rendimientos financieros + + + + + 4.00 + + + ReteFuente + + + Rendimientos financieros provenientes de títulos de renta fija + + + + + 20.00 + + + ReteFuente + + + Loterías, rifas, apuestas y similares + + + + + 3.00 + + + ReteFuente + + + Retención en colocación independiente de juegos de suerte y azar + + + + + 2.00 + + + ReteFuente + + + Contratos de construcción  y urbanización + + + +