PayZuPayZu Docs

MCP server

MCP é o protocolo aberto que deixa assistentes de IA chamarem ferramentas externas via JSON-RPC. O payzu-mcp-pix expõe 29 tools curadas da API Pix Processamento, com nomes legíveis (pix.create, account.balance, etc), validação de tipos e tratamento de erro consistente.

Quando usar MCP vs SKILL.md vs SDK

CenárioUse
IA executa chamadas reais na sua conta PayZu (criar Pix, ver saldo, etc)MCP
IA gera código que você cola no seu appSKILL.md
Seu app em produção fala com a PayZuSDK (npm install payzu-pix)

Instalação

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "payzu-pix": {
      "command": "npx",
      "args": ["-y", "payzu-mcp-pix"],
      "env": {
        "PAYZU_TOKEN": "<seu-token-do-dashboard>"
      }
    }
  }
}

Reinicia o Claude Desktop. Testa pedindo "qual meu saldo PayZu?", o Claude vai chamar account.balance sozinho.

Cursor

.cursor/mcp.json no projeto (ou ~/.cursor/mcp.json global):

{
  "mcpServers": {
    "payzu-pix": {
      "command": "npx",
      "args": ["-y", "payzu-mcp-pix"],
      "env": { "PAYZU_TOKEN": "..." }
    }
  }
}

Continue, Codeium, outros

Mesma config (todos seguem o padrão MCP). Veja o README do pacote para detalhes.

Configuração

Env varObrigatórioDefaultDescrição
PAYZU_TOKENsim,Bearer token de abrirconta.payzu.com.br
PAYZU_API_URLnãohttps://api.payzu.processamento.com/v1Override pra whitelabel

Lista de tools (29)

Todos os nomes em snake_case com namespace por domínio. Cada tool tem description com link direto pra página do endpoint na doc.

Cobranças Pix (4)

ToolHTTP
pix.createPOST /pix
pix.getGET /pix
pix.qr_codeGET /pix/qr-code/{id}
pix.proofGET /proof/{id}

Saques (6)

ToolHTTP
withdraw.createPOST /withdraw
withdraw.getGET /withdraw
withdraw.by_qrPOST /withdraw/qrcode
withdraw.read_qrPOST /pix/qrcode/read
withdraw.dictGET /pix-key/{key}
withdraw.proofGET /withdraw/proof/{id}

Transferência interna (2)

ToolHTTP
internal_transfer.createPOST /internal-transfer
internal_transfer.getGET /internal-transfer

Conta (2)

ToolHTTP
account.profileGET /user
account.balanceGET /user/balance

Relatórios (6)

ToolHTTP
reports.list_transactionsGET /user/transactions
reports.get_transactionGET /user/transactions/{id}
reports.create_csvPOST /user/report
reports.list_jobsGET /user/reports
reports.get_jobGET /user/report/{id}
reports.downloadGET /user/report/{id}/download

Callbacks (4)

ToolHTTP
callbacks.listGET /user/callbacks
callbacks.getGET /user/callback/{id}
callbacks.resendPOST /user/callback/{id}/resend
callbacks.resend_bulkPOST /user/callbacks/resend

Infrações MED (5)

ToolHTTP
infractions.listGET /infractions
infractions.getGET /infractions/{id}
infractions.create_defensePOST /infractions/{id}/defense
infractions.list_defensesGET /infractions/{id}/defenses
infractions.get_defenseGET /infractions/{id}/defense/{defenseId}

Convenções aplicadas

  • Valores em REAIS decimais, tool rejeita centavos (9990 vira erro de validação; tem que ser 99.90).
  • clientReference obrigatório em criações (idempotência).
  • callbackUrl obrigatório em criações (sem isso ninguém te avisa o status).
  • Auto-retry em 5xx/429 com backoff exponencial + jitter (max 3 tentativas).
  • Erros incluem requestId, copia e cola no suporte se precisar.
  • Zero endpoints admin, só superfície pública/cliente.

Exemplo de uso (Claude Desktop)

Depois de configurar, conversas tipo:

"Cria uma cobrança PayZu de R$ 50 com referência order-abc"

Claude vai escolher pix.create, validar os argumentos e chamar a API. Te mostra o id, qrCodeText e qrCodeUrl no chat.

"Quanto eu tenho de saldo?"

Claude chama account.balance e responde com o número.

"Lista as últimas 10 transações canceladas"

Claude chama reports.list_transactions com status: CANCELED, limit: 10.

Suporte

On this page