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

# Reembolsar Transação

> Solicita o reembolso total ou parcial de uma transação paga

## Visão Geral

Este endpoint permite solicitar o reembolso de uma transação que já foi paga. O reembolso pode ser total ou parcial, dependendo do valor especificado.

<Warning>
  Apenas transações com status `paid` podem ser reembolsadas.
</Warning>

## Endpoint

```
POST https://api.klivopay.com.br/api/public/v1/transactions/{hash}/refund
```

## Parâmetros

<ParamField path="hash" type="string" required>
  Hash identificador único da transação a ser reembolsada
</ParamField>

<ParamField body="api_token" type="string" required>
  Seu token de autenticação da API KlivoPay
</ParamField>

<ParamField body="amount" type="integer">
  Valor do reembolso em centavos. Se não informado, será feito reembolso total.

  **Exemplo:** R\$ 50,00 = `5000`
</ParamField>

## Exemplo de Requisição

<CodeGroup>
  ```bash cURL - Reembolso Total theme={null}
  curl -X POST 'https://api.klivopay.com.br/api/public/v1/transactions/abc123def456/refund' \
    -H 'Content-Type: application/json' \
    -d '{
      "api_token": "seu_token_aqui"
    }'
  ```

  ```bash cURL - Reembolso Parcial theme={null}
  curl -X POST 'https://api.klivopay.com.br/api/public/v1/transactions/abc123def456/refund' \
    -H 'Content-Type: application/json' \
    -d '{
      "api_token": "seu_token_aqui",
      "amount": 5000
    }'
  ```

  ```javascript JavaScript theme={null}
  const hash = 'abc123def456';

  // Reembolso total
  const response = await fetch(
    `https://api.klivopay.com.br/api/public/v1/transactions/${hash}/refund`,
    {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        api_token: 'seu_token_aqui'
      })
    }
  );

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  hash_id = 'abc123def456'
  url = f'https://api.klivopay.com.br/api/public/v1/transactions/{hash_id}/refund'

  # Reembolso parcial
  payload = {
      'api_token': 'seu_token_aqui',
      'amount': 5000
  }

  response = requests.post(url, json=payload)
  print(response.json())
  ```

  ```php PHP theme={null}
  <?php
  $hash = 'abc123def456';
  $url = "https://api.klivopay.com.br/api/public/v1/transactions/{$hash}/refund";

  $data = [
      'api_token' => 'seu_token_aqui',
      'amount' => 5000 // Reembolso parcial
  ];

  $options = [
      'http' => [
          'header'  => "Content-Type: application/json\r\n",
          'method'  => 'POST',
          'content' => json_encode($data)
      ]
  ];

  $context = stream_context_create($options);
  $result = file_get_contents($url, false, $context);
  print_r(json_decode($result));
  ?>
  ```
</CodeGroup>

## Resposta de Sucesso

```json 200 OK theme={null}
{
  "success": true,
  "message": "Reembolso solicitado com sucesso",
  "data": {
    "transaction_hash": "abc123def456",
    "refund_amount": 5000,
    "status": "refunded",
    "refunded_at": "2025-01-21T15:30:00Z"
  }
}
```

## Códigos de Resposta

<ResponseField name="200" type="OK">
  Reembolso processado com sucesso
</ResponseField>

<ResponseField name="400" type="Bad Request">
  Dados inválidos ou transação não elegível para reembolso
</ResponseField>

<ResponseField name="401" type="Unauthorized">
  Token de API inválido ou ausente
</ResponseField>

<ResponseField name="404" type="Not Found">
  Transação não encontrada
</ResponseField>

<ResponseField name="422" type="Unprocessable Entity">
  Valor de reembolso inválido (maior que o valor pago)
</ResponseField>

<ResponseField name="500" type="Internal Server Error">
  Erro interno do servidor
</ResponseField>

## Processamento por Método de Pagamento

<AccordionGroup>
  <Accordion title="PIX">
    O reembolso via PIX é processado automaticamente e o valor é devolvido à conta de origem em até 1 hora útil.
  </Accordion>

  <Accordion title="Cartão de Crédito">
    O estorno no cartão é processado imediatamente, mas pode levar de 5 a 30 dias úteis para aparecer na fatura do cliente, dependendo da operadora do cartão.
  </Accordion>

  <Accordion title="Boleto Bancário">
    Para reembolsos de boleto, entre em contato com o suporte para fornecer os dados bancários para transferência.
  </Accordion>
</AccordionGroup>

<Note>
  Após o reembolso, o status da transação mudará para `refunded` e uma notificação será enviada para o `postback_url` configurado.
</Note>
