<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Felipe Orlando</title>
    <description>The latest articles on Forem by Felipe Orlando (@felipeorlando).</description>
    <link>https://forem.com/felipeorlando</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F219167%2Ffce57d52-6eee-4ba6-b5b3-99db199ed697.jpeg</url>
      <title>Forem: Felipe Orlando</title>
      <link>https://forem.com/felipeorlando</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/felipeorlando"/>
    <language>en</language>
    <item>
      <title>Criei uma CLI em Rust para pagamentos Pix — e ela tem um MCP server para AI agents fazerem pagamentos</title>
      <dc:creator>Felipe Orlando</dc:creator>
      <pubDate>Wed, 01 Apr 2026 16:59:12 +0000</pubDate>
      <link>https://forem.com/felipeorlando/criei-uma-cli-em-rust-para-pagamentos-pix-e-ela-tem-um-mcp-server-para-ai-agents-fazerem-ieg</link>
      <guid>https://forem.com/felipeorlando/criei-uma-cli-em-rust-para-pagamentos-pix-e-ela-tem-um-mcp-server-para-ai-agents-fazerem-ieg</guid>
      <description>&lt;h2&gt;
  
  
  O problema que ninguém resolve
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Mas se você é desenvolvedor e precisa integrar com Pix, a experiência é outra história.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Quem já usou o &lt;code&gt;stripe-cli&lt;/code&gt; sabe como uma boa CLI muda completamente o fluxo de desenvolvimento. Para Pix, isso simplesmente não existia.&lt;/p&gt;

&lt;h2&gt;
  
  
  A solução: pixcli
&lt;/h2&gt;

&lt;p&gt;O &lt;strong&gt;pixcli&lt;/strong&gt; é uma ferramenta CLI open-source, escrita em Rust, para gerenciar pagamentos Pix direto do terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Criar uma cobrança Pix imediata&lt;/span&gt;
pixcli charge create &lt;span class="nt"&gt;--amount&lt;/span&gt; 50.00 &lt;span class="nt"&gt;--description&lt;/span&gt; &lt;span class="s2"&gt;"Pedido #1234"&lt;/span&gt;

&lt;span class="c"&gt;# Verificar status de um pagamento&lt;/span&gt;
pixcli charge status &lt;span class="nt"&gt;--txid&lt;/span&gt; abc123def456

&lt;span class="c"&gt;# Gerar QR code no terminal&lt;/span&gt;
pixcli qrcode generate &lt;span class="nt"&gt;--txid&lt;/span&gt; abc123def456

&lt;span class="c"&gt;# Iniciar webhook server local&lt;/span&gt;
pixcli webhook serve &lt;span class="nt"&gt;--port&lt;/span&gt; 8080

&lt;span class="c"&gt;# Iniciar MCP server para AI agents&lt;/span&gt;
pixcli mcp serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Arquitetura
&lt;/h2&gt;

&lt;p&gt;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:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Por que essa separação?&lt;/strong&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  MCP Server: seu AI agent pode fazer pagamentos Pix
&lt;/h2&gt;

&lt;p&gt;Essa é a parte do projeto que mais me empolga — e que, até onde sei, nenhum outro projeto Pix implementou.&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;pix-mcp&lt;/strong&gt; é 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.&lt;/p&gt;

&lt;p&gt;Com &lt;code&gt;pixcli mcp serve&lt;/code&gt; rodando, um AI agent compatível com MCP consegue:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Criar cobranças Pix&lt;/strong&gt; passando valor, descrição e dados do devedor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verificar status de pagamentos&lt;/strong&gt; por txid&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Listar cobranças&lt;/strong&gt; com filtros por status e período&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gerenciar webhooks&lt;/strong&gt; — registrar, listar, remover&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na prática, isso abre casos de uso que antes precisavam de integrações customizadas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;E-commerce autônomo:&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suporte com autonomia real:&lt;/strong&gt; 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.&lt;/p&gt;

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

&lt;p&gt;O setup com Claude Code, por exemplo, é direto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;.mcp.json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"pixcli"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pixcli"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"serve"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;O pixcli é a &lt;strong&gt;primeira ferramenta Pix com integração nativa para AI agents&lt;/strong&gt;. 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features principais
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cobranças Pix&lt;/strong&gt;&lt;br&gt;
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).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;QR Codes&lt;/strong&gt;&lt;br&gt;
Geração de QR codes diretamente no terminal usando blocos Unicode, ou exportação para PNG. Suporta QR codes estáticos e dinâmicos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Webhook Server&lt;/strong&gt;&lt;br&gt;
Um servidor local que recebe callbacks do PSP, útil para desenvolvimento e testes. Funciona com ngrok/tunneling para expor o endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provider Pattern&lt;/strong&gt;&lt;br&gt;
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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Como começar
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Instalar via cargo&lt;/span&gt;
cargo &lt;span class="nb"&gt;install &lt;/span&gt;pixcli

&lt;span class="c"&gt;# Configurar credenciais (interativo)&lt;/span&gt;
pixcli config init

&lt;span class="c"&gt;# Ou via variáveis de ambiente&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PIX_CLIENT_ID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"seu-client-id"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PIX_CLIENT_SECRET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"seu-client-secret"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PIX_CERTIFICATE_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/path/to/cert.p12"&lt;/span&gt;

&lt;span class="c"&gt;# Primeira cobrança&lt;/span&gt;
pixcli charge create &lt;span class="nt"&gt;--amount&lt;/span&gt; 10.00 &lt;span class="nt"&gt;--description&lt;/span&gt; &lt;span class="s2"&gt;"Teste"&lt;/span&gt;

&lt;span class="c"&gt;# Rodar MCP server para AI agents&lt;/span&gt;
pixcli mcp serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A documentação completa está em construção com Fumadocs + Next.js, mas o &lt;code&gt;--help&lt;/code&gt; de cada comando já é bastante detalhado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qualidade
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Contribua
&lt;/h2&gt;

&lt;p&gt;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ê.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/pixcli/pixcli" rel="noopener noreferrer"&gt;https://github.com/pixcli/pixcli&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>rust</category>
      <category>opensource</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
