> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> O objeto Refund

Um `refund` representa a reversão de parte ou de todo o valor capturado em uma
`charge`. Ele sempre aponta para a charge original e, quando disponíveis, para o
`payment_intent` e o `customer` relacionados.

Refunds têm ciclo próprio: podem começar como `pending` ou `requires_action` e
depois mudar para `succeeded`, `failed` ou `canceled`. O valor disponível para
refund é calculado a partir da charge capturada menos os refunds já em andamento
ou concluídos.

Fees cobradas pela Chargefy não são devolvidas quando um refund é criado.

## Data Object

Este é o formato completo retornado em `create`, `get`, itens de `list` e em
`data.object` dos webhooks `refund.*`.

```json theme={}
{
  "id": "re_123",
  "object": "refund",
  "amount": 5000,
  "balance_transaction": null,
  "charge": "ch_123",
  "created_at": "2026-05-20T18:35:00Z",
  "currency": "brl",
  "customer": "cus_123",
  "description": null,
  "destination_details": null,
  "failure_balance_transaction": null,
  "failure_reason": null,
  "instructions_email": null,
  "livemode": true,
  "metadata": {},
  "next_action": null,
  "payment_intent": "pi_123",
  "pending_reason": null,
  "reason": "requested_by_customer",
  "receipt_number": null,
  "source_transfer_reversal": null,
  "status": "succeeded",
  "transfer_reversal": null,
  "updated_at": "2026-05-20T18:35:00Z"
}
```

<ResponseField name="id" type="string">
  Identificador do refund. Usa o prefixo `re_*`.
</ResponseField>

<ResponseField name="object" type="string">
  Sempre `"refund"`.
</ResponseField>

<ResponseField name="amount" type="integer">
  Valor do refund, em centavos.
</ResponseField>

<ResponseField name="balance_transaction" type="string | null">
  Reservado para a transação financeira associada ao refund. Retorna `null`
  enquanto não houver ledger público para expor.
</ResponseField>

<ResponseField name="charge" type="string">
  ID da charge original (`ch_*`).
</ResponseField>

<ResponseField name="currency" type="string">
  Moeda em código de 3 letras minúsculas, como `brl`.
</ResponseField>

<ResponseField name="destination_details" type="object | null">
  Detalhes de destino ou referência bancária do refund quando disponíveis.
</ResponseField>

<ResponseField name="failure_reason" type="string | null">
  Motivo da falha quando `status` é `failed`. Pode ser `declined`,
  `insufficient_funds`, `merchant_request`, `unknown` e outros motivos
  financeiros.
</ResponseField>

<ResponseField name="metadata" type="object">
  Pares chave-valor livres enviados na criação. Quando vazio, retorna `{}`.
</ResponseField>

<ResponseField name="reason" type="string | null">
  Motivo informado na criação do refund: `duplicate`, `fraudulent` ou
  `requested_by_customer`. Chargeback/dispute não é motivo de refund; é um
  fluxo separado.
</ResponseField>

<ResponseField name="status" type="string">
  Estado do refund: `pending`, `requires_action`, `succeeded`, `failed` ou
  `canceled`.
</ResponseField>
