The official collection ready to run: import in one click, Bearer auth already wired up, and three environments set up, including the public sandbox so you can test before you have production credentials.
The official PayZu Pix collection is published at dev.payzu.com.br (Postman) with Bearer Auth via {{token}} and 3 ready environments: Sandbox, Production and Mock.
The JSON served at docs.payzu.com.br/payzu-pix.postman_collection.json covers the 48 /v1 routes. Folders follow the route path, one segment per folder: POST /user/callbacks/resend/webhook sits in user › callbacks › resend › webhook. Each request carries a saved response example per status.
Import the collection
Run in PostmanOr via URL in Postman: Import → Link:
https://docs.payzu.com.br/payzu-pix.postman_collection.jsonSetup in 3 steps
Import into your workspace
Click Run in Postman above. The collection is forked into your personal workspace, with the whole structure: folders, authentication, examples.
Configure the token
In the PayZu Pix collection → Variables tab:
| Variable | Value |
|---|---|
baseUrl | https://api.payzu.processamento.com/v1 (default) |
token | Your PayZu Bearer token |
baseUrl and token are the collection's only variables: auth sits at collection level and every request inherits the Authorization: Bearer {{token}} header, with no token of its own. This describes the JSON served at docs.payzu.com.br; if some request in your fork carries its own token, it came from an older copy, and reimporting from the link fixes it.
Test a call
Before sending anything, switch baseUrl to the sandbox (https://pix.sandbox.payzu.dev/v1) or select the Sandbox environment.
With the default baseUrl you are on production. The charge you create is real, and paying the QR Code moves real money.
Then: pix → Create Charge (Pix deposit) → Send. The example is already filled with amount and clientReference, and returns the qrCodeText.
Sandbox: the recommended way to test without production
Point baseUrl at the sandbox and run the whole collection against a real API, with a 24-hour credential and no signup:
https://pix.sandbox.payzu.dev/v1Same /v1 routes, so whatever works here works in production by swapping the host. Unlike the mock, the sandbox keeps state: the charge you create can be paid, the withdrawal changes status, and the webhook actually reaches your endpoint.
Mock Server
The mock is there for when you do not even want a sandbox credential yet, or you need to work around CORS in a web tool. It returns a fixed example and keeps no state.
https://a8aa4f94-6b53-4994-bc60-7b2347f008e1.mock.pstmn.io/v1Keep the /v1 at the end of the URL. Without it the mock answers 404 to everything.
| Request | Mock response |
|---|---|
POST /v1/pix | { id, status: "PENDING", amount, type: "DEPOSIT", qrCodeText, qrCodeBase64, qrCodeUrl } |
GET /v1/pix?clientReference=... | the same object, always PENDING |
GET /v1/user/balance | { balanceAvailable: 231.46, balanceBlocked: 0 } |
The mock always returns the same example, whatever you send: the response amount does not follow the request and the status never advances. To see a transaction change state, use the sandbox.
Best practices
- Create a fork of the official collection instead of editing the original. Forks receive upstream updates.
- Use environments to switch
baseUrlbetween sandbox and production (https://pix.sandbox.payzu.dev/v1vshttps://api.payzu.processamento.com/v1). - Code snippets: click
</>on the right of any request to export it as curl, Node, Python, Go, PHP, etc. - Monitor: enable Postman Monitor to test the API every 5 min and get alerted if it goes down.