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": []
}amountis what the payer sent.netAmountis what came into the account, already without the fee (serviceFee).e2eis the Pix end-to-end ID.receiverPixKeyis the key on your account that received it.payeris 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
200response carries the deposit with the return inrefunds. The result arrives through theREFUND_COMPLETEDorREFUND_FAILEDwebhooks, withdepositIdinstead ofpaymentId. Until then, the amount appears inrefundInProgressAmount; what was already returned is inrefundedAmount. - The route does not accept
Idempotency-Key. On a502, 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.