Guia de Devolução (PIX Refund)
Guia de Devolução (PIX Refund)
Este guia explica como solicitar a devolução de um pagamento PIX recebido.
Visão Geral
A devolução PIX permite estornar um pagamento recebido, no todo ou em parte. A transação original é sempre identificada pelo E2E (End-to-End ID) — não existe devolução por identifier da cobrança. Se você só tem o identifier, consulte o QR ou o pagamento primeiro para obter o E2E (ver Onde Encontrar o E2E).
Quando Utilizar
- Pagamento duplicado - Cliente pagou duas vezes
- Cancelamento de pedido - Pedido cancelado após o pagamento
- Valor incorreto - Cliente pagou um valor diferente do esperado
- Erro operacional - Pagamento recebido incorretamente
Prazos
O prazo para devolução PIX é definido pelo BACEN e aplicado pelo liquidante: 90 dias contados do pagamento original, tanto para devolução comum quanto para os casos de fraude.
Passado esse prazo, o liquidante recusa a devolução — a API repassa a recusa
como partner_rejected (422), com o motivo informado no bloco partner. Não
há um código de erro específico para “prazo expirado”. Nesse cenário, use
outros meios de estorno.
Solicitar Devolução por E2E (End-to-End ID)
O E2E é o identificador único da transação no sistema PIX brasileiro. Formato: E{ISPB}{DATE}{SEQUENTIAL}.
Request
Parâmetros do Body
A conta que recebeu o PIX original vem do path ({accountId}) e a moeda é
sempre BRL — nenhum dos dois é lido do body.
Valores de reason
A lista é fechada: qualquer valor fora desta tabela é rejeitado com HTTP 400. Os slugs são repassados literalmente ao parceiro bancário (MT Bank), sem tradução.
Resposta de Sucesso
A devolução usa o mesmo pipeline (e shape) do PIX out. O status HTTP
reflete o desfecho: 200 (COMPLETED), 422 (FAILED), 202
(TIMEOUT/PENDING).
Não há campo
refundId/amount/currencyna resposta — usepaymentIde acompanhe o desfecho final pelo extrato ou webhook.
Estorno parcial
O campo amount é obrigatório e define quanto volta ao pagador: envie o
valor integral do PIX original para estornar tudo, ou um valor menor para
estornar em parte. Acima do original, a API responde
400 refund_amount_exceeded e não inicia a devolução.
Um mesmo PIX pode ser devolvido em mais de uma parcela, até somar o valor original. Duas regras importam aqui:
- Cada devolução precisa de
Idempotency-Keyeidentifierpróprios. Repetir um dos dois faz a API tratar a chamada como retentativa da devolução anterior e devolver o resultado dela — a segunda parcela nunca sai. - O controle do quanto ainda resta devolvível é do banco liquidante.
A CorpX não soma parciais: uma devolução que estoure o saldo devolvível
é recusada pelo liquidante e volta como
refund_amount_exceeded.
Para saber quanto de um PIX já foi devolvido, consulte o extrato da conta: as linhas de devolução referenciam o E2E da transação original.
Webhook de Devolução
Quando a devolução for processada, você receberá um webhook:
Uma devolução recusada emite pix.refund.failed com status: "FAILED" e os
campos errorCode/errorReason/error no data. Devolução em TIMEOUT
não emite webhook — consulte o extrato.
Exemplo Completo: Script de Devolução
Onde Encontrar o E2E
O E2E pode ser encontrado em:
- Webhook de pagamento recebido
- Consulta da cobrança após o pagamento
- Extrato da conta (Statement)
- Comprovante do pagador
Exemplo: Extrair E2E do Webhook
O campo a guardar é data.endToEnd.
Exemplo: Extrair E2E da Cobrança (QR Code)
A resposta do lookup de QR é um objeto plano (sem envelope data); o
campo a guardar é endToEndId.
Erros Comuns
A lista completa está em Erros.
Boas Práticas
- Salve o E2E de todas as transações recebidas
- Use Idempotency Key para evitar devoluções duplicadas — e uma chave (e
identifier) diferente a cada parcial do mesmo PIX - Confira no extrato quanto de um PIX já foi devolvido antes de pedir uma nova parcial
- Documente o motivo para fins de auditoria
- Configure webhooks para acompanhar o status
- Mantenha um histórico de devoluções para conciliação
Próximos Passos
- Guia de Autenticação - Obter tokens de acesso
- Guia de QR Code - Criar cobranças
- Webhooks - Receber notificações