PayZuDocs

让 Claude、Cursor 等助手在你开发时对你的账户执行真实操作:通过 npx 在本地运行,用你的 token,工具开箱即用,带雷亚尔金额校验和自动重试。

这是什么

payzu-mcp-pix 是一个本地 MCP 服务器。它通过 npx 在你的机器上运行,并以 stdio 与 AI 助手通信。也提供托管版本(见下文"托管服务器(免安装)"一节),无需安装任何东西。无论哪种方式,助手决定调用哪个 tool,服务器用你的 token 向 Pix Processamento API 发起 HTTP 调用。

MCP 是一个开放协议,让 AI 助手通过 JSON-RPC 调用外部工具。当你希望助手在开发或交互式使用中对账户执行真实操作时,用 MCP。如果目标是让你的生产应用与 PayZu 通信,请用 SDK(payzu-pix)。

需要 payzu-mcp-pix 0.6.0 或更高版本,以及 Node 20 或更高版本。

开始之前

在 abrirconta.payzu.com.br 获取 API token:

  1. 登录你的账户。
  2. 打开凭证区域(API token 部分)。
  3. 复制 token。该值填入 PAYZU_TOKEN。

token 拥有账户的真实访问权限:创建收款、Pix 付款和查看余额。请像密码一样对待。建议在每个 agent 操作执行前先批准,而不是让它无人值守地运行。

托管服务器(免安装)

不想安装任何东西?将任何兼容的 MCP 客户端指向托管服务器:

https://mcp.payzu.com.br/mcp
  • claude.ai 和 Claude Desktop:设置 → 连接器 → 添加自定义连接器 → 粘贴 URL。PayZu 页面会打开,只需输入一次令牌(OAuth);助手永远不会看到或存储令牌。
  • Cursor / VS Code:一键安装:

在 Cursor 中安装 在 VS Code 中安装

  • Claude Code:claude mcp add --transport http payzu-pix https://mcp.payzu.com.br/mcp(首次使用时打开授权流程)。无 OAuth 替代方案:通过 Authorization 头发送 API Bearer 令牌:--header "Authorization: Bearer <your-token>"。
  • Claude Desktop(本地安装包):下载 payzu-mcp-pix.mcpb 并打开文件;Claude 只会要求输入令牌。

托管服务器是无状态的:不存储令牌或账户数据。每个请求都使用您的凭证转发到 Pix Processamento API,与直接调用完全相同。

提现、退款和内部转账在托管服务器上已禁用。 这些操作需要带 WITHDRAW 作用域的令牌,而拥有此类令牌的账户只接受来自已登记 IP 的调用;托管服务器通过所有客户共用的一个 IP 发出请求。其他工具只有在账户既没有登记 IP、也没有带 WITHDRAW 作用域的有效令牌时,才能在托管服务器上使用:已登记 IP 的账户在整个 API 上只接受这些 IP(PZA203);未登记 IP 但有有效 WITHDRAW 令牌的账户,无论使用哪个令牌,所有调用都会被拒绝(PZA205)。其他情况请在公网 IP 已于面板 安全 菜单登记的机器上使用本地应用(npx payzu-mcp-pix 或 .mcpb 安装包),或在面板中操作。参见 IP 白名单。

Google Antigravity

在 Antigravity 界面中:

  1. 在 agent 面板(Agent Manager)顶部点击 ... 菜单。
  2. 选择 MCP Servers,再选 Manage MCP Servers。
  3. 点击 View raw config。
  4. 粘贴下面的配置,并替换成你的 token:
{
  "mcpServers": {
    "payzu-pix": {
      "command": "npx",
      "args": ["-y", "payzu-mcp-pix"],
      "env": { "PAYZU_TOKEN": "your-token-here" }
    }
  }
}

把 token 原样粘贴进 env。变量展开 ${VAR} 在某些版本会失败。

配置文件位置:

  • 新版本(Antigravity 2.0):~/.gemini/config/mcp_config.json。
  • 早期构建:~/.gemini/antigravity/mcp_config.json。

保存后在 Manage MCP Servers 界面点击 Refresh。

Antigravity 需要 payzu-mcp-pix 0.6.0 或更高版本。旧版本中带点的 tool 名称会被 Antigravity 使用的模型(Gemini、Claude、GPT)拒绝。

Claude Code

claude mcp add payzu-pix --env PAYZU_TOKEN=your-token -- npx -y payzu-mcp-pix

用 --scope user 让该服务器在所有项目生效:

claude mcp add payzu-pix --scope user --env PAYZU_TOKEN=your-token -- npx -y payzu-mcp-pix

Claude Desktop

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

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

保存后重启 Claude Desktop。

Cursor

编辑项目里的 .cursor/mcp.json,或全局 ~/.cursor/mcp.json:

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

VS Code (GitHub Copilot)

编辑 .vscode/mcp.json。这里的键是 servers(不是 mcpServers),type 设为 stdio。用 inputs 配合 promptString 和 password,让 token 不被提交:

{
  "servers": {
    "payzu-pix": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "payzu-mcp-pix"],
      "env": { "PAYZU_TOKEN": "${input:payzu-token}" }
    }
  },
  "inputs": [
    {
      "id": "payzu-token",
      "type": "promptString",
      "description": "PayZu API token",
      "password": true
    }
  ]
}

Windsurf

编辑 ~/.codeium/windsurf/mcp_config.json,同样的 mcpServers 结构:

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

使用步骤

  1. 在 abrirconta.payzu.com.br 获取 token。
  2. 用上面某个配置块设置你的客户端(Antigravity、Claude Code、Claude Desktop、Cursor、VS Code 或 Windsurf)。
  3. 用自然语言请求一笔收款,例如:

"创建一笔 R$ 50,00 的 Pix 收款,reference 为 pedido-001,callback 为 https://meusite.com.br/webhook"

  1. agent 调用 pix_create,返回收款的 id 和 qrCodeText。
  2. 问"我的余额是多少?",agent 调用 account_balance 并返回数字。

不生效?

  • 错误 [401]:token 无效或已过期。在 abrirconta.payzu.com.br 生成新的。
  • tool 列表里没有该服务器:重新加载或重启客户端(Antigravity 用 Refresh)。

tools 清单(48 个)

所有名称采用 snake_case。每个 tool 的 description 包含直达文档对应 endpoint 页面的链接。

Pix 收款(4)

ToolHTTP
pix_createPOST /pix
pix_getGET /pix
pix_qr_codeGET /pix/qr-code/{transactionId}
pix_proofGET /proof/{id}

Pix 付款(6)

ToolHTTP
withdraw_create ¹POST /withdraw
withdraw_getGET /withdraw
withdraw_by_qr ¹POST /withdraw/qrcode
withdraw_read_qrPOST /pix/qrcode/read
withdraw_dictGET /pix/key?pixKey={key}
withdraw_proofGET /withdraw/proof/{id}

退款(1)

ToolHTTP
refund_create ¹POST /refund/{transactionId}

Webhooks(8)

ToolHTTP
webhooks_createPOST /user/webhooks
webhooks_listGET /user/webhooks
webhooks_getGET /user/webhooks/{id}
webhooks_updatePATCH /user/webhooks/{id}
webhooks_deleteDELETE /user/webhooks/{id}
webhooks_rotate_secretPOST /user/webhooks/{id}/rotate-secret
webhooks_sent_quantityGET /user/webhooks/sent/quantity
webhooks_sent_detailGET /user/webhooks/{id}/sent/{callbackId}

内部转账(2)

ToolHTTP
internal_transfer_create ¹POST /internal-transfer
internal_transfer_getGET /internal-transfer

账户(3)

ToolHTTP
account_profileGET /user
account_balanceGET /user/balance
account_pix_keysGET /user/dict?key={key}

报表(11)

ToolHTTP
reports_list_transactionsGET /user/transactions
reports_get_transactionGET /user/transactions/{id}
reports_create_csvPOST /user/report
reports_list_jobsGET /user/report
reports_get_jobGET /user/report/{id}
reports_downloadPOST /user/report/{id}/download
reports_bank_statementsGET /user/bank-statements
reports_bank_statementGET /user/bank-statements/{id}
reports_deposit_pendingGET /user/deposit-pending
reports_deposit_pending_getGET /user/deposit-pending/{id}
reports_summaryGET /user/summary

callbacks(8)

ToolHTTP
callbacks_listGET /user/callbacks
callbacks_getGET /user/callbacks/{id}
callbacks_resendPOST /user/callbacks/resend/{transactionId}
callbacks_resend_bulkPOST /user/callbacks/resend
callbacks_resend_webhookPOST /user/callbacks/resend/webhook/{webhookId}
callbacks_resend_webhook_bulkPOST /user/callbacks/resend/webhook
callbacks_create_secretPOST /user/callbacks/secret
callbacks_rotate_secretPATCH /user/callbacks/secret/rotate

MED 违规(5)

ToolHTTP
infractions_listGET /user/infractions
infractions_getGET /user/infractions/{id}
infractions_create_defensePOST /user/infractions/{id}/defenses(multipart)
infractions_list_defensesGET /user/infractions/{id}/defenses
infractions_get_defenseGET /user/infractions/{id}/defenses/{defenseId}

¹ 在托管服务器上被禁用,原因见上方警告:它们以 stub 形式注册,只会回复该操作不可用。在本地应用(npx payzu-mcp-pix 或 .mcpb 安装包)中可正常使用。

默认约定

  • 金额一律使用雷亚尔小数,绝不用分:R$ 99,90 写作 99.90。
  • 创建类调用必须传 clientReference(幂等)。
  • 创建类调用的 callbackUrl 是可选的。不传则该交易没有单独的投递;已注册的 webhook 仍会收到事件,状态也可以用查询 tool 获取。
  • 仅对读取类请求(GET、HEAD、OPTIONS)且仅在 408、429、500、502、503、504 状态下自动重试,采用指数退避 + jitter,最多重试 3 次。创建类调用永不重试:失败的 POST 不会变成重复收款。
  • 错误信息包含 requestId,如需协助直接复制给支持团队。
  • 零 admin endpoints,仅暴露公开与客户端层面。

金额不会校验单位错误。 schema 接受任何最多两位小数的正数,所以 9990 会通过,并生成一笔 R$ 9.990,00 的收款,而不是 R$ 99,90。如果你的代码以分为单位保存金额,请先除以 100 再交给 agent。

环境变量

Env var必填默认值说明
PAYZU_TOKEN是来自 abrirconta.payzu.com.br 的 token
PAYZU_API_URL否https://api.payzu.processamento.com/v1whitelabel 场景下覆盖

支持

本页内容