← Voltar para projetos
FintechRemoto, Brasil
Velana
Velana

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.

Node.jsExpressTypeScriptReactRadix UIPostgreSQL (Neon)LaunchDarklyHighlightTwiliopdfkit
Velana·Em andamento
Nova adquirente entrando por runbook, e saque rodando sozinho a cada 10 minutos
6
Adquirentes integradas
10 min
Ciclo do saque automático
Em andamento
Duração
Contexto

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.

Desafio

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.

Soluçã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.

Resultado

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.

Entregas

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

Tem um projeto parecido em mente?

Conte para gente o que você está construindo. Respondemos em até 24h úteis.

Falar no WhatsApp