Recuperación de CFDI por medio de FolioOperacion
(recupera CFDI y CFDI que ampara Retenciones e Información de pagos)

Reachcore ha desarrollado un servicio para recuperar un CFDI que haya certificado previamente con base en el FolioOperacion que hayan asociado al Comprobante.

Contenido

Características generales

El servicio está pensado para obtener información de un comprobante que se haya mandado a emitir en la plataforma de certificación de Reachcore y en ese comprobante se haya especificado un identificador único por parte del Emisor. Ese identificador (folio de operación) es independiente de los elementos que conforman la cadena original que se emplea en el proceso de certificación de un CFDI.

¿Qué necesito?

Para poder hacer uso del servicio se necesita lo siguiente:

Ubicación del servicio

La URL donde se encuentra la definición del Web Service (WSDL) es:

Ambiente Ubicación de WSDL
Piloto https://oat.reachcore.com/api/ws/6.0/pacservices/FolioOperacion.svc/basic?wsdl
Producción https://go.reachcore.com/api/ws/6.0/pacservices/FolioOperacion.svc/basic?wsdl

Método [RecuperaComprobante]

En este método del web service, se realiza la solicitud de recuperación de un CFDI con base en un folio de operación que identifique al comprobante independientemente de si se trata de Comprobantes Fiscales Digitales por Internet (CFDI) o Comprobante Fiscal Digital a través de Internet que ampara Retenciones e Información de pagos. A continuación se describen los elementos que se envían en la solicitud y los que se obtienen en la respuesta:

Solicitud RecuperaComprobante

Elemento Uso Descripción
ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
FolioOperacion Requerido Identificador de no más de 200 caracteres que identifica al Comprobante que se desea recuperar


Ejemplo de la solicitud de recuperación:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:reachcore.com:services:api:ws:pacservices:6.0">
   <soapenv:Header>
      <cus:ApiKey>?</cus:ApiKey>
   </soapenv:Header>
   <soapenv:Body>
      <urn:ComprobanteRequest>
         <urn:FolioOperacion>INTERNO-2020-06-11_000001</urn:FolioOperacion>
      </urn:ComprobanteRequest>
   </soapenv:Body>
</soapenv:Envelope>

Respuesta: RecuperaComprobante

Como respuesta a la solicitud de recuperación del comprobante, se obtendrá lo siguiente:

Cuando fue exitosa la transacción

Existen dos tipos de respuestas exitosas:

  • Cuando se pudo recuperar el documento solicitado por medio del folio de operación.
  • Cuando no se pudo recuperar el documento solicitado por medio del folio de operación pero sí se pudo obtener el folio fiscal y la fecha de emisión del mismo. Este escenario ocurrirá para comprobantes que tienen más de 6 meses de certificados por Reachcore.

Para el primer escenario, estos son los campos que se regresan como parte de la respuesta:

Elemento Descripción
TransactionId Identificador de la transacción.
Comprobante El comprobante asociado al folio de operación especificado en la petición. Se incluye el mismo dentro de un elemento <![CDATA[...]]>.
Retencion El CFDI de retenciones e información de pagos asociado al folio de operación especificado en la petición. Se incluye el mismo dentro de un elemento <![CDATA[...]]>.


(los nodos Comprobante y Retencion son mutuamente excluyentes, es decir: no puede venir un nodo Comprobante y un nodo Retencion al mismo tiempo)

Este es el mensaje de respuesta cuando se recuperó exitosamente un CFDI no mayor a 6 meses:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <ComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>432d07e0-1054-45c8-b56f-f9aa71aef21f</TransactionId>
         <Comprobante><![CDATA[<cfdi:Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" Version="3.3" LugarExpedicion="11520" TipoDeComprobante="I" Descuento="30.0000" SubTotal="135.0000" Total="101.8500" Moneda="MXN" Fecha="2021-01-25T13:29:16" NoCertificado="30001000000400002434" FormaPago="99" Folio="101" Serie="AUTOMATION" MetodoPago="PPD" Certificado="MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==" Sello="isRbYYbU1DXhlIx6yQ1Hvq3sZ8IHFmPl/iWrllfsgCHUrPpjrfouA6eNBDYFKCW867PWUz5Sg5HJewc8gOIDdARBIKDTyMrO/rZRgn0/YTPvNqtap8GcbFXKJaiwFt1CE+FyaRD7KoqNrguVKYM0zDdwmmxHTX4+RdhFsqWX0LAiLCSIt/ADvHuFA+EZEtnth3AnXiP3Wi2ONdXfTP5aq/jssrPEUFnxB/z7bhwwjuyBrp/X7EkRBqcvyZRXpTB55z6gSNkKswHedTWViuv3gxcjWcdgkAGyrGluCY4QgQXWW01C19E7GG0xSTOuD2cM4J6TnUyjJ0zuFfNOBb5FAg==" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd"><cfdi:Emisor Rfc="EKU9003173C9" RegimenFiscal="601"  /><cfdi:Receptor Rfc="CACX7605101P8" UsoCFDI="G01" /><cfdi:Conceptos><cfdi:Concepto ClaveProdServ="10111301" Cantidad="3" ClaveUnidad="C83" Unidad="Metro" Descripcion="Descripcion" ValorUnitario="45" Importe="135.0000" Descuento="30.0000"><cfdi:Impuestos><cfdi:Traslados><cfdi:Traslado Base="105" Impuesto="003" TasaOCuota="0.030000" Importe="3.150000" TipoFactor="Tasa" /></cfdi:Traslados><cfdi:Retenciones><cfdi:Retencion Base="105" Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.060000" Importe="6.300000" /></cfdi:Retenciones></cfdi:Impuestos></cfdi:Concepto></cfdi:Conceptos><cfdi:Impuestos TotalImpuestosTrasladados="3.1500" TotalImpuestosRetenidos="6.3000"><cfdi:Retenciones><cfdi:Retencion Impuesto="003" Importe="6.300000" /></cfdi:Retenciones><cfdi:Traslados><cfdi:Traslado Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.030000" Importe="3.150000" /></cfdi:Traslados></cfdi:Impuestos><cfdi:Complemento><tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="9ABE9C31-FF0D-4B53-ACBB-B70C36CDE106" FechaTimbrado="2021-01-26T19:08:56" RfcProvCertif="ASE0201179X0" SelloCFD="isRbYYbU1DXhlIx6yQ1Hvq3sZ8IHFmPl/iWrllfsgCHUrPpjrfouA6eNBDYFKCW867PWUz5Sg5HJewc8gOIDdARBIKDTyMrO/rZRgn0/YTPvNqtap8GcbFXKJaiwFt1CE+FyaRD7KoqNrguVKYM0zDdwmmxHTX4+RdhFsqWX0LAiLCSIt/ADvHuFA+EZEtnth3AnXiP3Wi2ONdXfTP5aq/jssrPEUFnxB/z7bhwwjuyBrp/X7EkRBqcvyZRXpTB55z6gSNkKswHedTWViuv3gxcjWcdgkAGyrGluCY4QgQXWW01C19E7GG0xSTOuD2cM4J6TnUyjJ0zuFfNOBb5FAg==" NoCertificadoSAT="20001000000300022323" SelloSAT="UmH5FeN2dTy3iJe91wagUOfnIdxJ1q3m71FM23mdxLBY7HBACbPGq5aeU5F76lQqXJMYzOWR0J/UUnQgXM2gq5NEn+loMynR+Y1gdj79KfBb34o85wIIKxjovCMLHKg2gGFM3fA4b+hiUWx1iV/VkuLIKsbS2e85etacgOdXQnn2yztCKc4ZmWT12jysgAb3X9aENcq6ckmGAUh6kfkDzA5brNdAxnX1FK87NAc0XzERwDPsqZMzEtJ+tfJrA5dWNPG2MFvkV59mx0zbIq9oFjuH+yY3u6LU7Zo/+s4HqquximtU/Djd3hcdChURq4vIrYpGsbiKHF7DeuKad4sVoA==" /></cfdi:Complemento></cfdi:Comprobante>]]></Comprobante>
      </ComprobanteResponse>
   </s:Body>
</s:Envelope>

Para el segundo escenario, estos son los campos que se regresan como parte de la respuesta:

Elemento Descripción
TransactionId Identificador de la transacción.
UUID El folio fiscal del Comprobante solicitado.
FechaEmision Fecha de emisión del comprobante solicitado.


Este es el mensaje de respuesta cuando se recuperó exitosamente la información de un CFDI mayor a 6 meses:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <ComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>433d07e0-2063-45c8-c56f-f9aa71aef21f</TransactionId>
         <UUID>38F89C20-FDCB-4E26-B59B-386E0F52E36F</UUID>
         <FechaEmision>2019-12-27T13:28:00</FechaEmision>
      </ComprobanteResponse>
   </s:Body>
</s:Envelope>


Cuando la recuperación no fue posible

Elemento Descripción
TransactionId Identificador de la transacción; para fines de diagnóstico y soporte. Es necesario proporcionar este identificador en caso de reportar a Soporte Reachcore
Error Objeto para la descripción de errores.
Code Una cadena que identifica el error específico.
Message La descripción del código de error, para fines de facilitar el diagnóstico en las aplicaciones cliente sin tener que referirse a la tabla de errores. Su valor será siempre el mismo para un código de error específico.

A continuación se muestran ejemplos de mensaje de respuesta con un error en el proceso de recuperación:

  • Ejemplo de respuesta con error cuando no se encontró registro del folio de operación especificado
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <ComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>a5060ae6-442f-4f52-a754-232f9b4d0f7d</TransactionId>
         <Error>
            <Code>405</Code>
            <Message>El folio de operación es incorrecto.</Message>
            <Details>No existe registro del folio de operación: 'INTERNO-2020-06-11_000002'.</Details>
         </Error>
      </ComprobanteResponse>
   </s:Body>
</s:Envelope>
  • Ejemplo de respuesta con error cuando el API KEY especificado no es valido
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <ComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>6a49eee3-5e68-446a-9c60-954a8cf57329</TransactionId>
         <Error>
            <Code>AuthenticationFailed</Code>
            <Message>Credenciales inválidas.</Message>
            <InnerErrors>
               <Error>
                  <Code>101</Code>
                  <Message>API Key no válida.</Message>
                  <Target>Consulta de Folio de Operación</Target>
               </Error>
            </InnerErrors>
         </Error>
      </ComprobanteResponse>
   </s:Body>
</s:Envelope>

Códigos de error

A continuación se listan los códigos de error que mostrará la plataforma

Error.Code Error.InnerErrors.Error.Code Significado Descripción
AuthenticationFailed 100 API Key Requerida El elemento ApiKey esta vacío o contiene espacios.
AuthenticationFailed 101 API Key no valida El API Key no existe en Reachcore.
AuthenticationFailed 102 API Key no valida El API Key proporcionado no se encuentra activo.
AuthenticationFailed 105 Cuenta suspendida La cuenta asociada al API Key se encuentra suspendida.
AuthenticationFailed 106 API Key no valida El API Key proporcionado es inválido.
401 - Debe especificar un Folio de Operación no vacío.  
405 - El folio de operación es incorrecto No existe registro del folio de operación proporcionado.
InvalidRequest 999 Error interno del servicio. Error de la plataforma de Reachcore
InternalServerError 999 No podemos procesar esta solicitud. Favor de contactar a soporte indicando el ID de transacción.  

Método [RecuperaFolioComprobante]

En este método del web service, se realiza la solicitud de recuperación de un listado de los CFDI con base en un folio de operación que identifique al comprobante independientemente de si se trata de Comprobantes Fiscales Digitales por Internet (CFDI) o Comprobante Fiscal Digital a través de Internet que ampara Retenciones e Información de pagos. A continuación se describen los elementos que se envían en la solicitud y los que se obtienen en la respuesta:

Solicitud RecuperaComprobante

Elemento Uso Descripción
ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
FechaInicial Requerido Especifica la fecha inicial del periodo que se desea recuperar. El formato de la fecha debe estar en yyyy-mm-dd
FechaFinal Requerido Especifica la fecha final del periodo que se desea recuperar. El formato de la fecha debe estar en yyyy-mm-dd


Ejemplo de la solicitud de recuperación:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:reachcore.com:services:api:ws:pacservices:6.0">
   <soapenv:Header>
      <cus:ApiKey>?</cus:ApiKey>
   </soapenv:Header>
   <soapenv:Body>
      <urn:FoliosRegistradosRequest>
         <urn:FechaInicial>2021-01-25</urn:FechaInicial>
         <urn:FechaFinal>2021-01-26</urn:FechaFinal>
      </urn:FoliosRegistradosRequest>
   </soapenv:Body>
</soapenv:Envelope>

Respuesta: RecuperaFolioComprobante

Como respuesta a la solicitud de recuperación del folio de operación del Comprobante, se obtendrá lo siguiente:

Cuando fue exitosa la transacción

Elemento Descripción
TransactionId Identificador de la transacción.
Comprobantes Estructura de datos que contiene el Total de Comprobantes encontrados en el periodo consultado y un arreglo de Comprobante con los siguientes metadatos: Version del CFDI, FolioOperacion asociado al Comprobante, UUID del Comprobante, FechaEmision especificada en el Comprobante, RFCEmisor, RFCReceptor, Serie, Folio y el Total del Comprobante.
Retenciones Estructura de datos que contiene el Total de CFDI de Retenciones e Información de Pagos encontrados en el periodo consultado y un arreglo de Retencion con los siguientes metadatos: Version de la Retención, FolioOperacion asociado, UUID de la Retención, FechaEmision especificada en la Retención, RFCEmisor, RFCReceptor, FolioInt, montoTotOperacion, montoTotGrav, montoTotExent, y el montoTotRet declarados en la Retención.


Este es el un mensaje de respuesta exitosa:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <FoliosRegistradosResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>3790e35b-95d5-46b2-8a35-d23288cd0022</TransactionId>
         <Comprobantes Total="2">
            <Comprobante Version="3.3" FolioOperacion="INTERNO-2020-06-11_000001" UUID="9abe9c31-ff0d-4b53-acbb-b70c36cde106" FechaEmision="2021-01-25T13:29:16" RFCEmisor="EKU9003173C9" RFCReceptor="CACX7605101P8" Serie="AUTOMATION" Folio="101" Total="101.850000"/>
            <Comprobante Version="3.3" FolioOperacion="INTERNO-2020-06-27_000014" UUID="30376a74-033b-427e-bce8-8364e3de3053" FechaEmision="2021-01-26T13:29:16" RFCEmisor="EKU9003173C9" RFCReceptor="CACX7605101P8" Serie="AUTOMATION" Folio="214" Total="101.850000"/>
         </Comprobantes>
         <Retenciones Total="0"/>
      </FoliosRegistradosResponse>
   </s:Body>
</s:Envelope>


Cuando la consulta no fue posible

Elemento Descripción
TransactionId Identificador de la transacción; para fines de diagnóstico y soporte. Es necesario proporcionar este identificador en caso de reportar a Soporte Reachcore
Error Objeto para la descripción de errores.
Code Una cadena que identifica el error específico.
Message La descripción del código de error, para fines de facilitar el diagnóstico en las aplicaciones cliente sin tener que referirse a la tabla de errores. Su valor será siempre el mismo para un código de error específico.

A continuación se muestran ejemplos de mensaje de respuesta con un error en el proceso de recuperación:

  • Ejemplo de respuesta con error cuando no se pudo llevar a cabo la consulta solicitada
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <FoliosRegistradosResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>4fc97877-231f-4119-a8d0-b9ce75669831</TransactionId>
         <Error>
            <Code>406</Code>
            <Message>El rango de las fechas para recuperar los folios registrados es incorrecto.</Message>
            <Details>La fecha inicial [2021-02-01] debe ser menor a la fecha final [2021-01-26].</Details>
         </Error>
      </FoliosRegistradosResponse>
   </s:Body>
</s:Envelope>

Códigos de error

A continuación se listan los códigos de error que mostrará la plataforma

Error.Code Error.InnerErrors.Error.Code Significado Descripción
AuthenticationFailed 100 API Key Requerida El elemento ApiKey esta vacío o contiene espacios.
AuthenticationFailed 101 API Key no valida El API Key no existe en Reachcore.
AuthenticationFailed 102 API Key no valida El API Key proporcionado no se encuentra activo.
AuthenticationFailed 105 Cuenta suspendida La cuenta asociada al API Key se encuentra suspendida.
AuthenticationFailed 106 API Key no valida El API Key proporcionado es inválido.
406 - La fecha inicial FechaInicial debe ser menor a la fecha final FechaFinal.  
406 - El periodo a consultar no puede ser mayor a 3 meses.  
InvalidRequest 999 Error interno del servicio. Error de la plataforma de Reachcore
InternalServerError 999 No podemos procesar esta solicitud. Favor de contactar a soporte indicando el ID de transacción.  

Para mayor información o aclaración de dudas relacionadas con esta guía, por favor envía un correo a MEX-soporte@sovos.com


Regresar