diff --git a/cfdiclient/__init__.py b/cfdiclient/__init__.py
index 7b492a6..258e56c 100644
--- a/cfdiclient/__init__.py
+++ b/cfdiclient/__init__.py
@@ -2,7 +2,8 @@
from .autenticacion import Autenticacion
from .descargamasiva import DescargaMasiva
from .fiel import Fiel
-from .solicitadescarga import SolicitaDescarga
+from .solicitadescargaEmitidos import SolicitaDescargaEmitidos
+
from .validacioncfdi import Validacion
from .verificasolicituddescarga import VerificaSolicitudDescarga
@@ -10,11 +11,12 @@
'Autenticacion',
'DescargaMasiva',
'Fiel',
- 'SolicitaDescarga',
+ 'SolicitaDescargaEmitidos',
+ 'SolicitaDescargaRecibidos',
'Validacion',
'VerificaSolicitudDescarga',
]
name = 'cfdiclient'
-version = '1.5.9'
+version = '1.6.0'
diff --git a/cfdiclient/solicitadescarga.py b/cfdiclient/solicitadescargaEmitidos.py
similarity index 82%
rename from cfdiclient/solicitadescarga.py
rename to cfdiclient/solicitadescargaEmitidos.py
index 48d50dd..16a460e 100644
--- a/cfdiclient/solicitadescarga.py
+++ b/cfdiclient/solicitadescargaEmitidos.py
@@ -2,13 +2,13 @@
from .webservicerequest import WebServiceRequest
-class SolicitaDescarga(WebServiceRequest):
+class SolicitaDescargaEmitidos(WebServiceRequest):
- xml_name = 'solicitadescarga.xml'
+ xml_name = 'solicitadescargaEmitidos.xml'
soap_url = 'https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc'
- soap_action = 'http://DescargaMasivaTerceros.sat.gob.mx/ISolicitaDescargaService/SolicitaDescarga'
- solicitud_xpath = 's:Body/des:SolicitaDescarga/des:solicitud'
- result_xpath = 's:Body/SolicitaDescargaResponse/SolicitaDescargaResult'
+ soap_action = 'http://DescargaMasivaTerceros.sat.gob.mx/ISolicitaDescargaService/SolicitaDescargaEmitidos'
+ solicitud_xpath = 's:Body/des:SolicitaDescargaEmitidos/des:solicitud'
+ result_xpath = 's:Body/SolicitaDescargaEmitidosResponse/SolicitaDescargaEmitidosResult'
def solicitar_descarga(
self, token, rfc_solicitante, fecha_inicial, fecha_final,
diff --git a/cfdiclient/solicitadescarga.xml b/cfdiclient/solicitadescargaEmitidos.xml
similarity index 61%
rename from cfdiclient/solicitadescarga.xml
rename to cfdiclient/solicitadescargaEmitidos.xml
index 9588b34..b8fbcd8 100644
--- a/cfdiclient/solicitadescarga.xml
+++ b/cfdiclient/solicitadescargaEmitidos.xml
@@ -1,13 +1,14 @@
+ xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
-
+
-
+
diff --git a/cfdiclient/solicitadescargaRecibidos.py b/cfdiclient/solicitadescargaRecibidos.py
new file mode 100644
index 0000000..57fd5c8
--- /dev/null
+++ b/cfdiclient/solicitadescargaRecibidos.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+from .webservicerequest import WebServiceRequest
+
+
+class SolicitaDescargaRecibidos(WebServiceRequest):
+
+ xml_name = 'solicitadescargaRecibidos.xml'
+ soap_url = 'https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/SolicitaDescargaService.svc'
+ soap_action = 'http://DescargaMasivaTerceros.sat.gob.mx/ISolicitaDescargaService/SolicitaDescargaRecibidos'
+ solicitud_xpath = 's:Body/des:SolicitaDescargaRecibidos/des:solicitud'
+ result_xpath = 's:Body/SolicitaDescargaRecibidosResponse/SolicitaDescargaRecibidosResult'
+
+ def solicitar_descarga(
+ self, token, rfc_solicitante, fecha_inicial, fecha_final,
+ rfc_emisor=None, rfc_receptor=None, tipo_solicitud='CFDI',
+ tipo_comprobante=None, estado_comprobante=None,
+ rfc_a_cuenta_terceros=None, complemento=None, uuid=None
+ ):
+
+ arguments = {
+ 'RfcSolicitante': rfc_solicitante.upper(),
+ 'FechaFinal': fecha_final.strftime(self.DATE_TIME_FORMAT),
+ 'FechaInicial': fecha_inicial.strftime(self.DATE_TIME_FORMAT),
+ 'TipoSolicitud': tipo_solicitud,
+ 'TipoComprobante': tipo_comprobante,
+ 'EstadoComprobante': estado_comprobante,
+ 'RfcACuentaTerceros': rfc_a_cuenta_terceros,
+ 'Complemento': complemento,
+ 'UUID': uuid,
+ 'RfcReceptor': rfc_receptor
+ }
+
+ element_response = self.request(token, arguments)
+
+ ret_val = {
+ 'id_solicitud': element_response.get('IdSolicitud'),
+ 'cod_estatus': element_response.get('CodEstatus'),
+ 'mensaje': element_response.get('Mensaje')
+ }
+
+ return ret_val
diff --git a/cfdiclient/solicitadescargaRecibidos.xml b/cfdiclient/solicitadescargaRecibidos.xml
new file mode 100644
index 0000000..abe726c
--- /dev/null
+++ b/cfdiclient/solicitadescargaRecibidos.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
diff --git a/cfdiclient/webservicerequest.py b/cfdiclient/webservicerequest.py
index 98f7f9f..2091ac0 100644
--- a/cfdiclient/webservicerequest.py
+++ b/cfdiclient/webservicerequest.py
@@ -47,7 +47,7 @@ def set_request_arguments(self, arguments: dict) -> etree.Element:
for i, rfc_receptor in enumerate(arguments[key]):
if i == 0:
self.set_element_text(
- 's:Body/des:SolicitaDescarga/des:solicitud/des:RfcReceptores/des:RfcReceptor',
+ 's:Body/des:SolicitaDescargaEmitidos/des:solicitud/des:RfcReceptores/des:RfcReceptor',
rfc_receptor
)
# TODO: Agregar mas de un RFC
diff --git a/ejemplo_completo.py b/ejemplo_completo.py
index 715f980..4895e7f 100644
--- a/ejemplo_completo.py
+++ b/ejemplo_completo.py
@@ -6,7 +6,8 @@
from cfdiclient import Autenticacion
from cfdiclient import DescargaMasiva
from cfdiclient import Fiel
-from cfdiclient import SolicitaDescarga
+from cfdiclient import solicitadescargaEmitidos
+from cfdiclient import solicitadescargaRecibidos
from cfdiclient import VerificaSolicitudDescarga
##
# Constantes de Loggin
@@ -20,8 +21,8 @@
cer_der = open(os.path.join(PATH, FIEL_CER), 'rb').read()
key_der = open(os.path.join(PATH, FIEL_KEY), 'rb').read()
-FECHA_INICIAL = datetime.datetime(2024, 3, 1)
-FECHA_FINAL = datetime.datetime(2024, 3, 30)
+FECHA_INICIAL = datetime.datetime(2025, 6, 1)
+FECHA_FINAL = datetime.datetime(2025, 6, 2)
fiel = Fiel(cer_der, key_der, FIEL_PAS)
@@ -31,17 +32,22 @@
print('TOKEN: ', token)
-descarga = SolicitaDescarga(fiel)
+#descarga = solicitadescargaEmitidos.SolicitaDescargaEmitidos(fiel)
+descarga = solicitadescargaRecibidos.SolicitaDescargaRecibidos(fiel)
-# EMITIDOS
-# solicitud = descarga.solicitar_descarga(
-# token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_emisor=RFC, tipo_solicitud='CFDI',
-# )
-# RECIBIDOS
+
+# Emitidos
+#solicitud = descarga.solicitar_descarga(
+# token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_emisor=RFC,tipo_solicitud='CFDI',
+#)
+
+# Recibidos
solicitud = descarga.solicitar_descarga(
- token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_receptor=RFC, tipo_solicitud='CFDI',
+ token, RFC, FECHA_INICIAL, FECHA_FINAL, rfc_receptor=RFC,tipo_solicitud='Metadata', estado_comprobante='Todos',
)
+
+
print('solicitar_descarga:', solicitud)
if solicitud['cod_estatus'] != '5000':
diff --git a/setup.py b/setup.py
index 73bcf66..54c5cf7 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@
setuptools.setup(
name='cfdiclient',
- version='1.5.9',
+ version='1.6.0',
author='Luis Iturrios',
author_email='luisiturrios1@gmail.com',
description='Cliente Python Web Service del SAT para la descarga masiva de CFDIs',