Refunds
Estorno total ou parcial de uma charge paga.
Refund é o objeto público de estorno. Crie um refund sobre uma charge `paid` ou `partially_refunded` para devolver o valor capturado.
Regras
Omita
amount_cents para estornar o saldo restante. Informe um valor parcial para múltiplos estornos até zerar o saldo. A charge passa para refunded ou partially_refunded conforme o contrato.Status do refund
processingRefund criado e enviado para a adquirente.
succeededEstorno confirmado; a charge pode mudar para refunded.
failedAdquirente recusou o estorno; a charge permanece paga.
POST
/charges/{id}/refundEstornar charge
Estorna uma charge paga ou parcialmente estornada. Omita `amount_cents` para estornar o saldo restante.
Auth: Bearer API keyrefunds:createIdempotency-Key suportada
Headers
| Campo | Tipo | Descrição |
|---|---|---|
Idempotency-Key | string | Recomendado para retentativas de estorno. |
Parâmetros e body
| Campo | Tipo | Descrição |
|---|---|---|
idobrigatório | path string | Id da charge paga com prefixo `ch_`. |
amount_cents | integer | Valor parcial em centavos. Omita para estorno total do saldo restante. |
reason | string | Motivo opcional do estorno, até 120 caracteres. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
id | string | Id público com prefixo `rf_`. |
object | string | `refund`. |
status | string | `succeeded` ou `failed` após processamento na adquirente. |
charge_id | string | Id público da charge pai. |
amount_cents | integer | Valor estornado em centavos. |
provider_reference | string | Referência de estorno na adquirente, quando disponível. |
request_id | string | Identificador de rastreio da requisição. |
Exemplos de requisição
curl -X POST https://bunne.com.br/api/v1/charges/ch_xxx/refund \ -H "Authorization: Bearer sk_test_xxx" \ -H "Idempotency-Key: order_123_refund" \ -H "Content-Type: application/json" \ -d '{ "reason": "requested_by_customer"}'Resposta
{ "id": "rf_xxx", "object": "refund", "status": "succeeded", "charge_id": "ch_xxx", "amount_cents": 10990, "currency": "BRL", "reason": "requested_by_customer", "provider_reference": "re_provider_abc123", "succeeded_at": "2026-06-25T13:00:05.000Z", "created_at": "2026-06-25T13:00:00.000Z", "updated_at": "2026-06-25T13:00:05.000Z", "request_id": "req_xxx"}Eventos relacionados
| Campo | Tipo | Descrição |
|---|---|---|
refund.created | webhook | Um refund foi solicitado e persistido. |
refund.succeeded | webhook | Um refund foi confirmado pela adquirente. |
refund.failed | webhook | Um refund falhou após processamento na adquirente. |
charge.refunded | webhook | O estado de refund da charge principal mudou. |
Erros comuns
| Campo | Tipo | Descrição |
|---|---|---|
charge_not_refundable | 422 | Charge não está em estado estornável. |
amount_exceeds_charge | 422 | Valor excede o saldo estornável restante. |
provider_unavailable | 502 | Adquirente indisponível; tente novamente. |