{
"object": "refund",
"id": "rf_01k1y7c3n8b5w2q9r4t6y8u1i3",
"charge": "ch_01k1y6r6m6q2x0p3d9v4t7c8n2",
"status": "succeeded",
"amount": 10000,
"currency": "BRL",
"fee_returned": 699,
"seller_debit": 9301,
"reason": "Comprador desistiu",
"failed_reason": null,
"created_at": "2026-08-05T10:12:00+00:00",
"processed_at": "2026-08-05T10:12:02+00:00"
}Estornar cobrança
Devolve o dinheiro ao comprador, no todo ou em parte.
{
"object": "refund",
"id": "rf_01k1y7c3n8b5w2q9r4t6y8u1i3",
"charge": "ch_01k1y6r6m6q2x0p3d9v4t7c8n2",
"status": "succeeded",
"amount": 10000,
"currency": "BRL",
"fee_returned": 699,
"seller_debit": 9301,
"reason": "Comprador desistiu",
"failed_reason": null,
"created_at": "2026-08-05T10:12:00+00:00",
"processed_at": "2026-08-05T10:12:02+00:00"
}10000. Decimais são
recusados com 422, e o porquê está em Valores em centavos.Idempotency-Key nesta chamada e você pode repetir com tranquilidade depois de um erro de
rede: a mesma chave devolve o recurso que já existe, em vez de criar um segundo.
Veja Idempotência.amount, devolvemos o que ainda cabe estornar — e não o valor da venda. Numa cobrança já
devolvida pela metade, mandar o valor cheio de volta tiraria o dinheiro duas vezes do vendedor.amount, fee_returned e seller_debit respondem perguntas diferentes e por isso vêm separados.
A aritmética está em Estornos.Authorizations
Chave secreta do vendedor, criada no painel em Desenvolvedores.
O valor em claro existe uma única vez, na criação. Guardamos só o hash SHA-256 - nem o suporte consegue recuperá-lo, o que é o ponto: um dump do nosso banco não permite cobrar em nome de ninguém.
A chave vai no servidor. Colocá-la no navegador do comprador a entrega a qualquer pessoa que abra a página.
Headers
Identificador único da SUA tentativa. Use o mesmo valor ao repetir a requisição depois de um erro de rede.
Opcional, mas recomendado em toda criação de cobrança e estorno. Sem ele, uma repetição cria uma segunda cobrança.
255Path Parameters
Código público da cobrança, no formato ch_….
^ch_[0-9a-z]{26}$Body
Response
Estorno registrado e enviado ao provedor.
Um estorno. charge, failed_reason e processed_at são os
únicos campos que podem faltar: os três vêm na resposta da API, mas
o objeto embutido nos webhooks charge.refunded e
charge.chargedback não os inclui.
"refund""rf_01k1y7c3n8b5w2q9r4t6y8u1i3"
failed significa que a devolução não aconteceu e o saldo do
vendedor foi reposto. A linha permanece de propósito: uma tentativa
de devolver dinheiro que não deu certo é exatamente o que alguém vai
procurar depois.
pending, succeeded, failed O que volta ao comprador, em centavos inteiros. Do ponto de vista dele o estorno é sempre integral: a política de taxa decide quem financia, nunca quanto ele recebe.
"BRL"Quanto da nossa taxa devolvemos, em centavos inteiros.
O que efetivamente sai do saldo do vendedor, em centavos
inteiros. Sempre amount - fee_returned. Pode ser MAIOR que o
líquido recebido na venda, quando a política retém o custo que o
provedor não devolve.
Código da cobrança estornada.
Preenchido quando status é failed.