SAT

Descarga masiva de CFDIs

El servicio de descarga masiva del SAT es asíncrono y propenso a flakiness. SELLERP envuelve toda la complejidad en un pipeline durable que tú no ves — solo ves los XMLs en tu dashboard.

Cómo funciona

  1. SolicitaDescarga: enviamos un XML firmado con tu e.firma pidiendo CFDIs en una ventana de fechas (max 1 año).
  2. Polling: el SAT regresa un idSolicitud. Pollamos cada 5 min con timeout horario.
  3. Verifica: cuando el SAT termina de procesar, devuelve uno o más paquetes ZIP.
  4. Descarga: bajamos cada paquete (firmado), descomprimimos los XMLs.
  5. Cleaner: parsea cada XML, extrae los datos relevantes, los guarda en Postgres. El XML original queda en Vercel Blob (encriptado).
  6. Gap reconciliation: si SAT rechaza por overflow de folios (5004), el sistema parte la ventana en chunks más pequeños y reintenta.

Casos especiales

Latencia esperada

  • Sync inicial (1 año atrás): 1-3 horas dependiendo del volumen.
  • Sync diario incremental: ~5-15 min.
  • Si pides re-sync de un mes específico: ~10-30 min.

Status visible en /dashboard/cfdi con barras de progreso por sync.

Datos extraídos

Cada CFDI se parsea y mapea a Postgres. Lo que ves en el dashboard y vía MCP list_invoices:

  • UUID (folio fiscal), serie + folio, fecha emisión, fecha timbrado.
  • Emisor (RFC, nombre, regimen). Receptor (RFC, nombre, regimen, uso).
  • Total, subtotal, impuestos trasladados/retenidos.
  • Tipo: ingreso / egreso / pago / nómina / traslado / retención (según TipoDeComprobante).
  • Status SAT: vigente / cancelado.
  • XML completo y PDF (CFDI 4.0 con QR).