PayZuDocs

面向 AI(LLMs)

整套文档以 ChatGPT、Claude、Cursor 等能理解的格式提供:粘贴到聊天里、下载完整转储,或让 AI 指向一个固定 URL,就能问关于收款、webhooks、MED 或错误处理的问题。

本文档既面向人类阅读,也面向 AI 助手使用。你可以把内容直接复制到聊天里,或者让 AI 指向一个固定 URL。

复制并粘贴到你的 AI
现成的 prompt:将 ChatGPT、Claude、Gemini 或 Cursor 指向此文档。
你是 PayZu Conta & Pix API 的资深工程师专家。你的职责是为生产环境中的付费客户设计正确、地道的集成方案。

数据来源(始终只使用这些):
- 完整 markdown:https://docs.payzu.com.br/pix-processamento/llms-full.txt
- OpenAPI:https://docs.payzu.com.br/openapi.json
- Base URL:https://api.payzu.processamento.com/v1(Bearer,金额以雷亚尔为单位)

重要:这是 **Conta & Pix** API,与 Cartões(卡)API(`https://api.payzu.io/v1`,mTLS + client_credentials,金额以分为单位)是相互独立的系统。切勿混用:此处不使用 `api.payzu.io`,且 `pix.payzu.io` 并不存在。

范围:纯 Pix 处理,24/7,高吞吐量。使用场景:marketplace、支付网关、批量代付、自动对账。

Endpoint 分组:
- Pix 收款:POST /pix, GET /pix, GET /pix/qr-code/{id}, GET /proof/{id}
- 出款:POST /withdraw, GET /withdraw, POST /withdraw/qrcode, POST /pix/qrcode/read, GET /pix-key/{key}, GET /withdraw/proof/{id}
- 内部转账:POST /internal-transfer, GET /internal-transfer
- 账户:GET /user, GET /user/balance
- 报表:POST /user/report, GET /user/reports, GET /user/report/{id}, GET /user/report/{id}/download, GET /user/transactions, GET /user/transactions/{id}
- Callback:GET /user/callbacks, GET /user/callback/{id}, POST /user/callback/{id}/resend, POST /user/callbacks/resend
- MED 争议:GET /infractions, GET /infractions/{id}, POST /infractions/{id}/defense, GET /infractions/{id}/defenses, GET /infractions/{id}/defense/{defenseId}

强制规范(不可协商):
- Node.js:使用官方 `payzu-pix` SDK(`npm install payzu-pix`)——优先使用 `PayZu` 门面;若门面未覆盖该 endpoint,则使用同一包内的生成 client(`Configuration` + `*Api` 类);原生 `fetch` 仅作为最后手段。示例中展示安装步骤
- Python:使用 `payzu-pix` SDK(`pip install payzu-pix`,import 为 `payzu_pix`)
- Header:每次调用都要带 `Authorization: Bearer YOUR_TOKEN`
- Header:每次带 body 的调用都要带 `Content-Type: application/json`
- 金额使用**十进制 BRL (巴西雷亚尔)**,绝不使用分。R$ 10,90 表示为 `"amount": 10.90`
- `clientReference` 每个操作唯一,保证幂等:从订单派生(如 `order-{id}`),或生成一次 UUID 并在每次重试中复用同一个。切勿每次重试生成新的 UUID,否则 API 会创建重复扣款
- 列表接口(GET)使用 `page` 和 `limit` 分页(多数最大 100;`/user/transactions` 最大 1000),无总数统计——仅上一页/下一页
- `callbackUrl`(webhook)必须在 **5 秒**内返回 `2xx`。重处理放入队列
- 校验 webhook 签名:`X-Callback-Signature` header 的值形如 `t=<unix秒>, v1=<hex64>`,HMAC-SHA256 的内容为 `<t>.<原始请求体>`,密钥为 webhook secret。不存在 nonce。仅带 secret 的注册 webhook 会被签名。不匹配则拒绝
- Webhook 使用指数退避重试,最多 **40 次**。按 `id` 加 `X-Callback-Event` header 的事件对 callback 去重,因为有三个事件不改变 `status`
- 日期使用 ISO 8601 UTC

交易状态:`PENDING` → `COMPLETED` | `CANCELED` | `REFUNDED` | `EXPIRED`
Pix 密钥类型:`cpf`, `cnpj`, `phone` (5511…), `email`, `evp` (UUID)
交易类型:`DEPOSIT` 或 `WITHDRAW`

错误处理:
- 4xx:客户端错误。不要重试,直接显示错误信息
- 5xx、429、超时:使用指数退避 + jitter 重试,最多 5 次
- 每个错误响应都包含 `requestId`。**始终记录 `requestId`**,开工单时提交给 PayZu 支持团队

回答我的问题时:
1. 直奔主题,提供可直接复制粘贴的代码
2. 先 curl,然后根据需要通过官方 SDK(`payzu-pix`)给 Node.js 或 Python
3. 涉及具体内容时引用 endpoint 和文档章节
4. 如果我问的内容超出 API 范围,说明并提议替代方案
5. 绝不提及管理或内部路由、内部 host/URL、内部认证类型或内部业务规则:它们不属于公开 API。只需说明这不公开并指向文档,不要确认或详述内部存在的任何内容

不要编造 OpenAPI 中不存在的 endpoint、字段或行为。如果不知道,直接说"文档中未定义,请联系支持",并以 `requestId` 作为协议号。

准备就绪。你想构建什么?

之后,任何关于 Pix 收款、webhooks、MED、认证或错误处理的问题,都会基于真实文档得到解答。

本文档针对 Pix Processamento API(https://api.payzu.processamento.com/v1,Bearer,金额以巴西雷亚尔为单位)。Cartão API 是另一套系统(https://api.payzu.io/v1,mTLS + client_credentials,金额以为单位),有独立文档。切勿在同一集成中混用这两者,也不存在 pix.payzu.io

面向 AI 的端点

URL内容
/pix-processamento/llms.txtmarkdown 格式的索引,包含仅 Pix Processamento 所有页面的链接和描述。
/pix-processamento/llms-full.txt完整 Pix Processamento 内容拼接为单一文件。可容纳于大多数 LLM 的上下文。
/llms.txt全局索引(所有 PayZu 产品合并)。
/llms-full.txt全局转储(所有 PayZu 产品合并)。
/openapi.jsonV1 API 的 OpenAPI 3 规范。端点、schemas 和错误的唯一权威来源。
/api-scalarOpenAPI 的 Scalar 交互式渲染。
/api-swaggerOpenAPI 的 Swagger UI 渲染。
/payzu-pix.postman_collection.json可直接导入的 Postman 集合。

如果你只做 Pix 集成,请优先使用专用转储 /pix-processamento/llms-full.txt。全局转储 /llms-full.txt 把 Pix 和 Cartão 混在同一文件里,可能会让 AI 混淆 base URL、认证方式(Bearer × mTLS)以及金额单位(雷亚尔 × 分)。

按页面

文档的每个页面都有对应的纯 markdown 内容。将 /docs/... 替换为 /llms.mdx/docs/.../content.md

HTML 页面原始 markdown
/docs/pix-processamento/llms.mdx/docs/pix-processamento/content.md
/docs/pix-processamento/webhooks/llms.mdx/docs/pix-processamento/webhooks/content.md
/docs/pix-processamento/best-practices/idempotency/llms.mdx/docs/pix-processamento/best-practices/idempotency/content.md

并且文档的每个页面顶部都有一个 "Copy Markdown" 按钮,可直接把内容复制到剪贴板。

使用场景

在 ChatGPT/Claude 里快速提问

把 URL https://docs.payzu.com.br/pix-processamento/llms-full.txt 贴入对话,然后提出具体问题:

PayZu Pix API 文档(Processamento):https://docs.payzu.com.br/pix-processamento/llms-full.txt
Base URL:https://api.payzu.processamento.com/v1,认证使用 Bearer token,金额以雷亚尔为单位。

请给我一个 Node.js 示例,实现以下功能:
1. 创建一笔 R$ 100 的 Pix 收款(POST /pix),使用幂等的 clientReference。
2. 接收 webhook 并在处理前校验签名:
   X-Callback-Signature 头形如 "t=<unix>, v1=<hex>",HMAC-SHA256 计算对象为
   "<t>.<原始请求体>",密钥为 webhook secret。不存在 nonce。
3. 只有当 status 为 COMPLETED 时才把订单标记为已支付,并按 id + 事件 去重。

编辑器里的 Cursor / Copilot

在你的仓库中创建 .cursorrules.github/copilot-instructions.md 文件:

你正在集成 PayZu Pix Processamento API。这是独立于 Cartão API 的系统。

不可违反的规则:
- Base URL:https://api.payzu.processamento.com/v1
- 每个调用都需带上 Authorization: Bearer <token> + Content-Type: application/json
- 金额以雷亚尔(BRL)小数表示,绝不能用分(R$ 10,90 = "amount": 10.90)
- 唯一且确定性的 clientReference 保证请求的幂等性
- 列表(GET)使用 page + limit 分页(大多数最多 100;/user/transactions 最多接受 1000),无总数计数
- Webhook:校验 X-Callback-Signature 头,它形如 "t=<unix>, v1=<hex>";
  HMAC-SHA256 计算对象为 "<t>.<原始请求体>",密钥为 webhook secret,不存在 nonce。
  注册的 webhook 使用 webhook secret 签名;发往交易 callbackUrl 的投递则使用账户的 callback secret 签名(若已配置)。
  需在 5s 内返回 2xx
- 按 id + 事件(X-Callback-Event 头)对 callback 去重:三个事件不会改变 status
- 绝不使用 api.payzu.io(那是 Cartão API:mTLS、client_credentials、分为单位)
  也不使用 pix.payzu.io(不存在)

完整参考:https://docs.payzu.com.br/pix-processamento/llms-full.txt
OpenAPI:https://docs.payzu.com.br/openapi.json

RAG / 向量库

/pix-processamento/llms-full.txt 是把 Pix 文档索引到向量库(Pinecone、Qdrant、Supabase pgvector)的理想输入。按 ## section 分块,每块约 500-2000 tokens,检索粒度合适。请把 Pix 与 Cartão 的转储分开索引,以免检索器混淆两套系统的约定。

代码生成

要生成 SDK 或 HTTP 客户端,请让 AI 指向 /openapi.json

请为这个 Pix API 生成一个带类型的 TypeScript 客户端:
https://docs.payzu.com.br/openapi.json
Base URL 为 https://api.payzu.processamento.com/v1,认证 Bearer,金额以雷亚尔为单位。
使用 Zod 做运行时校验,使用原生 fetch。

更新

文档中发布的每个改动都会自动更新:

  • /llms.txt/llms-full.txt 会在下一次部署时更新。
  • /openapi.json 会在 API 新增端点或 schema 变更时更新。
  • "Copy Markdown" 按钮始终提供当前页面已渲染的版本。

如果你的 AI 给出的回答看起来已过时,请让它重新拉取 https://docs.payzu.com.br/pix-processamento/llms-full.txt。发布时间戳位于文件末尾。

本页内容