Analisando propostas

Desenvolvedor Python/Playwright para Correção de Bug em Automação de Compra Api Btg Pactual

Publicado em 24 de Agosto de 2026 dias na TI e Programação

Sobre este projeto

Aberto

Estamos buscando um desenvolvedor experiente para resolver um bug crítico em nossa automação de compra de renda fixa via api do btg pactual. O objetivo é garantir que a automação funcione corretamente, independentemente do emissor do título.

Contexto do Projeto:
Nossa automação visa comprar títulos de renda fixa no BTG Pactual às 10h, um momento em que os melhores títulos esgotam em segundos. O processo manual pela interface leva aproximadamente 22 segundos, o que é inviável para competir.

Solução Existente:
Desenvolvemos um módulo 'ghost' que dispara a ordem diretamente na api do btg, reduzindo o tempo de execução para cerca de 5-14 segundos. O fluxo atual envolve:
1. ÀS 9:58, abre-se a boleta de um título 'isca' e o processo é pausado na etapa de token.
2. ÀS 10h, a confirmação dessa boleta é iniciada, mas o POST /fixed-income-invest/invest é interceptado e abortado (via page.route) para evitar a compra do título isca.
3. Do pacote capturado, extraímos o JWT do token e os headers de sessão.
4. Trocamos o productId e o valor pelos do título-alvo (obtido da API no instante da liberação).
5. Disparamos as requisições /validate e /invest com os dados do título-alvo.

O Bug (o Trabalho):
O sistema funciona perfeitamente quando o título 'isca' e o título 'alvo' são do mesmo emissor. No entanto, falha quando os emissores são diferentes. Exemplos:
- Isca: cdb btg, alvo: banco original -> resultado: 409 (erro)
- isca: cdb btg, alvo: cdb btg -> resultado: 200 (comprou com sucesso)
- isca: cdb btg, alvo: banco arbi -> resultado: 409 (erro)

a requisição /validate retorna 200 em todos os três casos. A falha ocorre apenas na requisição /invest, que retorna um erro 409 GENERIC_ERROR sem detalhes adicionais.

Hipóteses já implementadas (mas não testadas):
- Headers que descrevem o produto (x-request-tags, referer) herdados da isca.
- Operação órfã no servidor devido à expiração do ID da isca.
- Restrição de valor.

Caminho Sugerido para Resolução:
Capturar uma compra manual de um título de emissor diferente e comparar o pacote de requisições com o que estamos enviando atualmente para identificar as diferenças.

Stack Tecnológico:
- Python
- Playwright (utilizando CDP em Chrome logado)
- Portal Angular (como interface de interação)
- O código existente possui aproximadamente 3.200 linhas comentadas com o histórico de decisões e falhas.

Perfil do Freelancer:
Buscamos um profissional com forte experiência em Playwright/Puppeteer, interceptação de rede, replay de requisições autenticadas e depuração de Single Page Applications (SPA). É Fundamental ter uma abordagem baseada em evidências (logs, medições) para a resolução de problemas, evitando suposições. O trabalho será remoto.

Escopo do Projeto:
Entregar o módulo 'ghost' funcionando de forma robusta com qualquer emissor de títulos.

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Criar um novo site personalizado

Duração do projeto Não estabelecido

Habilidades necessárias