1. Home
  2. Elementos de Apoyo
  3. Guías de Funcionalidad
  4. Descarga Masiva v1.5 – Verificación
  1. Home
  2. Elementos de Apoyo
  3. Descarga Masiva v1.5 – Verificación

Descarga Masiva v1.5 – Verificación

🧾 En este artículo te explicamos cómo utilizar el Servicio de Verificación de Descarga Masiva v1.5, una herramienta clave para consultar el estatus de las solicitudes de descarga de CFDI realizadas ante el SAT.

🔍 Este servicio te permite conocer si tu solicitud fue aceptada, si se encuentra en proceso, o si ya está lista para descarga. Una vez finalizada exitosamente, podrás obtener los identificadores de los paquetes que contienen los CFDI disponibles.

🤝¿Necesitas ayuda? Este servicio es proporcionado directamente por el SAT. Si tienes dudas o problemas con su funcionamiento, te recomendamos contactar a la Mesa de Ayuda del SAT, donde podrán brindarte asistencia especializada. Consulta sus canales de atención oficiales para recibir soporte. 💬

✅ Pasos para consultar el estatus de tus solicitudes

1️⃣ Autenticación 🔐

Obtén un token de autenticación utilizando tu certificado FIEL a través del servicio correspondiente. Este debe ser enviado en la solicitud como un header, ademas que el valor debe seguir el formato: “WRAP access_token=”{Token}””

2️⃣ Identificador de la solicitud 🧾
Corresponde al valor del atributo IdSolicitud, el cual se obtiene como resultado al consumir el servicio de Solicitud de Descarga Masiva.
Asegúrate de conservar este identificador, ya que es indispensable para consultar el estatus de la solicitud y obtener los paquetes disponibles para descarga.

3️⃣ Generación de XML y envío de la solicitud 📤
Prepara el XML incluyendo tu RFC solicitante, el ID de la solicitud y la firma generada con tu FIEL.
Una vez listo, envía la solicitud al servicio de verificación incluyendo el token de autenticación. Asegúrate de que el XML cumpla con el formato especificado por el SAT para evitar errores.

🧾 Construcción del XML

Una vez que cuentes con la información requerida, deberás integrarla en el XML correspondiente a esta petición, siguiendo la estructura definida por el SAT.

Parámetros que debes incluir en el XML y cómo obtenerlos
ParámetroDescripción
IdSolicitudContiene el Identificador de la solicitud que se pretende consultar.
RfcSolicitanteContiene el RFC del solicitante que genero la petición de solicitud de descarga masiva.
X509IssuerNameObtener los datos del archivo .cer de la FIEL en el campo “Issuer” o “Emisor”.
X509SerialNumberObtener los datos del archivo .cer de la FIEL en el campo “Serial number”o “Número de serie”
X509CertificateSe debe tomar los bytes del archivo .cer de la FIEL y hacer un encode utilizando base64.
DigestValueContiene el valor hash del documento referenciado.
SignatureValueContiene la firma digital del nodo SignedInfo.
Cómo generar el DigestValue

1. Tomar el nodo XML que será referenciado, por ejemplo:

 <des:VerificaSolicitudDescarga>
         <des:solicitud IdSolicitud="4E80345D-917F-40BB-A98F4A73939343C5" RfcSolicitante="AXT940727FP8"></des:solicitud>
</des:VerificaSolicitudDescarga>

2. Eliminar todos los espacios, saltos de línea y tabulaciones para dejarlo en una sola línea continua.

3. Aplicar un algoritmo SHA-1 sobre ese texto (en formato binario).

4 . Codificar el resultado en base64. Ese será el valor del DigestValue.

Cómo generar el SignatureValue

1. Construir el nodo <SignedInfo> completo, que incluya el DigestValue que generaste antes:

<SignedInfo>
                  <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
                  <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                  <Reference URI="">
                     <Transforms>
                        <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                     </Transforms>
                     <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                     <DigestValue>leZ4dK/Q/RNbckYkY7WOOnCjK5Q=</DigestValue>
                  </Reference>
               </SignedInfo>

2. Aplicar la canonicalización XML al nodo <SignedInfo>, es decir, convertirlo en una versión estandarizada (sin espacios, atributos ordenados, etc.).

3. Firmar el resultado usando la clave privada de la FIEL del emisor. El algoritmo debe ser SHA-1 con RSA.

4. Codificar la firma obtenida en base64. Ese será tu SignatureValue.

Ejemplo de XML del Servicio de Verificación de Solicitudes
POST https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/VerificaSolicitudDescargaService.svc HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "http://DescargaMasivaTerceros.sat.gob.mx/IVerificaSolicitudDescargaService/VerificaSolicitudDescarga" 
Authorization: WRAP access_token="eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDcwOTc5MjUsImV4cCI6MTc0NzA5ODUyNSwiaWF0IjoxNzQ3MDk3OTI1LCJpc3MiOiJMb2FkU2VydmljaW9EZWNhcmdhTWFzaXZhVGVyY2Vyb3MiLCJhY3RvcnQiOiIzMzMwMzAzMDMxMzAzMDMwMzAzMDMwMzUzMDMwMzAzMDM0MzUzNjMwIn0._eOSO175aj_Op9S1wFf1iXKOnJkdnMwxnGyQmJyblg&wrap_subject=3330303031303030303030353030303034353630"
Content-Length: 4641 
Host: cfdidescargamasivasolicitud.clouda.sat.gob.mx 
 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:des="http://DescargaMasivaTerceros.sat.gob.mx"
   xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
   <soapenv:Header/>
   <soapenv:Body>
      <des:VerificaSolicitudDescarga>
         <des:solicitud IdSolicitud="4E80345D-917F-40BB-A98F4A73939343C5" RfcSolicitante="AXT940727FP8">
            <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
               <SignedInfo>
                  <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
                  <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                  <Reference URI="">
                     <Transforms>
                        <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                     </Transforms>
                     <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                     <DigestValue>leZ4dK/Q/RNbckYkY7WOOnCjK5Q=</DigestValue>
                  </Reference>
               </SignedInfo>
               <SignatureValue>BuuRjPmgk4Qwl2ER7vjL7+57WiqNZMRD12Hjfh65irEI1Cu8biQSqeHHiaZ7NnmB/LsjyGaHQmZMW50mfnDtNzowAdytB6FS0RNUNLoajAZAdii8bYHYoW0BqrLaXSImwbZYaHgi4TlPch1OpXZHmUOqfS1qnEEsRXVBN2DvEh1RbAYupmQxBMW75eo4HZZm/lRug44mb47Evm9428ejTzTnu6LDPEAZEmHV4jOwRzqmM4GgiW7aEptqHOhdSxV+QzPSQ2/H5s8AZZ41 LCK+3gSdCq3Kmf9S2H5R3BRS6VSam5J9xa0I2CvzJf/REwrxHsc7Xk9uXwXWOofjeTI1Bw==</SignatureValue>
               <KeyInfo>
                  <X509Data>
                     <X509IssuerSerial>
                        <X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: ACDMA, OID.2.5.4.45=SAT970701NN3, L=Coyoacán, S=Distrito Federal, C=MX, PostalCode=06300, STREET="Av. Hidalgo 77, Col. Guerrero", E=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 de pruebas(4096)</X509IssuerName>
                        <X509SerialNumber>292233162870206001759766198425879490509036075057</X509SerialNumber>
                     </X509IssuerSerial>
                     <X509Certificate>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</X509Certificate>
                  </X509Data>
               </KeyInfo>
            </Signature>
         </des:solicitud>
      </des:VerificaSolicitudDescarga>
   </soapenv:Body>
</soapenv:Envelope> 
4️⃣ Análisis de la respuesta 🔍

Revisa los datos devueltos por el servicio, como el EstadoSolicitud y los IdsPaquetes, para determinar si la solicitud ya fue finalizada y si los paquetes están disponibles para descarga.

Información que recibirás en la respuesta
    ParámetroTipo de DatoDescripción
    IdsPaquetes StringContiene los identificadores de los paquetes que componen la solicitud de descarga masiva. Solo se devuelve cuando la solicitud posee un estatus de finalizado.
    EstadoSolicitudIntContiene el número correspondiente al estado de la solicitud de descarga (Se adjunta tabla de descripciones en este mismo apartado)
    CodigoEstadoSolicitudStringContiene el código de estado de la solicitud de descarga. Para más referencia ver: Solicitud de Descarga Masiva.
    NumeroCFDIsIntNumero de CFDIs que conforman la solicitud de descarga consultada.
    CodEstatusStringCódigo de estatus de la petición de verificación. (Se adjunta tabla de descripciones en este mismo apartado)
    MensajeStringPequeña descripción del código estatus correspondiente a la petición de verificación.
    Ejemplo de respuesta del servicio
    HTTP/1.1 200 OK 
    Content-Type: text/xml; charset=utf-8 
    Content-Encoding: gzip 
    Vary: Accept-Encoding 
    Server: Microsoft-IIS/10.0 
    X-Powered-By: ASP.NET 
    Date: Thu, 10 May 2018 16:38:15 GMT 
    Content-Length: 430 
     
     
    <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">
            <VerificaSolicitudDescargaResponse xmlns="http://DescargaMasivaTerceros.sat.gob.mx">
                <VerificaSolicitudDescargaResult CodEstatus="5000" EstadoSolicitud="3" CodigoEstadoSolicitud="5000" NumeroCFDIs="0" Mensaje="Solicitud Aceptada">
                    <IdsPaquetes>4e80345d-917f-40bb-a98f4a73939343c5_01</IdsPaquetes>
                    <IdsPaquetes>4e80345d-917f-40bb-a98f4a73939343c5_02</IdsPaquetes>
                    <IdsPaquetes>4e80345d-917f-40bb-a98f4a73939343c5_03</IdsPaquetes>
                    <IdsPaquetes>4e80345d-917f-40bb-a98f4a73939343c5_04</IdsPaquetes>
                    <IdsPaquetes>4e80345d-917f-40bb-a98f4a73939343c5_05</IdsPaquetes>
                    <IdsPaquetes>4e80345d-917f-40bb-a98f4a73939343c5_06</IdsPaquetes>
                </VerificaSolicitudDescargaResult>
            </VerificaSolicitudDescargaResponse>
        </s:Body>
    </s:Envelope>  
    
    Descripción de los codigos para el atributo EstadoSolicitud
    CódigoDescripción
    1✅ Aceptada
    2⏳ EnProceso
    3🏁 Terminada
    4❌ Error
    5🚫 Rechazada
    6⏰ Vencida*
    *Esta sucede 72 hrs después de que se generó el paquete de descarga.
    Descripción de los codigos para el atributo CodEstatus
    CódigoMensajeObservaciones
    300Usuario No VálidoEste código indica que el usuario proporcionado no es reconocido o no tiene permisos para realizar la operación solicitada.
    301XML Mal FormadoEste código de error se regresa cuando el request posee información invalida, ejemplo: un RFC de receptor no valido.
    302Sello Mal FormadoEl sello digital enviado no cumple con el formato esperado, lo que impide la validación del documento.
    303Sello no corresponde con RfcSolicitanteEl sello digital no coincide con el RFC del solicitante registrado en la petición, generando una inconsistencia en la autenticidad.
    304Certificado Revocado o CaducoEl certificado puede ser invalido por múltiples razones como son el tipo, la vigencia, etc.
    305Certificado InválidoEl certificado puede ser invalido por múltiples razones como son el tipo, la vigencia, etc.
    5000Solicitud recibida con éxitoLa petición fue recibida correctamente y está en proceso para su análisis o respuesta.
    5003Tope máximo de elementos de la consultaLa solicitud sobrepasa el máximo de resultados por tipo de solicitud (Metadata y CFDI)
    5004No se encontró la informaciónNo se encontró la información de la solicitud de descarga que se pretende verificar.
    5011Límite de descargas por folio por díaSe ha alcanzado o sobrepasado el límite de descargas diarias por folio.

    ✅ Listo!

    Una vez que hayas obtenido la información en IdsPaquetes indicando que la solicitud fue completada con éxito, dirígete al paso final para descargar tu información.

    How useful was this post?

    Click on a star to rate it!

    We are sorry that this post was not useful for you!

    Let us improve this post!

    Tell us how we can improve this post?

    Updated on mayo 29, 2025

    Related Articles