Tutorials
Reconciliation
Match your transactions with ours every day, querying movements in real time or pulling reports over long periods, and use your own reference to pair each payment with the right order.
Real-time listing
To check live transactions (dashboard, previous-day reconciliation):
curl "https://api.payzu.processamento.com/v1/user/transactions?dateFrom=2025-08-01&dateTo=2025-08-31&page=1&limit=100" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"Filter details in GET /user/transactions.
The listing filters (clientReference, status, type, window via dateFrom/dateTo, endToEndId, document/name, virtualAccount) are documented in Pagination · Available filters.
Transaction detail
curl "https://api.payzu.processamento.com/v1/user/transactions/PAYZU2025..." \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"Schema in GET /user/transactions/{id}.
Async report
For large windows (month, year), use the 3-step flow.
Request generation
curl -X POST https://api.payzu.processamento.com/v1/user/report \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"dateFrom": "2025-01-01",
"dateTo": "2025-12-31",
"status": ["COMPLETED"],
"type": ["DEPOSIT", "WITHDRAW"]
}'The response includes the job id.
Track status
curl "https://api.payzu.processamento.com/v1/user/report/JOB_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"Download when ready
POST /user/report/{id}/download returns a short-lived signed URL to download the CSV.
curl -X POST "https://api.payzu.processamento.com/v1/user/report/JOB_ID/download" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"Recommended strategy
- Identify each Pix charge/payment with
clientReference, that's your identifier, don't rely only on PayZu'sid. - Use callbacks as the primary source, don't poll.
- Daily reconciliation via report: pull the previous day's CSV and cross-check with your DB. Detects missed callbacks.
- Store
endToEndId, useful for tracing at Bacen in case of a dispute. - Sort by
createdAtorpaidAt, never byid. Theidis opaque and the date fragment it carries has day-level precision, so it doesn't order two transactions on the same day.
Balances
To check available balance before paying:
curl https://api.payzu.processamento.com/v1/user/balance \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"See GET /user/balance.