Recuperación de Solicitud de Descarga Masiva Registrada Previamente

Recuperación de Solicitud de Descarga Masiva Registrada Previamente

Esta transacción permite recuperar la información asociada a una solicitud de descarga masiva registrada previamente.

OBTENER_SOLICITUD_DM_SAT

El valor suministrado en el parámetro Data1 es el Id de la solicitud en cuestión; este valor fue obtenido en la transacción de registro REGISTRAR_SOLICITUD_DM_SAT explicada en el artículo anterior.

El parámetro de la solicitud se especifica en Data1 (Data2 y Data3 vacíos).
Ejemplo de valor para el parámetro Data1: 17

SOLICITUD

A continuación se muestra la manera en que debe realizarse la solicitud:
  1. <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://www.fact.com.mx/schema/ws">
       <soap:Header/>
       <soap:Body>
          <ws:RequestTransaction>       
             <ws:Requestor>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:Requestor>       
             <ws:Transaction>OBTENER_SOLICITUD_DM_SAT</ws:Transaction>       
             <ws:Country>MX</ws:Country>       
             <ws:Entity>JES900109Q90</ws:Entity>       
             <ws:User>0c320b03-d4f1-47bc-9fb4-77995f9bf33e</ws:User>       
             <ws:UserName>Jan_Test</ws:UserName>       
             <ws:Data1>17</ws:Data1>       
             <ws:Data2></ws:Data2>       
             <ws:Data3></ws:Data3>
          </ws:RequestTransaction>
       </soap:Body>
    </soap:Envelope>

RESPUESTA
  1. <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <soap:Body>
          <RequestTransactionResponse xmlns="http://www.fact.com.mx/schema/ws">
             <RequestTransactionResult>
                <Request>
                   <Requestor>00000000-0000-0000-0000-000000000000</Requestor>
                   <RequestorActive>true</RequestorActive>
                   <Transaction>OBTENER_SOLICITUD_DM_SAT</Transaction>
                   <Country>MX</Country>
                   <Entity>JES900109Q90</Entity>
                   <User>00000000-0000-0000-0000-000000000000</User>
                   <UserName>Jan_Test</UserName>
                   <Id>687d46e5-835a-40c5-8f30-213a02da3e33</Id>
                   <TimeStamp>2020-05-19T15:43:09.0702889-05:00</TimeStamp>
                </Request>
                <Response>
                   <Result>true</Result>
                   <TimeStamp>2020-05-19T15:43:10.8202914-05:00</TimeStamp>
                   <LastResult/>
                   <Code>1</Code>
                   <Description/>
                   <Hint/>
                   <Data>1251 687d46e5-835a-40c5-8f30-213a02da3e33</Data>
                   <Processor>TEST-BACK02</Processor>
                </Response>
                <ResponseData>
                   <ResponseData1>XML de respuesta codificado en Base64</ResponseData1>
                   <ResponseData2/>
                   <ResponseData3/>
                </ResponseData>
             </RequestTransactionResult>
          </RequestTransactionResponse>
       </soap:Body>
    </soap:Envelope>

Ejemplo de valor devuelto en ResponseData1 para solicitud previa (aunque se muestra plano, y en varias líneas, el valor de ResponseData1 viene codificado Base64):
  1. <?xml version="1.0" encoding="utf-8"?>
    <ResultadoRecuperacionSolicitudDM xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Info>
        <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
          <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Table1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="Id" type="xs:int" minOccurs="0" />
                      <xs:element name="TaxID" type="xs:string" minOccurs="0" />
                      <xs:element name="Servicio" type="xs:string" minOccurs="0" />
                      <xs:element name="FechaInicial" type="xs:dateTime" minOccurs="0" />
                      <xs:element name="FechaFinal" type="xs:dateTime" minOccurs="0" />
                      <xs:element name="TipoSolicitud" type="xs:string" minOccurs="0" />
                      <xs:element name="TipoTaxID" type="xs:string" minOccurs="0" />
                      <xs:element name="Identificador" type="xs:string" minOccurs="0" />
                      <xs:element name="EnrolledTimeStamp" type="xs:dateTime" minOccurs="0" />
                      <xs:element name="EstadoSolicitud" type="xs:int" minOccurs="0" />
                      <xs:element name="CodigoEstadoSolicitud" type="xs:string" minOccurs="0" />
                      <xs:element name="NumeroCFDIs" type="xs:int" minOccurs="0" />
                      <xs:element name="CodEstatus" type="xs:string" minOccurs="0" />
                      <xs:element name="Mensaje" type="xs:string" minOccurs="0" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet>
            <Table1 diffgr:id="Table11" msdata:rowOrder="0">
              <Id>17</Id>
              <TaxID>JES900109Q90</TaxID>
              <Servicio>CFDIS</Servicio>
              <FechaInicial>2019-03-10T00:00:00-06:00</FechaInicial>
              <FechaFinal>2019-03-14T23:59:59-06:00</FechaFinal>
              <TipoSolicitud>CFDI</TipoSolicitud>
              <TipoTaxID>EMISOR</TipoTaxID>
              <Identificador>c87117f0-2f87-4906-b647-4dfcc16722a4</Identificador>
              <EnrolledTimeStamp>2019-05-13T22:50:00-05:00</EnrolledTimeStamp>
              <EstadoSolicitud>-10</EstadoSolicitud>
              <CodigoEstadoSolicitud>5000</CodigoEstadoSolicitud>
              <NumeroCFDIs>41259</NumeroCFDIs>
              <CodEstatus>5000</CodEstatus>
              <Mensaje>Solicitud Aceptada</Mensaje>
            </Table1>
          </NewDataSet>
        </diffgr:diffgram>
      </Info>
      <Files>
        <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
          <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Table1">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="IdArchivo" type="xs:int" minOccurs="0" />
                      <xs:element name="IdentificadorArchivo" type="xs:string" minOccurs="0" />
                      <xs:element name="EstadoArchivo" type="xs:int" minOccurs="0" />
                      <xs:element name="CodEstatusArchivo" type="xs:string" minOccurs="0" />
                      <xs:element name="MensajeArchivo" type="xs:string" minOccurs="0" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet>
            <Table1 diffgr:id="Table11" msdata:rowOrder="0">
              <IdArchivo>41</IdArchivo>
              <IdentificadorArchivo>C87117F0-2F87-4906-B647-4DFCC16722A4_01</IdentificadorArchivo>
              <EstadoArchivo>-2</EstadoArchivo>
              <CodEstatusArchivo>5000</CodEstatusArchivo>
              <MensajeArchivo>Solicitud Aceptada</MensajeArchivo>
            </Table1>
            <Table1 diffgr:id="Table12" msdata:rowOrder="1">
              <IdArchivo>42</IdArchivo>
              <IdentificadorArchivo>C87117F0-2F87-4906-B647-4DFCC16722A4_02</IdentificadorArchivo>
              <EstadoArchivo>-2</EstadoArchivo>
              <CodEstatusArchivo>5000</CodEstatusArchivo>
              <MensajeArchivo>Solicitud Aceptada</MensajeArchivo>
            </Table1>
            <Table1 diffgr:id="Table13" msdata:rowOrder="2">
              <IdArchivo>43</IdArchivo>
              <IdentificadorArchivo>C87117F0-2F87-4906-B647-4DFCC16722A4_03</IdentificadorArchivo>
              <EstadoArchivo>-2</EstadoArchivo>
              <CodEstatusArchivo>5000</CodEstatusArchivo>
              <MensajeArchivo>Solicitud Aceptada</MensajeArchivo>
            </Table1>
            <Table1 diffgr:id="Table14" msdata:rowOrder="3">
              <IdArchivo>44</IdArchivo>
              <IdentificadorArchivo>C87117F0-2F87-4906-B647-4DFCC16722A4_04</IdentificadorArchivo>
              <EstadoArchivo>-2</EstadoArchivo>
              <CodEstatusArchivo>5000</CodEstatusArchivo>
              <MensajeArchivo>Solicitud Aceptada</MensajeArchivo>
            </Table1>
            <Table1 diffgr:id="Table15" msdata:rowOrder="4">
              <IdArchivo>45</IdArchivo>
              <IdentificadorArchivo>C87117F0-2F87-4906-B647-4DFCC16722A4_05</IdentificadorArchivo>
              <EstadoArchivo>-2</EstadoArchivo>
              <CodEstatusArchivo>5000</CodEstatusArchivo>
              <MensajeArchivo>Solicitud Aceptada</MensajeArchivo>
            </Table1>
            <Table1 diffgr:id="Table16" msdata:rowOrder="5">
              <IdArchivo>46</IdArchivo>
              <IdentificadorArchivo>C87117F0-2F87-4906-B647-4DFCC16722A4_06</IdentificadorArchivo>
              <EstadoArchivo>-2</EstadoArchivo>
              <CodEstatusArchivo>5000</CodEstatusArchivo>
              <MensajeArchivo>Solicitud Aceptada</MensajeArchivo>
            </Table1>
          </NewDataSet>
        </diffgr:diffgram>
      </Files>
    </ResultadoRecuperacionSolicitudDM>

En ResponseData1 se devuelven dos NewDataSet serializados de la manera que siempre se ha entregado al Front para transacciones de este tipo.

El primer NewDataSet, de nombre Info, devuelve toda la información disponible para la solicitud que se está recuperando; este NewDataSet siempre contiene un único registro.

El segundo NewDataSet, de nombre Files, devuelve toda la información disponible para cada uno de los archivos asociados a la solicitud de descarga; este NewDataSet puede tener de 0 a "n" registros.

La respuesta para una solicitud que no tuviera archivo tendría este formato (Files vacío):

A continuación, se explica el significado de la información que se devuelve en cada NewDataSet.

Info:

Id: Identifica, de manera única, la Solicitud, con este se puede dar seguimiento en otras transacciones.

TaxID: RFC propietario de la Solicitud de Descarga Masiva.

Servicio: Tipo de servicio de la Solicitud de Descarga Masiva (CFDIS, RETENCIONES).

FechaInicial: Fecha inicial de la Solicitud de Descarga Masiva.

FechaFinal: Fecha final de la Solicitud de Descarga Masiva.

TipoSolicitud: Tipo de solicitud de la Solicitud de Descarga Masiva (Metadata, CFDI).

TipoTaxID: Tipo de RFC de la Solicitud de Descarga Masiva (EMISOR, RECEPTOR).

Identificador: Identificador de la Solicitud de Descarga Masiva generado por el SAT; este no es el identificador único (lo es Id), porque una solicitud registrada en MYSuite pudiera no generar una en el SAT (por error o cualquier otro motivo); mientras la solicitud no sea procesada y además haya una respuesta positiva por parte del SAT, este campo no tendrá información.

EnrolledTimeStamp: Fecha de registro, en MYSuite, de la Solicitud de Descarga Masiva.

EstadoSolicitud: Estado de la Solicitud de Descarga Masiva:

      1.-
Registrada en MYSuite; pendiente por generar en el SAT (no existe aun Identificador).
      2.- Generada en el SAT con éxito (esto recuperó Identificador del SAT).
      3.- No hubo conexión al servicio del SAT o no hubo respuesta (caso TimeOut o cualquier otro problema); este código especifica error al consumir el servicio de generación de la Solicitud en el SAT.
      4.- Respuesta del SAT obtenida, pero con error (error devuelto en la respuesta del SAT).
      5.- No hubo conexión al servicio del SAT o no hubo respuesta (caso TimeOut o cualquier otro problema); este código especifica error al consumir el servicio de verificación de la Solicitud en el SAT.
      10.- Solicitud de Descarga terminada por completo (esto implica que además, todos los archivos asociados a la Solicitud, en caso de existir, fueron recuperados sin problema alguno).
      11.- Solicitud de Descarga terminada por completo en el SAT pero que no pudo ser terminada en MYSuite (estado para indicar que aun cuando para el SAT la solicitud está como terminada hubo algún error para culminar dicha solicitud en MYSuite, generalmente tiene que ver con la recuperación de alguno de los archivos asociados o con su subida a la nube).

Cualquier valor positivo es un código propio del SAT, devuelto en ; para la interpretación de cada caso remitirse a la documentación oficial acerca de los Servicios de Descarga Masivas, disponible en https://wwwmat.sat.gob.mx/consultas/42968/consulta-y-recuperacion-de-comprobantes-(nuevo).

Los códigos del 1 al 4 están asociados, todos, al proceso de solicitar al SAT el registro de la Solicitud ya existente en MYSuite. Código 5 está asociado al proceso de verificación de una solicitud ya registrada en el SAT. Códigos 10 y 11 son propios de la culminación en MYSuite de la Solicitud después que el SAT la reportó como terminada con éxito.

Esto explica el por qué, a pesar de tener la misma explicación, los códigos 3 y 5 no significan lo mismo.

CodigoEstadoSolicitud: Valor devuelto por el SAT en CodigoEstadoSolicitud en el proceso de verificación de la Solicitud; para la interpretación de cada caso remitirse a la documentación oficial acerca de los Servicios de Descarga Masivas, disponible en https://wwwmat.sat.gob.mx/consultas/42968/consulta-y-recuperacion-de-comprobantes-(nuevo)

NumeroCFDIs: Valor devuelto por el SAT en NumeroCFDIs en el proceso de verificación de la Solicitud.

CodEstatus: Valor devuelto por el SAT en CodEstatus en el proceso de generación o verificación de la Solicitud; para la interpretación de cada caso remitirse a la documentación oficial acerca de los Servicios de Descarga Masivas, disponible en https://wwwmat.sat.gob.mx/consultas/42968/consulta-y-recuperacion-de-comprobantes-(nuevo).

Mensaje: Valor devuelto por el SAT en Mensaje en el proceso de generación o verificación de la Solicitud o, en su defecto, uno indicado de manera interna por MYSuite para errores propios.

Files:
    
IdArchivo: Identifica, de manera única, un Archivo asociado a una Solicitud de Descarga Masiva, con este se puede dar seguimiento en otras transacciones.

IdentificadorArchivo: Identificador, generado por el SAT, de un Archivo asociado a una Solicitud de Descarga Masiva; aunque este valor pudiera haberse utilizado como identificador único, porque desde que se registra en MYSuite ya tiene valor, por analogía con la Solicitud hemos utilizado IdArchivo.

EstadoArchivo:
      1.- Registrado en MYSuite; pendiente por descargar del SAT.
      2.- Descargado del SAT con éxito.
      3.- No hubo conexión al servicio del SAT o no hubo respuesta (caso TimeOut o cualquier otro problema); este código especifica error al consumir el servicio de descarga del Archivo del SAT.
      4.- Respuesta del SAT obtenida, pero con error (error devuelto en la respuesta del SAT).
      5.- Error inesperado (puede estar asociado a la subida del archivo a la nube o cualquier otro error no controlado después de haber recuperado el archivo del SAT).
      6.- Descargado previamente (indica que el archivo ya existe en nuestra nube, normalmente asociado a un error previo no controlado después de haberse descargado del SAT y subido a la nube).

CodEstatusArchivo: Valor devuelto por el SAT en CodEstatus en el proceso de descarga del Archivo; para la interpretación de cada caso remitirse a la documentación oficial acerca de los Servicios de Descarga Masivas, disponible en https://wwwmat.sat.gob.mx/consultas/42968/consulta-y-recuperacion-de-comprobantes-(nuevo).

MensajeArchivo: Valor devuelto por el SAT en Mensaje en el proceso de descarga del Archivo o, en su defecto, uno indicado de manera interna por MYSuite para errores propios.     

Notas para tener en cuenta:

·         No se permite recuperar una solicitud que pertenece a un RFC diferente al que realiza la transacción; en ese caso el sistema generará un error.