DEV Community

Felipe Orlando
Felipe Orlando

Posted on

Criei uma CLI em Rust para pagamentos Pix — e ela tem um MCP server para AI agents fazerem pagamentos

O problema que ninguém resolve

O Pix é, de longe, o sistema de pagamentos mais bem-sucedido do Brasil. Movimenta trilhões por ano, é usado por mais de 150 milhões de pessoas, funciona 24/7 com liquidação instantânea. É infraestrutura crítica.

Mas se você é desenvolvedor e precisa integrar com Pix, a experiência é outra história.

As APIs dos PSPs (Provedores de Serviço de Pagamento) seguem a especificação do Banco Central, mas cada um implementa de um jeito diferente. A documentação é fragmentada. Os SDKs disponíveis são pesados, muitas vezes em linguagens específicas, e fazem mais do que deviam. Configurar certificados mTLS é um processo manual e propenso a erro. E não existe nenhuma ferramenta de linha de comando — nenhuma — para testar cobranças, verificar pagamentos ou debugar webhooks rapidamente.

Quem já usou o stripe-cli sabe como uma boa CLI muda completamente o fluxo de desenvolvimento. Para Pix, isso simplesmente não existia.

A solução: pixcli

O pixcli é uma ferramenta CLI open-source, escrita em Rust, para gerenciar pagamentos Pix direto do terminal.

# Criar uma cobrança Pix imediata
pixcli charge create --amount 50.00 --description "Pedido #1234"

# Verificar status de um pagamento
pixcli charge status --txid abc123def456

# Gerar QR code no terminal
pixcli qrcode generate --txid abc123def456

# Iniciar webhook server local
pixcli webhook serve --port 8080

# Iniciar MCP server para AI agents
pixcli mcp serve
Enter fullscreen mode Exit fullscreen mode

A ideia é simples: tudo que você faz via API do Pix, você deveria poder fazer via terminal — rápido, scriptável, sem abrir dashboard nenhum.

Arquitetura

Uma das decisões mais importantes do projeto foi a arquitetura modular. O pixcli é um Rust workspace com crates independentes, cada uma com responsabilidade clara:

pixcli/
├── pix-core           # Tipos, traits e abstrações compartilhadas
├── pix-brcode         # Geração e parsing de BR Codes (padrão EMV)
├── pix-config         # Gerenciamento de credenciais e configuração
├── pix-provider       # Trait de abstração para PSPs
├── pix-efi            # Implementação para Efí (Gerencianet)
├── pix-mcp            # MCP server (Model Context Protocol)
├── pix-webhook-server # Servidor de webhooks local
└── pixcli             # CLI principal (clap)
Enter fullscreen mode Exit fullscreen mode

Por que essa separação?

  • pix-core define os tipos do domínio (Cobrança, Pagamento, Webhook) como traits e structs. Qualquer crate pode depender dele sem arrastar o resto.
  • pix-provider é uma abstração sobre PSPs. Hoje suporta Efí via pix-efi, mas adicionar outro provedor (Itaú, Bradesco, etc.) é implementar o trait PixProvider — sem mudar nenhuma outra crate.
  • pix-brcode implementa a spec EMV do BR Code de forma isolada. Pode ser usada em outros projetos sem trazer o pixcli inteiro.
  • pix-mcp expõe as operações Pix como ferramentas MCP, permitindo que AI agents criem cobranças, verifiquem status e gerenciem webhooks programaticamente.

MCP Server: seu AI agent pode fazer pagamentos Pix

Essa é a parte do projeto que mais me empolga — e que, até onde sei, nenhum outro projeto Pix implementou.

O pix-mcp é um servidor MCP (Model Context Protocol) completo. MCP é o padrão criado pela Anthropic para AI agents chamarem ferramentas externas — é o que permite que um AI agent "use" uma API sem precisar de código customizado em volta. Você configura o server, aponta o agent, e ele sabe o que pode fazer.

Com pixcli mcp serve rodando, um AI agent compatível com MCP consegue:

  • Criar cobranças Pix passando valor, descrição e dados do devedor
  • Verificar status de pagamentos por txid
  • Listar cobranças com filtros por status e período
  • Gerenciar webhooks — registrar, listar, remover

Na prática, isso abre casos de uso que antes precisavam de integrações customizadas:

E-commerce autônomo: Um AI agent processa um pedido, cria a cobrança Pix, monitora o pagamento, e dispara o fluxo de fulfillment — tudo sem intervenção humana. O pix-mcp vira a camada financeira do seu agente de vendas.

Suporte com autonomia real: Agent de suporte ao cliente que não só identifica que um reembolso é devido, mas emite o Pix de devolução na hora. Sem escalar para um humano processar manualmente.

Billing automatizado: Pipelines de cobrança recorrente gerenciados por agentes que entendem contexto — podem reagir a inadimplência, reemitir cobranças, e reportar status sem dashboard.

O setup com Claude Code, por exemplo, é direto:

// .mcp.json
{
  "mcpServers": {
    "pixcli": {
      "command": "pixcli",
      "args": ["mcp", "serve"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

A partir daí, o agent tem acesso às ferramentas Pix nativamente. Você pode pedir "cria uma cobrança de R$50 para o pedido #1234" e ele executa — usando a mesma infraestrutura da sua CLI.

O pixcli é a primeira ferramenta Pix com integração nativa para AI agents. MCP está ganhando adoção rápida — Claude Code, OpenClaw, e outros runtimes já suportam. Faz sentido construir a camada de pagamentos já preparada para esse mundo.

Features principais

Cobranças Pix
Criação de cobranças imediatas e com vencimento, consulta de status, listagem e filtragem — tudo via CLI com output estruturado (JSON, table, ou plain text).

QR Codes
Geração de QR codes diretamente no terminal usando blocos Unicode, ou exportação para PNG. Suporta QR codes estáticos e dinâmicos.

Webhook Server
Um servidor local que recebe callbacks do PSP, útil para desenvolvimento e testes. Funciona com ngrok/tunneling para expor o endpoint.

Provider Pattern
O design permite trocar de PSP sem alterar o código da CLI ou dos seus scripts. Configure o provedor, e o resto funciona igual.

Como começar

# Instalar via cargo
cargo install pixcli

# Configurar credenciais (interativo)
pixcli config init

# Ou via variáveis de ambiente
export PIX_CLIENT_ID="seu-client-id"
export PIX_CLIENT_SECRET="seu-client-secret"
export PIX_CERTIFICATE_PATH="/path/to/cert.p12"

# Primeira cobrança
pixcli charge create --amount 10.00 --description "Teste"

# Rodar MCP server para AI agents
pixcli mcp serve
Enter fullscreen mode Exit fullscreen mode

A documentação completa está em construção com Fumadocs + Next.js, mas o --help de cada comando já é bastante detalhado.

Qualidade

Não é um projeto de fim de semana. São 210+ testes cobrindo desde a geração de BR Codes até a integração com a API da Efí. CI green, linting com clippy, formatting com rustfmt. O projeto segue as convenções da comunidade Rust.

Roadmap

  • Suporte a mais PSPs (Itaú, Bradesco, Mercado Pago)
  • Pix Saque e Pix Troco
  • Dashboard TUI (terminal UI)
  • Publicação das crates individuais no crates.io
  • Mais ferramentas expostas via MCP (notificações, relatórios)

Contribua

O projeto é MIT e aceita contribuições. Se você trabalha com Pix e quer melhorar o dev tooling do ecossistema brasileiro, ou se curte Rust e quer um projeto real para contribuir — ou se está construindo com AI agents e quer explorar o MCP server — o pixcli é pra você.

🔗 GitHub: https://github.com/pixcli/pixcli

Feedback, issues e PRs são muito bem-vindos. Se achou útil, uma ⭐ no repo ajuda demais a dar visibilidade ao projeto.

Top comments (0)