
Extractor de facturas
Automatizó un proceso crítico de negocio reduciendo significativamente la carga de trabajo del equipo de finanzas
Tecnologías Utilizadas
Este artículo también está disponible en inglés
🇺🇸 English
En 2020, construí un extractor de facturas del Servicio de Administración Tributaria (SAT) de México. Solo armado con determinación y documentación en línea pero sin los asistentes de IA en los que confiamos hoy jaja construí un sistema automatizado que procesaría facturas para docenas de empresas eficientemente.
El Desafío
SATWS, una API en la nube que ofrece extracción automatizada de facturas electrónicas (CFDI). Sin embargo, su naturaleza asíncrona presentó desafíos únicos. El proceso requería una solicitud inicial, esperar varios días mientras la plataforma procesaba en segundo plano, y una recuperación final todo sin perder datos críticos.
La Solución
Durante uno o dos meses de desarrollo enfocado, arquitecté una solución usando FastAPI, aprovechando su excepcional manejo de operaciones asíncronas y documentación Swagger integrada. La implementación incluyó:
- Integración con Webhooks: En lugar de consultar repetitivamente la API, registré URLs webhook para recibir notificaciones automáticas cuando las facturas estuvieran listas
- Procesamiento de Flujos: Desarrollé un sistema para descargar archivos grandes directamente a memoria temporal y subirlos a S3 usando solicitudes HTTP de flujo, evitando el agotamiento de la RAM
- Manejo Robusto de Errores: Implementé un sistema integral de reintentos para asegurar que ninguna factura se perdiera
- Gestión de Estados: Creé un sistema de seguimiento basado en PostgreSQL para los estados de extracción usando consultas SQL puras sin un ORM (Mapeo Objeto-Relacional una herramienta que abstrae las interacciones de base de datos en código orientado a objetos)
Aprendiendo a Través del Desafío
El entorno de aprendizaje de 2020 hizo que este proyecto fuera particularmente formativo. Sin ChatGPT o asistentes de IA, confié completamente en la documentación oficial—estudiando meticulosamente las referencias de la biblioteca estándar de Python y las especificaciones Swagger de SATWS. Esta limitación se convirtió en mi mejor maestro. Página por página, extraje el conocimiento necesario para construir una integración completa de backend RESTful.
Elegir el sistema correcto para rastrear información fue una gran decisión. Podría haber usado un archivo simple, pero elegí una base de datos. Esto fue mejor porque las herramientas ya estaban allí, y me ayudó a aprender nuevas habilidades. Mi objetivo era usar lo que tenía y aprender algo nuevo al mismo tiempo.
Perspectivas Clave
¿La lección más valiosa? Las herramientas son efímeras, pero los conceptos perduran. Cuando SATWS rediseñó completamente su backend 2-3 años después, requiriendo una reescritura completa, aprendí que en el desarrollo de software, el cambio es la única constante. Al enfocarme en entender conceptos abstractos en lugar de memorizar sintaxis específica de librerías, construí conocimiento que se transfiere entre tecnologías.
El Resultado
Después de dos meses de desarrollo dedicado, entregué un sistema ETL que automatizó la extracción de facturas para docenas de empresas, reduciendo el tiempo de procesamiento manual de horas a minutos. El código limpio y eficiente del sistema orquestó todo el flujo sin problemas, desde la solicitud inicial hasta el procesamiento asíncrono y la entrega final de la factura.
FastAPI sigue siendo una herramienta poderosa en mi arsenal años después, validando mis decisiones tecnológicas. Más importante aún, aprendí que la capacidad de aprender—de leer, entender e implementar solo con documentación—es quizás la habilidad más valiosa en nuestro campo.
Publicaciones Relacionadas
Explora más artículos sobre temas y tecnologías similares.

Flujo de datos escalable
Reduje significativamente los gastos de infraestructura en AWS

Migraciones ETL de Big Data
Ejecuté múltiples proyectos de migración ETL de Oracle a AWS Glue, con fuerte énfasis en la recolección detallada de requisitos y planificación integral

Arquitectura Black Belt
Demostración de conocimiento avanzado en arquitectura de software