El SAT ofrece dos caminos para bajar CFDI en volumen. El primero es el portal «Consulta y recuperación de comprobantes», al que se entra con la contraseña o con la e.firma y que entrega hasta 2,000 XML por día y muestra 500 registros por consulta. El segundo es el web service de descarga masiva, que sólo acepta la e.firma y entrega hasta 200 mil CFDI por solicitud. A cambio, el web service sólo permite pedir dos veces, en toda la vida, el mismo periodo con el mismo criterio. Si llevas muchos RFC, ese límite de dos solicitudes por periodo es el que más te conviene entender antes de empezar.
Los dos caminos oficiales
Portal del SAT (Consulta y recuperación de comprobantes)
Entras con el RFC del cliente y su contraseña o su e.firma. Filtras por emitidas o recibidas y por fechas, y bajas los XML de la lista. Sirve para lo urgente: una factura suelta, un proveedor o un mes con poco movimiento.
Para un despacho tiene tres problemas:
- 500 registros por consulta. El SAT dice textualmente: «Sólo se mostrarán los primeros 500 CFDI para descarga del XML». Si el mes trae más, tienes que partirlo en días o en horas hasta que cada consulta quede debajo de 500.
- 2,000 XML por día y por RFC. Al pasar ese tope tienes que esperar al día siguiente.
- Todo es a mano. Hay que entrar, resolver el captcha, filtrar y descargar, y repetirlo con cada cliente.
Web service de descarga masiva (versión 1.5)
Es el canal pensado para volumen y sólo funciona con la e.firma del contribuyente. Trabaja en tres pasos:
- Solicitud. Pides un periodo, emitidas o recibidas, y si quieres los XML o sólo la metadata (los datos de cada factura sin el XML). El SAT te devuelve un folio.
- Verificación. Consultas el folio hasta que el SAT diga que terminó. Puede tardar minutos u horas, y en temporadas pesadas, días.
- Descarga. El SAT entrega uno o varios paquetes ZIP con los XML.
Cada llamada se firma con la e.firma y usa un token que dura 5 minutos. Un proceso que tarda horas tiene que volver a autenticarse muchas veces.
Tabla de límites
| Límite | Portal | Web service 1.5 | Qué pasa si lo rebasas |
|---|---|---|---|
| Registros por consulta | 500 visibles para descargar XML | ~200,000 CFDI o 1,000,000 de metadata por solicitud | Portal: no ves el resto. Web service: rechazo con código 5003 |
| XML por día | 2,000 por RFC | Sin tope diario publicado | Portal: esperas al día siguiente |
| Solicitudes con el mismo periodo y criterio | Sin límite | Máximo 2, de por vida (no aplica a la metadata) | Código 5002: ese periodo ya no se puede volver a pedir igual |
| Solicitud duplicada | — | No puede haber dos vigentes con los mismos parámetros | Código 5005 |
| Vida del paquete | La solicitud desde el portal se atiende en hasta 48 h y tienes 3 días para recuperarla | 72 horas para bajar cada paquete | Código 5007: el paquete ya no existe |
| Descargas por paquete | — | Máximo 2 | Código 5008 |
| Antigüedad | 5 ejercicios más el actual | 5 ejercicios más el actual (en la práctica, hasta hoy menos 6 años) | La solicitud se rechaza |
| Credencial | Contraseña o e.firma | Sólo e.firma | — |
El límite que más duele: 2 solicitudes de por vida
El SAT publica que «no existe limitante en cuanto al número de solicitudes siempre que no se descargue en más de dos ocasiones un XML». En la práctica, lo que el servicio aplica es otra cosa: no acepta más de dos solicitudes de XML con el mismo periodo y los mismos filtros. La tercera regresa el código 5002, «Se agotó las solicitudes de por vida». La metadata no tiene esta restricción.
Para un despacho tiene consecuencias concretas:
- Reintentar no es volver a pedir. Si la descarga se cortó, la conexión falló o el paquete no bajó completo, lo correcto es retomar el folio que ya tienes y bajar sus paquetes otra vez dentro de las 72 horas. Si presentas una solicitud nueva cada vez que algo falla, gastas el cupo.
- Planea el periodo. Pedir enero completo y luego volver a pedir enero completo «para asegurarte» ya agotó las dos solicitudes. Conviene definir desde el principio cómo vas a partir el año, normalmente por mes, y no cambiarlo.
- Un 5002 no se resuelve insistiendo. El SAT no repone las solicitudes.
Facturas canceladas: quién las puede bajar
La metadata de emitidas y de recibidas sí incluye las canceladas, con su estado y la fecha de cancelación. El XML ya no se puede bajar igual por los dos lados:
- Emisor: puede pedir sus XML emitidos con cualquier estatus, incluidos los cancelados.
- Receptor: desde la versión 1.5 del web service (vigente desde el 30 de mayo de 2025), la solicitud de XML recibidos falla si no se limita a comprobantes vigentes. El receptor puede saber por la metadata que una factura de su proveedor se canceló, pero el web service ya no le entrega ese XML.
En la práctica, si quieres el XML de una factura recibida, bájalo mientras está vigente. Si el proveedor la cancela después, el XML que ya tienes sigue siendo tu respaldo, y la metadata o la consulta de estatus te confirman que se canceló.
Cómo organizarlo con varios clientes
- Junta las e.firmas vigentes de cada cliente. Sin e.firma sólo te queda el portal, con sus 2,000 XML diarios.
- Separa emitidas y recibidas en solicitudes distintas. Así lo pide el servicio y así lo vas a revisar.
- Parte por mes. Un mes rara vez rebasa los 200 mil CFDI, y si un cliente grande los rebasa, lo partes en quincenas desde la primera solicitud.
- Guarda el folio de cada solicitud y retómalo ante cualquier falla, en lugar de volver a pedir.
- Baja cada paquete en cuanto esté listo. Tienes 72 horas y dos intentos por paquete.
- Revisa el estatus después. Que una factura haya bajado vigente no quiere decir que siga vigente el mes siguiente.
Herramientas
Entre el portal a mano y programar tú mismo el web service hay herramientas de escritorio y servicios en línea que automatizan la solicitud, la verificación y la descarga. Antes de elegir una, pregunta:
- ¿Usa el web service con e.firma, el portal o los dos?
- ¿Qué hace cuando una descarga falla? ¿Retoma el folio o presenta una solicitud nueva?
- ¿Cómo protege la e.firma de tus clientes?
- ¿Qué te entrega además del ZIP: Excel, estatus, listas del SAT?
Si una herramienta anuncia más de 2,000 XML por día por el portal, revisa sus condiciones. Ese tope es del SAT por RFC y lo comparten todas las herramientas que usen el mismo RFC.
Cómo lo resuelve SUMARIA
SUMARIA es un servicio en línea para contadores que baja los CFDI de todos tus clientes desde una sola cuenta:
- Descarga con la e.firma por el web service del SAT o con la contraseña del SAT por el portal.
- Si una descarga falla, la reintenta con la misma solicitud y no gasta las dos que el SAT permite.
- Importa los XML que ya tienes, sin pedirte la e.firma.
- Entrega el ZIP con los XML, el PDF de cada factura uno por uno, el Excel por tipo de comprobante y la DIOT.
- Revisa el estatus de cada CFDI ante el SAT y cruza a emisores y receptores contra las listas 69, 69-B y 69-B Bis.
Preguntas frecuentes
¿Puedo hacer la descarga masiva del SAT sin e.firma?
Sólo por el portal, con la contraseña del contribuyente. Ahí aplican los 500 registros por consulta y los 2,000 XML por día. El web service exige la e.firma.
¿Cuántos XML puedo descargar al día del SAT?
En el portal, hasta 2,000 XML por día por RFC. El web service no publica un tope diario, pero cada solicitud admite hasta unos 200 mil CFDI y cada periodo se puede pedir dos veces como máximo.
¿Qué significa el error 5002 del SAT?
Que ya presentaste dos solicitudes de XML con el mismo periodo y los mismos filtros. El SAT no repone ese cupo, así que la próxima vez retoma el folio que ya tenías en lugar de presentar una solicitud nueva.
¿Cuánto tarda el SAT en atender una solicitud de descarga masiva?
No hay un plazo fijo en el web service. Puede tardar minutos u horas, y días en temporadas pesadas. Para las solicitudes desde el portal, el SAT indica un máximo de 48 horas.
¿Hasta qué año puedo descargar CFDI?
Hasta cinco ejercicios atrás más el ejercicio en curso. En el web service 1.5 el límite se cuenta día por día: hoy menos seis años.
¿Por qué no puedo bajar el XML de una factura recibida que se canceló?
Desde la versión 1.5 el web service sólo entrega al receptor los XML vigentes. La cancelación sí aparece en la metadata, con su fecha.