This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# API de Validación Tributaria — Chile
|
||||
|
||||
Microservicio REST para validación y cálculo tributario chileno. Incluye validación de RUT, cálculo de IVA, retención de honorarios, topes imponibles/cotizaciones y simulador de F29. Con Swagger UI, Dockerfile y demo interactiva en GitHub Pages.
|
||||
|
||||
[](https://github.com/mechjook/DemostrationTaxAPI/actions/workflows/tax_api_pipeline.yml)
|
||||
|
||||
## Demo
|
||||
|
||||
Disponible en: **[GitHub Pages](https://mechjook.github.io/DemostrationTaxAPI/)**
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
┌────────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||||
│ FastAPI + Swagger │───▶│ Lógica │───▶│ Modelos │
|
||||
│ 11 endpoints REST │ │ Tributaria │ │ Pydantic │
|
||||
└────────────────────┘ └──────────────────┘ └──────────────────┘
|
||||
│
|
||||
▼
|
||||
┌────────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||||
│ Demo HTML │ │ Dockerfile │ │ Tests │
|
||||
│ GitHub Pages │ │ Containerización │ │ pytest + httpx │
|
||||
└────────────────────┘ └──────────────────┘ └──────────────────┘
|
||||
```
|
||||
|
||||
## Endpoints
|
||||
|
||||
| Método | Endpoint | Descripción |
|
||||
|--------|----------|-------------|
|
||||
| POST | `/api/rut/validar` | Validar RUT chileno (dígito verificador módulo 11) |
|
||||
| POST | `/api/iva/desde-neto` | Calcular IVA y bruto desde monto neto |
|
||||
| POST | `/api/iva/desde-bruto` | Extraer neto e IVA desde monto bruto |
|
||||
| POST | `/api/iva/factura` | Desglose completo de factura con items |
|
||||
| POST | `/api/honorarios/retencion` | Calcular retención desde monto bruto |
|
||||
| POST | `/api/honorarios/liquido` | Calcular bruto necesario desde líquido |
|
||||
| POST | `/api/honorarios/anual` | Simulación anual de honorarios |
|
||||
| POST | `/api/topes/calcular` | Topes imponibles en pesos según UF |
|
||||
| POST | `/api/topes/cotizaciones` | Cotizaciones previsionales completas |
|
||||
| GET | `/api/topes/afps` | Listar AFPs con tasas |
|
||||
| POST | `/api/f29/simular` | Simulador de declaración F29 |
|
||||
|
||||
## Dominios Tributarios
|
||||
|
||||
| Dominio | Descripción |
|
||||
|---------|-------------|
|
||||
| **RUT** | Validación con algoritmo módulo 11, formateo, detección de errores |
|
||||
| **IVA** | Tasa 19%, cálculo neto↔bruto, desglose de facturas |
|
||||
| **Honorarios** | Retención 2024-2027 (13.75%→17%), cálculo inverso, simulación anual |
|
||||
| **Topes** | AFP (90 UF), salud (7%), AFC, SIS. 7 AFPs con tasas actualizadas |
|
||||
| **F29** | Débito/crédito fiscal, remanente, PPM (1%), retenciones |
|
||||
|
||||
## Ejecución Local
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Ejecutar API
|
||||
uvicorn src.api:app --reload
|
||||
|
||||
# Swagger UI
|
||||
open http://localhost:8000/docs
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
docker build -t tax-api .
|
||||
docker run -p 8000:8000 tax-api
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
pytest tests/ -v
|
||||
```
|
||||
|
||||
## CI/CD
|
||||
|
||||
El workflow de GitHub Actions ejecuta:
|
||||
1. **Tests** — pytest con tests unitarios + integración de endpoints
|
||||
2. **Deploy** — publica la demo interactiva en GitHub Pages (solo en `main`)
|
||||
|
||||
## Stack
|
||||
|
||||
- Python 3.12
|
||||
- FastAPI / Pydantic
|
||||
- pytest / httpx
|
||||
- Docker
|
||||
- GitHub Actions + GitHub Pages
|
||||
|
||||
## Autor
|
||||
|
||||
**José Nicolás Candia** — [@mechjook](https://github.com/mechjook)
|
||||
Reference in New Issue
Block a user