Skip to main content
POST
Devolver uma cobrança PIX recebida (estorno ao pagador)
Devolve integralmente um cash-in recebido de volta para o pagador original.

Fluxo

1

Você faz POST /v1/pix/refund

Envie external_id ou e2e do cash-in que quer devolver.
2

Recebe HTTP 202 com status processing

A devolução foi aceita e está liquidando (assíncrono, via SPI). O valor bruto é debitado da sua wallet.
3

Paysure envia webhook com o resultado

Você recebe um POST no postbackUrl do cash-in original com refund.status:
  • refunded → devolução liquidada.
  • failedrejeitada pelo SPI; o valor debitado é devolvido à sua wallet automaticamente.

Regras

  • Só devolução total (o valor bruto original).
  • Nada é revertido: nem a taxa, nem eventuais splits/direct splits (permanecem nas wallets de destino). Sua conta é debitada o valor bruto integral — você absorve a taxa e os splits.
  • Você precisa ter o valor bruto de saldo disponível (senão 422 saldo insuficiente).
  • Apenas cash-ins pagos de até 3 dias.
  • Informe external_id ou e2e.
  • Recurso liberado por conta — fale com o suporte para habilitar.
O valor debitado é o bruto (o que o pagador enviou), não o líquido que você recebeu. Se o cash-in teve taxa/splits, você devolve mais do que recebeu na wallet — o bruto cobre tudo.
A confirmação é assíncrona e chega por webhook. Não trate o 202 processing como concluído — aguarde o webhook com refund.status: "refunded".

Erros

Erros seguem o formato padrão { "message": "...", "ms": 123 }. Nos erros específicos de devolução vem também um campo code pra você diferenciar o motivo:

Webhook de devolução

Payload enviado ao seu postbackUrl quando a devolução finaliza (uma vez por transição):

Authorizations

ci
string
header
required

Autenticação por par client-credentials. Envie dois headers em toda requisição:

  • ci: client_id (público)
  • cs: client_secret (privado — nunca exponha no frontend)

Gere as credenciais no painel da Paysure em API Keys. Você pode ter múltiplas chaves ativas.

Body

application/json

Informe external_id ou e2e do cash-in a devolver (pelo menos um).

external_id
string | null

external_id do cash-in original (o mesmo que você enviou ao gerar a cobrança).

Maximum string length: 191
e2e
string | null

End-to-end (E2E) do cash-in original. Alternativa ao external_id.

Maximum string length: 191
description
string | null

Descrição da devolução (aparece no comprovante). Máx 140 caracteres.

Maximum string length: 140

Response

Devolução já solicitada anteriormente (idempotente) — retorna a existente.