Automatizar la descarga de CFDI del SAT y su conciliación
Para automatizar la descarga de CFDI del SAT se usa el web service de descarga masiva del SAT: un servicio al que un programa se conecta con tu e.firma, solicita los XML emitidos o recibidos de un rango de fechas, espera a que el SAT prepare los paquetes y los descarga en ZIP. Con eso puedes tener cada mañana todos tus XML organizados en carpetas y conciliados contra tu contabilidad, sin entrar al portal ni descargar factura por factura.
Opciones para descargar CFDI
| Opción | Automatizable | Para quién |
|---|---|---|
| Portal del SAT (consulta y recuperación de comprobantes) | No (manual, con límites por descarga) | Pocas facturas al mes |
| Función de descarga de tu sistema contable | Sí, si la trae | Quien ya paga un sistema que lo incluye |
| Herramientas comerciales de descarga masiva | Sí | Despachos con muchos RFC |
| Script propio con el web service | Sí, totalmente | Empresas o despachos que quieren control e integrar con sus procesos |
Antes de construir algo, revisa si tu sistema contable ya lo hace.
Cómo funciona el web service de descarga masiva
El proceso tiene cuatro pasos y es asíncrono (no es inmediato):
- Autenticación: el programa firma una petición con tu e.firma y el SAT devuelve un token temporal.
- Solicitud: pides “CFDI recibidos del 1 al 31 de octubre”, indicando si quieres los XML completos o solo los metadatos (lista con UUID, RFC, monto y estatus).
- Verificación: consultas cada cierto tiempo si la solicitud ya está lista. Puede tardar de minutos a horas.
- Descarga: cuando está lista, descargas uno o varios paquetes ZIP con los XML.
El SAT actualiza este servicio periódicamente (versiones, límites de solicitudes, antigüedad máxima de los comprobantes que se pueden descargar). Revisa siempre la documentación técnica vigente en el portal del SAT y las notas de la librería que uses.
Librerías existentes
No tienes que programarlo desde cero. Hay librerías de código abierto mantenidas por la comunidad mexicana, como phpcfdi/sat-ws-descarga-masiva (PHP), y existen equivalentes en otros lenguajes. Elige una con actividad reciente, porque cuando el SAT cambia el servicio, las librerías sin mantenimiento dejan de funcionar.
Automatizar el proceso completo
Un flujo diario o semanal típico:
- Solicitar metadatos de los últimos días (emitidos y recibidos). Es rápido y te da la lista completa con estatus.
- Comparar contra lo que ya tienes: ¿qué UUID son nuevos?, ¿alguno cambió a cancelado?
- Solicitar los XML del periodo cuando haga falta.
- Descomprimir y organizar:
RFC/AAAA/MM/emitidos|recibidos/UUID.xml. - Extraer datos a una tabla (Excel o base de datos). El script de lectura de XML está en automatizar procesos con Python.
- Conciliar (ver abajo) y generar un reporte de diferencias.
- Avisar por correo o WhatsApp si hay cancelaciones o faltantes.
Para programarlo: el Programador de tareas de Windows, cron en un servidor, o un flujo de n8n que llame a tu script.
Automatizar XML: qué hacer con los archivos
Con los XML organizados puedes automatizar:
- Registro de gastos e ingresos en Excel o tu sistema contable (ver automatizar facturas con IA).
- Generación de pólizas en el formato de importación de tu sistema.
- Reportes de IVA trasladado y acreditable por periodo.
- Alertas de proveedores que emiten con régimen o uso de CFDI incorrecto.
Conciliación de CFDI
Conciliar es cruzar tres fuentes:
| Fuente | Qué aporta |
|---|---|
| CFDI del SAT (metadatos/XML) | Lo que fiscalmente existe a tu nombre |
| Tu contabilidad o registro de facturas | Lo que tienes registrado |
| Estado de cuenta bancario | Lo que realmente se pagó o cobró |
Cruce recomendado por UUID entre SAT y contabilidad, y por monto + fecha cercana + RFC o referencia entre facturas y banco. El resultado se divide en:
- Conciliadas: coinciden en todo.
- En el SAT pero no en tu contabilidad: facturas que te emitieron y no registraste (o que alguien emitió a tu RFC sin que lo supieras; revísalo).
- En tu contabilidad pero canceladas en el SAT: no deberías deducirlas.
- Pagadas sin factura o facturadas sin pago: seguimiento con proveedores o clientes, y revisión de los CFDI de pago (complemento de pagos) cuando el método fue PPD.
Este último cruce es la base de automatizar cuentas por pagar y de la conciliación bancaria descrita en automatizar procesos contables.
Seguridad de la e.firma
La e.firma es tu identidad fiscal: con ella se pueden presentar trámites a tu nombre. Para automatizar con ella:
- Guárdala cifrada en el servidor donde corre el proceso, con acceso de muy pocas personas.
- No la mandes por correo ni WhatsApp, ni la subas a una carpeta compartida.
- Si usas un servicio de terceros, revisa dónde y cómo la almacenan.
- Si sospechas que se filtró, revócala y tramita una nueva en el SAT.
Errores comunes
- Solicitudes repetidas con los mismos parámetros: el SAT limita cuántas veces puedes pedir exactamente lo mismo; guarda el identificador de cada solicitud y reutiliza su resultado.
- Rangos enormes: divide por mes o por semana.
- No revisar el estatus: un CFDI descargado hace un mes pudo cancelarse después.
- e.firma vencida: el proceso falla en silencio si no tienes alertas.
Cuándo pedir ayuda
Si llevas uno o varios RFC con cientos de CFDI al mes, automatizar la descarga y la conciliación te devuelve días de trabajo y reduce riesgos fiscales. Como involucra la e.firma, conviene montarlo con buenas prácticas de seguridad. En Black Engine construimos procesos de descarga masiva y conciliación de CFDI conectados a tu contabilidad; escríbenos por WhatsApp.
Preguntas frecuentes
¿Se puede descargar automáticamente los XML del SAT?
Sí. El SAT ofrece un web service de descarga masiva que permite solicitar CFDI emitidos y recibidos por rango de fechas usando la e.firma. Muchos sistemas contables y librerías de código lo usan.
¿Qué necesito para la descarga masiva de CFDI?
La e.firma vigente del contribuyente (certificado .cer, llave .key y su contraseña), y un sistema o script que haga la solicitud, revise su estatus y descargue los paquetes ZIP.
¿Qué es la conciliación de CFDI?
Es cruzar los CFDI del SAT contra lo que tienes registrado en tu contabilidad, tus pagos o tu banco, para encontrar facturas faltantes, duplicadas, canceladas o con montos distintos.
¿Hay límites en la descarga masiva del SAT?
Sí, el SAT limita las solicitudes y el volumen por solicitud, y estos límites han cambiado entre versiones del servicio. Consulta la documentación técnica vigente del SAT antes de diseñar tu proceso.