POST
/user/refund/{transactionId}DEPOSITReembolsar depósito
Requer permissão DEPOSIT no token.
Solicita o reembolso de um depósito Pix já liquidado. O valor integral é debitado do saldo disponível e devolvido ao pagador via Pix.
Como funciona
O valor debitado do saldo é o valor bruto do depósito — a taxa de serviço já cobrada não é devolvida. Por isso, o saldo do seller pode ficar negativo no valor exato da taxa da transação: esse é o comportamento esperado, não um bug.
O reembolso só é permitido se o saldo resultante não ficar mais negativo do que a taxa da transação — na prática, o seller precisa ter ao menos o valor líquido do depósito em saldo disponível. O comprador recebe de volta o valor integral pago via Pix.
Headers
| Authorization | Bearer <seu_token> |
| Content-Type | application/json |
Parâmetros
| Nome | In | Tipo | Descrição |
|---|---|---|---|
| transactionId* | path | string | ID da transação de depósito a ser reembolsada |
Body da requisiçãoobrigatório
| Campo | Tipo | Descrição |
|---|---|---|
description* | string | Motivo do reembolso — obrigatório, não pode ser vazio |
Respostas
Reembolso iniciado. A transação está agora em `WAITING_FOR_REFUND`.
| Campo | Tipo | Descrição |
|---|---|---|
id | string | — |
type | TransactionType | DEPOSITWITHDRAWCOMMISSION |
status | TransactionStatus | PENDINGCOMPLETEDCANCELEDWAITING_FOR_REFUNDREFUNDEDEXPIREDERROR |
amount | number | — |
serviceFeeCharged | number? | — |
clientReference | string? | — |
qrCodeText | string? | — |
qrCodeUrl | string? | — |
qrCodeBase64 | string? | — |
generatedName | string? | — |
generatedDocument | string? | — |
generatedEmail | string? | — |
payerName | string? | — |
payerDocument | string? | — |
payerInstitutionIspb | string? | — |
payerInstitutionName | string? | — |
receiverName | string? | — |
receiverDocument | string? | — |
receiverInstitutionIspb | string? | — |
receiverInstitutionName | string? | — |
withdrawPixKey | string? | Chave PIX usada no saque (preenchido em saque via chave) |
withdrawPixType | PixType? | Tipo da chave PIX (preenchido em saque via chave) cpfcnpjemailphoneevp |
withdrawQrCodeText | string? | Payload EMV Pix Copia e Cola usado no saque (preenchido em saque via QR Code) |
endToEndId | string? | — |
cancellationReason | string? | — |
paidAt | string?date-time | — |
refundEndToEndId | string? | — |
refundAmount | number? | — |
refundStatus | RefundStatus? | PENDINGCOMPLETEDCANCELED |
refundReason | RefundReason? | CUSTOMER_REQUESTDENY_COMPANY_DEPOSITINFRACTION |
refundDescription | string? | — |
refundedAt | string?date-time | — |
createdAt | stringdate-time | — |
updatedAt | stringdate-time | — |
splits | TransactionSplitItem[] | Splits configurados na venda, ecoando exatamente o que foi persistido. Na criação (POST /pix/) todo item vem com status PENDING — a execução real só acontece na confirmação do pagamento. Consulte novamente via GET /pix/ depois do webhook processar para ver EXECUTED ou FAILED. Ausente inteiramente (não aparece nem vazio) quando a transação não foi criada com o campo splits no request. Veja detalhes de cálculo e comportamento de erro em POST /pix/. |
Exemplos
curl "https://api.evopay.cash/v1/user/refund/EPB1694C2C35E94053874D53B1" \
-X POST \
-H "Authorization: Bearer <seu_token>" \
-H "Content-Type: application/json" \
--data-raw '{
"description": "exemplo"
}'