Estornos

Devolva um pagamento concluído ao pagador.

Só pagamentos com status done podem ser estornados. O estorno é assíncrono: a API aceita o pedido na hora e o resultado chega por webhook.

Estorno direto

curl -X POST "$XPAYZ_URL/refund/0d4ba8f5-bbc6-4cbb-ae65-13de2f903271" \
  -H "X-Secret-ID: $XPAYZ_SECRET_ID" \
  -H "X-Secret-Key: $XPAYZ_SECRET_KEY"
202 Accepted
{ "status": "processing", "refund_correlation_id": "c1d2e3f4-..." }

O ID no caminho é o data.external_id do webhook (ou o id em Listar pagamentos do link). Quando o estorno terminar, você recebe event.refunded.

Solicitação de estorno

Subcontas não estornam direto (recebem 403, código PGPL0024). Elas abrem uma solicitação com o motivo, que é analisada antes de ser executada:

curl -X POST "$XPAYZ_URL/refund-request/0d4ba8f5-bbc6-4cbb-ae65-13de2f903271" \
  -H "Content-Type: application/json" \
  -H "X-Secret-ID: $XPAYZ_SECRET_ID" \
  -H "X-Secret-Key: $XPAYZ_SECRET_KEY" \
  -d '{ "reason": "Cliente desistiu da compra" }'

Se aprovada, chega event.refunded. Se recusada, event.refund_rejected.

Respostas

StatusQuando
202 / 201Estorno aceito / solicitação criada.
403Subconta tentando estornar direto.
404Pagamento não encontrado (PGPL0004).
409Já estornado ou com solicitação aberta. Não é erro para retentar.
422O pagamento não está done (PGPL0023).

Nesta página