Este proyecto es una solución basada en FastAPI y Playwright diseñada para automatizar la extracción de datos desde los portales oficiales de la SUNAT. Permite consultar información de contribuyentes (RUC/DNI) y el tipo de cambio oficial, integrando capacidades de procesamiento de documentos con IA.
- FastAPI: Framework web moderno y de alto rendimiento para la construcción de la API.
- Playwright: Herramienta de automatización de navegación que actúa como un "asistente virtual" manejando el navegador de forma programática.
- SQLModel: Para la interacción fluida con la base de datos (PostgreSQL/SQLite).
- Gemini: Utilizados para la conversión y estructuración de datos desde archivos PDF (Tipo de Cambio) a formato JSON.
- UV: Gestor de paquetes y entorno de Python ultrarrápido.
- 🔍 Consulta de RUC: Extracción directa de datos de contribuyentes.
- 🔍 Consulta por DNI: Flujo automatizado para encontrar RUCs asociados a una persona natural.
- 💱 Tipo de Cambio: Obtención del tipo de cambio diario y conversión de reportes PDF a JSON.
- 💾 Persistencia: Almacenamiento local de consultas para optimizar tiempos de respuesta y reducir carga a los servidores de SUNAT.
El proyecto utiliza uv para una gestión de dependencias eficiente. Debe contar con uv instalado.
-
Asegúrate de tener
uvinstalado:pip install uv
-
Instalar dependencias y preparar el entorno:
uv sync uv run playwright install chromium
uv run uvicorn app.main:app --reloadUna vez iniciado, puedes acceder a la documentación interactiva en:
- Swagger UI:
http://127.0.0.1:8000/docs
uv run pytest curso/test_02_locators.py --headed -sGET /sunat/ruc/{tax_id}: Busca en DB local o scrapea si no existe.POST /sunat/ruc/{tax_id}: Fuerza la actualización de datos desde SUNAT.GET /sunat/dni/{dni}: Busca RUCs asociados a un DNI específico.POST /sunat/dni/{dni}: Actualiza la información del RUC asociado al DNI.
GET /sunat/tipo-cambio: Obtiene el tipo de cambio del día procesado vía IA.
- Documentación de Playwright Python
- FastAPI SQL Databases
- Consulta RUC - SUNAT
- Tipo de Cambio - SUNAT
Desarrollado con fines de automatización y eficiencia en la gestión de datos fiscales.*