WITHMIA v1.0.5 — Segurança, qualidade e faturamento
Rate limiting em toda a API, pipeline de CI/CD com GitHub Actions, suíte de testes automatizados, sistema de indicações completo e geração de faturas em PDF com a identidade da WITHMIA.
Equipe WITHMIA
WITHMIA
Nota (julho de 2026): os planos Business e Enterprise hoje se chamam Team e Max. Os preços continuam os mesmos.
A v1.0.4 construiu o modelo financeiro sustentável. A v1.0.5 reforça os alicerces: proteção da API, qualidade de código automatizada e faturamento profissional. Esta atualização transforma a WITHMIA em uma plataforma pronta para escalar com confiança.
Rate limiting: proteção em cada rota
Todas as rotas da API agora estão protegidas com rate limiting granular. Seis limitadores diferentes, conforme o tipo de operação:
| Limitador | Rotas protegidas | Limite |
|---|---|---|
| api | Perfil, tickets, canais, base de conhecimento, configurações | 60 req/min |
| chatwoot-proxy | Proxy de conversas e mensagens em tempo real | 120 req/min |
| evolution | Instâncias do WhatsApp (Evolution API) | 60 req/min |
| integrations | Calendário, produtos, vendas, integrações externas | 60 req/min |
| billing | Assinaturas, checkout, excedente, faturas | 20 req/min |
| admin | Painel de administração | 30 req/min |
Por que isso importa?
Sem rate limiting, um único ator mal-intencionado (ou um bug em um cliente) pode saturar toda a API. Com essa proteção:
- Prevenção de abuso — bots e scrapers não conseguem bombardear os endpoints
- Estabilidade sob carga — a API responde de forma previsível mesmo com picos de tráfego
- Proteção financeira — o endpoint de billing tem guarda extra, em 20 req/min
- Chatwoot otimizado — o proxy de chat tem o limite mais alto (120 req/min) porque é tempo real
Cada limitador é aplicado por usuário autenticado ou por IP no caso de requisições públicas. As respostas incluem os headers padrão X-RateLimit-Limit, X-RateLimit-Remaining e Retry-After.
CI/CD: deploy automatizado com GitHub Actions
A WITHMIA agora tem um pipeline completo de integração e entrega contínua. Cada push na main dispara automaticamente:
Backend (PHP)
- PostgreSQL 16 + Redis 7 como serviços no pipeline
- Instalação de dependências com Composer
- Execução de toda a suíte de testes com Pest
- Variáveis de ambiente de teste isoladas
Frontend (TypeScript/React)
- Instalação de dependências com npm
- ESLint — validação de estilo e erros
- TypeScript — verificação de tipos em todo o projeto
- Build — compilação completa para garantir que tudo resolve
Deploy
- Deploy automático para o Railway, apenas a partir da branch
main - Protegido com o segredo
RAILWAY_TOKEN - Só roda se os testes e o build passarem
Se um teste falha ou o TypeScript encontra um erro de tipos, o deploy é bloqueado automaticamente. Zero chance de subir código quebrado para produção.
Testes automatizados com Pest
A primeira suíte de testes automatizados da WITHMIA, cobrindo as partes mais críticas do negócio:
Testes unitários
- CurrencyService — detecção de moeda por país, roteamento de gateway (Flow para CLP, dLocal para o resto), preço local correto
- BillingConfig — estrutura dos planos (Free, Pro, Business, Enterprise), preço do excedente, configuração de Flow e dLocal, validação do desconto anual
- OverageService — preço por pacote, cálculo de custos conforme a quantidade de mensagens excedidas
Testes de feature
- Endpoints da API — health check, guards de autenticação, throttling funcionando, tratamento de 404
- Models — criação de User, Company e Subscription com factory patterns
Cada teste roda em um banco PostgreSQL limpo graças ao RefreshDatabase, garantindo que as provas sejam independentes e reproduzíveis.
Sistema de indicações completo
O sistema de indicações sai de um stub vazio para uma implementação completa:
Como funciona?
- Sua empresa gera um código — no formato
WM-XXXXXX(6 caracteres alfanuméricos) - Você compartilha o código com outra empresa
- A outra empresa aplica o código ao assinar e ganha 10% de desconto por 3 meses
- Você acumula indicações — o sistema registra quantas vezes seu código foi usado
Regras de negócio
- Você não pode usar o próprio código (prevenção de autoindicação)
- Um código não pode ser aplicado duas vezes pela mesma empresa
- O desconto é configurável: porcentagem, quantidade de meses, máximo de usos
- Os códigos podem ter data de expiração
- Só empresas com plano ativo podem gerar códigos
Novos endpoints
GET /api/subscription/referral-code— obter ou gerar o código da sua empresaPOST /api/subscription/apply-referral— aplicar um código de indicação (já existia como stub, agora é funcional)
Faturas em PDF com cara de gente grande
Novo sistema de geração de faturas com a identidade da WITHMIA:
Modelo Invoice
- Numeração automática — formato
WM-YYYY-XXXXX(ex.: WM-2026-00001) - Cálculo de imposto — 19% automático para pagamentos em CLP
- Itens detalhados — descrição, plano, ciclo de faturamento
- Relações — vinculada a Company e Subscription
Geração automática de faturas
As faturas são criadas automaticamente quando um pagamento é confirmado, sem intervenção do usuário:
- Flow.cl — ao confirmar o pagamento no webhook (
status === 2) - dLocal — ao confirmar o pagamento no webhook do dLocal
- Flow Subscription — a cada renovação recorrente (marcando se é a primeira fatura ou uma renovação)
Cada fatura registra o meio de pagamento, a referência da transação, o valor, a moeda e o detalhamento dos impostos.
Download em PDF
O serviço InvoiceService gera um documento HTML caprichado com:
- Logo e identidade WITHMIA com acentos dourados (#FFD700)
- Dados da empresa emissora e da destinatária
- Tabela de itens com subtotal, imposto e total
- Informações do pagamento: meio, referência, data
- Design responsivo, otimizado para impressão
Se o dompdf estiver instalado, gera um PDF de verdade. Se não, entrega uma versão HTML pronta para impressão, com window.print() integrado.
Novos endpoints
GET /api/subscription/invoices— lista das últimas 50 faturas da empresaGET /api/subscription/invoices/{id}/pdf— baixar a fatura como PDF/HTML
Resumo técnico
| Mudança | Arquivos | Impacto |
|---|---|---|
| Rate limiting | AppServiceProvider + routes/api.php | 6 limitadores, 18+ grupos de rotas |
| CI/CD | .github/workflows/ci.yml + .env.ci | 3 jobs (backend, frontend, deploy) |
| Testes | 5 arquivos em tests/ | 23+ casos de teste (unit + feature) |
| Indicações | 2 models + migração + controller | Sistema completo |
| Faturas | Model Invoice + InvoiceService + migração | Criação automática nos webhooks |
O que vem por aí
Com a infraestrutura de qualidade garantida, o roadmap do Q2 2026 se concentra em recursos de alto impacto:
- PWA / app móvel — a prioridade para uma América Latina mobile-first
- Pesquisas CSAT — recurso que todos os concorrentes já têm
- AI resolution analytics — métricas de resolução por IA
- Broadcasting no WhatsApp — campanhas em massa
A WITHMIA v1.0.5 não é a atualização mais chamativa — mas é a que deixa você dormir tranquilo. Código testado, API protegida, faturas automáticas.
Etiquetas
Comentários
Seja respeitoso. Seu e-mail não será publicado.