
Nova adquirente entrando por runbook, e saque rodando sozinho a cada 10 minutos
Plataforma de pagamentos Pix em quatro serviços. Integrar mais uma adquirente virou procedimento documentado em vez de projeto novo, e o saque, que antes pedia mão humana, passou a rodar em ciclo automático a cada 10 minutos, com alerta no WhatsApp quando falha.

O cenário do cliente
Operação de pagamentos que conversa com várias adquirentes ao mesmo tempo. Cada uma tem contrato de API, formato de webhook e regra de conciliação próprios, e a tentação é escrever um caminho separado para cada uma, o que multiplica o custo de manutenção a cada parceira nova.
O fluxo atravessa três serviços: a cobrança Pix nasce no middleware, o webhook de confirmação chega no dashboard e a baixa é registrada na API da operação. Saque e saldo rodam em cron por cima disso.
O problema a resolver
Fazer da integração de uma adquirente um procedimento repetível, com contrato interno único, em vez de um projeto sob medida a cada vez.
Automatizar saque, que é onde erro custa dinheiro real e imediato, sem deixar a operação cega quando alguma coisa falha no meio da madrugada.
Operar mudança em fluxo de dinheiro sem janela de manutenção, com como ligar e desligar comportamento em produção.
Como atacamos
Arquitetura em quatro serviços com responsabilidade separada: velana-middleware (integração com as adquirentes, hospedado no Render), velana-dash (operação e recepção de webhook, na Vercel), velana-bot (automação) e velana-report (relatórios em PDF com pdfkit).
Contrato interno único de integração no middleware, com proxy por adquirente e criptografia dos campos sensíveis, mais um runbook que descreve a integração do começo ao fim. A integração da OnlyUp C3 foi executada seguindo esse procedimento.
Saque automático em ciclo de 10 minutos via cron, com piso de saldo líquido e teto por ciclo, e alerta de falha no WhatsApp para o financeiro via Twilio, com template aprovado pela Meta.
Canal no Slack com status das adquirentes em aviso diário, para a operação enxergar o estado da plataforma sem precisar abrir o dashboard.
LaunchDarkly para feature flags, permitindo habilitar adquirente ou comportamento novo de forma gradual e reverter sem deploy, e Highlight para observabilidade em produção. Postgres serverless via Neon como base compartilhada.
O impacto entregue
Seis adquirentes operando sob o mesmo contrato interno, com a integração de uma nova reduzida a um procedimento documentado em vez de um projeto sob medida.
Saque automático em produção, rodando a cada 10 minutos com piso e teto por ciclo, e falha avisada no WhatsApp do financeiro em vez de descoberta na conciliação do dia seguinte.
O que foi construído
- Quatro serviços: middleware, dashboard, bot e relatórios
- Seis adquirentes sob um contrato interno único
- Runbook de integração de nova adquirente, validado em integração real
- Saque automático em cron de 10 minutos, com piso de saldo e teto por ciclo
- Alerta de falha de saque no WhatsApp via Twilio, template aprovado pela Meta
- Status das adquirentes publicado em canal do Slack
- Feature flags com LaunchDarkly para ligar integração sem deploy
- Observabilidade em produção com Highlight e Postgres serverless via Neon
Continue explorando
Lançar a próxima marca sem refazer nada: Viaza e GoMilhas em um código só
Viaza / GoMilhas
Plataforma whitelabel completa para venda de passagens com milhas: busca, checkout PIX e pós-venda. Viaza e GoMilhas rodam no mesmo repositório, com tema, conteúdo e regras de marca trocando em tempo real. A próxima marca entra adicionando um arquivo de configuração, sem time novo e sem retrabalho.
MyBenk: banking white-label da Celcoin em 3 frentes (app, backoffice e BaaS)
Celcoin
Desenvolvimento e manutenção do MyBenk, plataforma de banking white-label da Celcoin, em três frentes: o app de internet banking para o usuário final (React Native/Expo), o painel backoffice de gestão (React e Next.js) e a integração com o Banking as a Service (BaaS) da Celcoin no backend (NestJS e MongoDB). Pix, contas PF e PJ e cartões operando sob a marca do cliente, que vira o banco do próprio ecossistema.