Projeto

Pagamentos — do Oracle aos Bancos

Pix, boleto registrado em dois bancos e recorrência de cartão atendidos por um banco Oracle de geração 2011, que não negocia o TLS que as APIs bancárias exigem — a volta: middlewares Node minúsculos que fazem o aperto de mão moderno.

O que fazer quando o banco de dados não fala o TLS das aplicações modernas? Trocar o banco é impossível; terceirizar é caro. A resposta real tem poucas dezenas de linhas: um processo Node por API, que aceita HTTP simples por dentro e fala por fora o dialeto que cada banco exigir — mTLS, OAuth, SOAP ou JSON.

Ilustração: um cilindro de banco de dados ligado a ícones de bancos por um pequeno nó âmbar com cadeado, representando o middleware que faz o TLS; tema escuro.

O núcleo financeiro da instituição roda num Oracle de geração 2011 — o mesmo do case de PL/SQL — e precisa conversar com as APIs bancárias de hoje: Pix, registro online de boleto, assinatura recorrente de cartão. Essas APIs exigem TLS recente, certificado de cliente (mTLS) e OAuth — apertos de mão que o cliente HTTP de um banco dessa geração simplesmente não negocia.

A volta mora numa VM interna: um middleware Node por API bancária. O PL/SQL continua fazendo o que sempre fez — montar o payload e chamar HTTP simples dentro da rede — e o middleware acrescenta o que o contrato daquela API pede: token OAuth renovado a cada chamada onde há OAuth, o certificado digital da instituição no mTLS onde o banco o exige, SOAP/XML onde o contrato é legado — e devolve a resposta crua para o banco de dados decidir. O de Pix expõe duas rotas genéricas (PUT e GET autenticados); o de recorrência cobre o ciclo inteiro de clientes, planos e assinaturas em ~22 operações — cancelamento, projeção de cobranças, troca de cartão, mudança de data e valor, migração de plano —; os de boleto têm ~50 linhas cada.

A auditoria mora onde o financeiro mora: toda chamada grava request e response completos numa tabela do próprio Oracle, com status e detalhe do erro. Quando algo falha, a investigação começa no banco de dados, com o payload exato do momento — sem caçar log em servidor.

Em 2026, uma das instituições financeiras desativou seu stack antigo de certificados e a geração de Pix parou. O log de requisições apontou a rejeição na porta do banco; a correção foi renovar o certificado digital — zero linha de código alterada. Middleware fino tem essa virtude: quase não existe lugar para o bug morar.

Em números

4
APIs bancárias atendidas
~22
Operações de recorrência
49
Linhas no menor middleware
0
Código alterado no incidente

Decisões de engenharia

  1. 01

    Tradutor, não plataforma

    Cada API bancária tem seu processo minúsculo e independente — sem framework comum, sem deploy acoplado. Quando um banco muda o contrato, mexe-se num arquivo; quando um serviço cai, os outros nem ficam sabendo. A tentação de generalizar num "gateway de pagamentos" foi recusada de propósito: quatro tradutores pequenos são mais fáceis de auditar do que uma plataforma.

  2. 02

    O TLS mora no middleware; o negócio, no PL/SQL

    O Node não decide nada: recebe URL e payload, acrescenta a autenticação que o contrato pede e devolve a resposta. A regra financeira — quem pode gerar cobrança, com que valor, o que fazer com a resposta — continua nos packages onde sempre viveu, auditável no mesmo lugar de sempre. Separar o aperto de mão da decisão é o que mantém os middlewares finos.

  3. 03

    Auditoria dentro do banco de dados

    Toda chamada grava request e response completos, com status e detalhe, numa tabela do próprio Oracle. O diagnóstico de qualquer falha começa com o payload exato do momento — inclusive o do incidente de agosto, que foi resolvido lendo essa tabela, não caçando log em servidor.

  4. 04

    O incidente que se resolveu sem código

    Quando a instituição financeira desligou o stack antigo de certificados, a correção foi operacional: renovar o certificado digital e religar o fluxo — zero linha alterada. A espessura de um middleware é uma decisão de risco: quanto menos ele faz, menos lugares existem para quebrar quando o mundo do outro lado muda.

Arquitetura

PL/SQL

Monta e chama

O package financeiro posta HTTP simples na rede interna.

Middleware Node

OAuth + mTLS

A autenticação que cada contrato pede: token OAuth, certificado digital.

APIs bancárias

Pix · Boleto · Recorrência

Quatro APIs, cada uma com seu contrato — e seu próprio tradutor.

Auditoria

No próprio Oracle

Request e response completos, com status, em tabela do banco.

Stack

Node.jsExpressAxiosOAuth 2.0 / mTLSOracle PL/SQL