Referência da API
Estornar transação
Estorna uma transação aprovada. Estornos PIX devolvem o valor integral ao pagador imediatamente. Estornos de cartão de crédito são iniciados via adquirente e podem levar até 30 dias úteis para aparecer no extrato do titular.
POST
/transactions/refund/:transactionIdEstornos são finais
transactionId Uma vez iniciado, um estorno não pode ser cancelado. Confira o ID da transação e o valor antes de chamar isso em produção. Considere adicionar um passo de confirmação na sua ferramenta de estorno.Autenticação
HTTP Basic Auth. Envie sua secret key no header:
Authorization: Basic {base64(secret:SUA_SECRET_KEY)}Parâmetros
transactionIdstring (path)obrigatórioID interno da transação a estornar. Apenas transações com status `APPROVED` podem ser estornadas.
Exemplo: 1234567
Respostas
200
Estorno iniciado.
JSON
{
"id": 1234567,
"status": "REFUNDED",
"refundedAt": "2026-04-08T16:45:21.501Z",
"message": "Transaction refunded successfully"
}400
A transação não está em estado estornável (já estornada, nunca aprovada, em chargeback ou marcada como INCOSISTENT).
JSON
{
"statusCode": 400,
"message": "Transaction is not in APPROVED status"
}403
API key sem a permissão createRefund.
JSON
{
"statusCode": 403,
"message": "You do not have permission to access this resource"
}404
Transação não encontrada.
JSON
{ "statusCode": 404, "message": "Transaction not found" }Exemplos
cURL
curl -X POST "https://api.pagnovo.com/transactions/refund/1234567" \
-H "Authorization: Basic $(echo -n 'secret:SUA_SECRET_KEY' | base64)"JavaScript
const token = Buffer.from("secret:" + process.env.PAGNOVO_SECRET_KEY).toString("base64");
const res = await fetch("https://api.pagnovo.com/transactions/refund/1234567", {
method: "POST",
headers: { Authorization: `Basic ${token}` },
});
const traceId = res.headers.get("x-trace-id");
const result = await res.json();
if (res.ok) {
console.log("estornada em:", result.refundedAt);
} else {
console.error(`falha no estorno: ${result.message} (trace: ${traceId})`);
}