WITHMIA v1.0.5 — Seguridad, Calidad y Facturación
Rate limiting en toda la API, pipeline CI/CD con GitHub Actions, suite de tests automatizados, sistema de referidos completo, y generación de facturas PDF con branding WITHMIA.
Equipo WITHMIA
WITHMIA
La v1.0.4 construyó el modelo financiero sostenible. La v1.0.5 refuerza los cimientos: protección de la API, calidad de código automatizada, y facturación profesional. Esta actualización convierte a WITHMIA en una plataforma lista para escalar con confianza.
Rate limiting: protección en cada ruta
Todas las rutas de la API ahora están protegidas con rate limiting granular. Seis limitadores diferentes según el tipo de operación:
| Limitador | Rutas protegidas | Límite |
|---|---|---|
| api | Perfil, tickets, canales, knowledge base, configuración | 60 req/min |
| chatwoot-proxy | Proxy de conversaciones y mensajes en tiempo real | 120 req/min |
| evolution | Instancias WhatsApp (Evolution API) | 60 req/min |
| integrations | Calendario, productos, ventas, integraciones externas | 60 req/min |
| billing | Suscripciones, checkout, overage, facturas | 20 req/min |
| admin | Panel de administración | 30 req/min |
¿Por qué importa?
Sin rate limiting, un solo actor malicioso (o un bug en un cliente) puede saturar toda la API. Con esta protección:
- Prevención de abuso — bots y scrapers no pueden bombardear los endpoints
- Estabilidad bajo carga — la API responde de forma predecible incluso con picos de tráfico
- Protección financiera — el endpoint de billing está extra-resguardado a 20 req/min
- Chatwoot optimizado — el proxy de chat tiene el límite más alto (120 req/min) porque es real-time
Cada limitador se aplica por usuario autenticado o por IP para requests públicos. Las respuestas incluyen headers estándar X-RateLimit-Limit, X-RateLimit-Remaining y Retry-After.
CI/CD: despliegue automatizado con GitHub Actions
WITHMIA ahora tiene un pipeline de integración y despliegue continuo completo. Cada push a main dispara automáticamente:
Backend (PHP)
- PostgreSQL 16 + Redis 7 como servicios en el pipeline
- Instalación de dependencias con Composer
- Ejecución de toda la suite de tests con Pest
- Variables de entorno de prueba aisladas
Frontend (TypeScript/React)
- Instalación de dependencias con npm
- ESLint — validación de estilo y errores
- TypeScript — verificación de tipos en todo el proyecto
- Build — compilación completa para asegurar que todo resuelve
Deploy
- Despliegue automático a Railway solo desde la rama
main - Protegido con secreto
RAILWAY_TOKEN - Solo se ejecuta si los tests y el build pasan
Si un test falla o TypeScript encuentra un error de tipos, el deploy se bloquea automáticamente. Cero posibilidad de subir código roto a producción.
Tests automatizados con Pest
Primera suite de tests automatizados de WITHMIA, cubriendo las piezas más críticas del negocio:
Tests unitarios
- CurrencyService — detección de moneda por país, routing de gateway (Flow para CLP, dLocal para el resto), pricing local correcto
- BillingConfig — estructura de planes (Free, Pro, Business, Enterprise), overage pricing, configuración de Flow y dLocal, validación de descuento anual
- OverageService — precio por pack, cálculo de costos por cantidad de mensajes excedidos
Tests de Feature
- API Endpoints — health check, guards de autenticación, throttling funcional, manejo de 404
- Models — creación de User, Company y Subscription con factory patterns
Cada test corre en una base de datos PostgreSQL limpia gracias a RefreshDatabase, asegurando que las pruebas son independientes y reproducibles.
Sistema de referidos completo
El sistema de referidos pasa de un stub vacío a una implementación completa:
¿Cómo funciona?
- Tu empresa genera un código — formato
WM-XXXXXX(6 caracteres alfanuméricos) - Compartes el código con otra empresa
- La otra empresa lo aplica al suscribirse y obtiene un 10% de descuento por 3 meses
- Tú acumulas referidos — el sistema trackea cuántas veces se ha usado tu código
Reglas de negocio
- No puedes usar tu propio código (prevención de auto-referral)
- Un código no se puede aplicar dos veces por la misma empresa
- El descuento es configurable: porcentaje, cantidad de meses, máximo de usos
- Los códigos pueden tener fecha de expiración
- Solo empresas con plan activo pueden generar códigos
Nuevos endpoints
GET /api/subscription/referral-code— obtener o generar el código de tu empresaPOST /api/subscription/apply-referral— aplicar un código de referido (ya existía como stub, ahora funcional)
Facturación PDF profesional
Nuevo sistema de generación de facturas con branding WITHMIA:
Modelo Invoice
- Numeración automática — formato
WM-YYYY-XXXXX(ej: WM-2026-00001) - Cálculo de IVA — 19% automático para pagos en CLP
- Items detallados — concepto, plan, ciclo de facturación
- Relaciones — vinculada a Company y Subscription
Generación de facturas automática
Las facturas se crean automáticamente cuando se confirma un pago exitoso, sin intervención del usuario:
- Flow.cl — al confirmar pago en webhook (
status === 2) - dLocal — al confirmar pago en webhook dLocal
- Flow Subscription — en cada renovación recurrente (marca si es primera factura o renovación)
Cada factura registra el método de pago, referencia de transacción, monto, moneda y desglose de impuestos.
Descarga de PDF
El servicio InvoiceService genera un documento HTML profesional con:
- Logo y branding WITHMIA con acentos dorados (#FFD700)
- Datos de la empresa emisora y receptora
- Tabla de items con desglose de subtotal, IVA y total
- Información del pago: método, referencia, fecha
- Diseño responsive optimizado para impresión
Si dompdf está instalado, genera un PDF real. Si no, sirve una versión HTML print-friendly con window.print() integrado.
Nuevos endpoints
GET /api/subscription/invoices— lista de las últimas 50 facturas de la empresaGET /api/subscription/invoices/{id}/pdf— descargar factura como PDF/HTML
Resumen técnico
| Cambio | Archivos | Impacto |
|---|---|---|
| Rate limiting | AppServiceProvider + routes/api.php | 6 limitadores, 18+ route groups |
| CI/CD | .github/workflows/ci.yml + .env.ci | 3 jobs (backend, frontend, deploy) |
| Tests | 5 archivos en tests/ | 23+ test cases (unit + feature) |
| Referidos | 2 modelos + migración + controller | Sistema completo |
| Facturas | Invoice model + InvoiceService + migración | Auto-creación en webhooks |
Lo que viene
Con la infraestructura de calidad asegurada, el roadmap de Q2 2026 se enfoca en features de alto impacto:
- PWA / App móvil — la prioridad para LATAM mobile-first
- Encuestas CSAT — feature que todos los competidores tienen
- AI resolution analytics — métricas de resolución por IA
- Broadcasting WhatsApp — campañas masivas
WITHMIA v1.0.5 no es la actualización más llamativa — pero es la que te deja dormir tranquilo. Código testeado, API protegida, facturas automáticas.
Etiquetas
Comentarios
Sé respetuoso. Tu email no será publicado.