Skip to main content
POST
Reembolsar um Checkout
Reembolsa integralmente um Checkout pago. O valor reembolsado é igual ao valor original da transação — não há reembolso parcial.

Obrigatório

Apenas id é obrigatório — o ID público do recurso a reembolsar.
O campo id aceita: Exemplo mínimo:
Exemplo com motivo:
Resposta:
Chamar o endpoint para o mesmo id retorna sempre o mesmo refundPublicId — não cria reembolsos duplicados.

Regras de negócio

  • Reembolso total apenas — o valor é sempre igual ao valor original da transação.
  • Métodos suportadosPIX, PIX_QRCODE e CARD. Boleto, TED e movimentações internas não são reembolsáveis via API.
  • Estado exigido:
    • PIX / PIX_QRCODE — transação precisa estar COMPLETE.
    • CARD — transação precisa estar APPROVED ou COMPLETE.
  • Disputas — transações em disputa (UNDER_DISPUTE ou metadata.underDispute=true) não podem ser reembolsadas por este endpoint.
  • Saldo — o valor é debitado do saldo available da loja (ou pending, em casos específicos de CARD). Sem saldo, retorna INSUFFICIENT_FUNDS.
  • Modo dev (sandbox) — em devMode o reembolso é confirmado instantaneamente, sem chamar o provider real.
  • Status final após o reembolso:
    • A transação original vira REFUNDED.
    • O billing vira REFUNDED.
    • O payment intent vira REFUNDED.
    • É criada uma nova transação WITHDRAW representando o reembolso (retornada em refundPublicId).
Ao concluir, é disparado o webhook checkout.refunded. Configure seu endpoint em Webhooks para receber a notificação.

Códigos de erro

Exemplo de erro:

Exemplo cURL

Authorizations

Authorization
string
header
required

Todas as requisições devem incluir sua chave de API no header Authorization usando o formato Bearer <abacatepay-api-key>. Sem esse header a requisição será rejeitada.

Saiba mais sobre como criar e usar chaves de API na documentação de autenticação.

Body

application/json
id
string
required

ID público do recurso a reembolsar. Aceita os prefixos char_ / pix_char_ / card_ (payment intent) ou bill_ (billing — resolvido para o payment intent pago).

Example:

"bill_abc123xyz"

reason
string

Motivo do reembolso. Aparece no histórico da transação.

Maximum string length: 500
Example:

"Pedido cancelado pelo cliente."

Response

Reembolso criado com sucesso.

data
object
error
string | null
Example:

null

success
boolean

Se a requisição obteve sucesso ou não.

Example:

true