PayZuDocs

Pix received without a charge

Look up a Pix that landed in the account without a charge and return the amount to the payer, if needed.

When someone sends a Pix straight to one of the account's keys, without a charge, the amount comes in as a deposit and the DEPOSIT_RECEIVED webhook arrives. Use the depositId from that webhook in the routes on this page.

Look up

GET /transactions/deposit/{depositId}, scope DEPOSIT_READ.

{
  "id": "cmu4a1b2c000001s6xyz98765",
  "method": "PIX",
  "amount": 5000,
  "serviceFee": 50,
  "netAmount": 4950,
  "e2e": "E99999999202610051433a1b2c3d4e5f",
  "receiverPixKey": "b3c7e9a2-4f1d-4c8a-9e2b-7d5f6a8c1e03",
  "payer": { "name": "João Pereira", "document": "***.456.789-**", "bankIspb": "99999999", "bankName": "Banco Exemplo S.A." },
  "paidAt": "2026-10-05T16:10:02.551Z",
  "createdAt": "2026-10-05T16:10:03.120Z",
  "refundedAmount": 0,
  "refundInProgressAmount": 0,
  "refundableAmount": 5000,
  "openInfractionProtocol": null,
  "refunds": []
}
  • amount is what the payer sent. netAmount is what came into the account, already without the fee (serviceFee).
  • e2e is the Pix end-to-end ID. receiverPixKey is the key on your account that received it.
  • payer is who paid, as reported by the bank, with the CPF masked or the CNPJ formatted.

The receipt comes from GET /transactions/deposit/{depositId}/receipt, as a base64-encoded PDF.

Return to the payer

POST /transactions/deposit/{depositId}/refund, scope REFUND. The money goes back to whoever sent the Pix. Send amount to return part of it; without amount, it returns everything that still remains.

{ "amount": 5000 }
  • The refund fee is charged separately, on top of the amount returned. It appears in refund, in the limits.
  • One return at a time per deposit. While one is still being processed, the next one is refused with REFUND_IN_FLIGHT.
  • With a MED dispute open on the deposit, the return is refused with REFUND_INFRACTION_OPEN.
  • Without enough balance, the return is refused. The API never returns less than requested.
  • The 200 response carries the deposit with the return in refunds. The result arrives through the REFUND_COMPLETED or REFUND_FAILED webhooks, with depositId instead of paymentId. Until then, the amount appears in refundInProgressAmount; what was already returned is in refundedAmount.
  • The route does not accept Idempotency-Key. On a 502, the return may have gone out: get the deposit before requesting it again.

All rejections are in Return deposit.

Return of a sent Pix

When the recipient of a withdrawal returns the amount, the credit comes in as a deposit and can be looked up by depositId. Most of the time the WITHDRAW_REFUND_RECEIVED webhook arrives, with the withdrawal's withdrawId, with no fee and with a PAYOUT_REFUND_RECEIVED line in the statement. Sometimes the return arrives as a regular Pix: DEPOSIT_RECEIVED webhook, with a fee and a DEPOSIT line. Handle both cases.

On this page