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

processing

Refund criado e enviado para a adquirente.

succeeded

Estorno confirmado; a charge pode mudar para refunded.

failed

Adquirente recusou o estorno; a charge permanece paga.

POST/charges/{id}/refund

Estornar charge

Estorna uma charge paga ou parcialmente estornada. Omita `amount_cents` para estornar o saldo restante.

Auth: Bearer API keyrefunds:createIdempotency-Key suportada

Headers

CampoTipoDescrição
Idempotency-KeystringRecomendado para retentativas de estorno.

Parâmetros e body

CampoTipoDescrição
idobrigatóriopath stringId da charge paga com prefixo `ch_`.
amount_centsintegerValor parcial em centavos. Omita para estorno total do saldo restante.
reasonstringMotivo opcional do estorno, até 120 caracteres.

Campos da resposta

CampoTipoDescrição
idstringId público com prefixo `rf_`.
objectstring`refund`.
statusstring`succeeded` ou `failed` após processamento na adquirente.
charge_idstringId público da charge pai.
amount_centsintegerValor estornado em centavos.
provider_referencestringReferência de estorno na adquirente, quando disponível.
request_idstringIdentificador 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

CampoTipoDescrição
refund.createdwebhookUm refund foi solicitado e persistido.
refund.succeededwebhookUm refund foi confirmado pela adquirente.
refund.failedwebhookUm refund falhou após processamento na adquirente.
charge.refundedwebhookO estado de refund da charge principal mudou.

Erros comuns

CampoTipoDescrição
charge_not_refundable422Charge não está em estado estornável.
amount_exceeds_charge422Valor excede o saldo estornável restante.
provider_unavailable502Adquirente indisponível; tente novamente.