Visão geral
O refund-in é a devolução de um recebimento Pix (cash-in). Pode ser total ou parcial, com múltiplas devoluções parciais enquanto o saldo disponível permitir.
Pré-requisitos
Antes de solicitar a devolução, verifique:
Identificadores críticos
O path POST /api/pix/refund-in/{id} exige o UUID do cash-in (campo id retornado no 201 de POST /api/pix/cash-in). Não use o transactionId do parceiro BaaS.
Criar a devolução
Resposta 201:
Persista o id do refund imediatamente. Ele é necessário para consultar o status com GET /api/pix/refund/{id} e para auditoria de devoluções parciais.
Campos
Devoluções parciais
Você pode fazer múltiplas devoluções parciais sobre o mesmo cash-in, desde que a soma total não ultrapasse o valor original.
Exemplo: cash-in de R300,00.Devoluc\ca~oparcial1:R 100,00. Devolução parcial 2: R$ 200,00.
A plataforma verifica o teto considerando tanto as devoluções CONFIRMED quanto as PENDING. Se houver devoluções pendentes que somam ao máximo, novas devoluções serão rejeitadas (422).
Monitorar o status
Receber o webhook
Atenção à semântica de event.id: no evento pix_cash_in_reversal, event.id é o UUID do cash-in original, não o UUID do refund-in. O event.external_id é o externalId do refund-in.
Chave de idempotência recomendada: event_type + transaction_id + end_to_end_id do estorno. Evita colisão entre devoluções parciais do mesmo cash-in.
Erros comuns
Auditoria
Para listar todos os refunds:
Referências