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

# Reembolsar cargo

> Endpoint para reembolsar un cargo en el sistema de OnePay.

### Headers

<ParamField header="x-idempotency" type="string" required placeholder="Token único para garantizar la idempotencia de la petición">
  Token único para garantizar la idempotencia de la petición
</ParamField>

<ParamField path="charge_id" type="string" required placeholder="9e02966f-2ddf-4ee7-a391-5b5b7653e232">
  ID del cargo a reembolsar. [Crear cargo](/client/charges/create).
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.onepay.la/v1/charges/9e02966f-2ddf-4ee7-a391-5b5b7653e232/refund \
    -X POST \
    -H "Authorization: Bearer sk_test_xxx" \
    -H "x-idempotency: refund-001"
  ```

  ```javascript JavaScript theme={null}
  const chargeId = '9e02966f-2ddf-4ee7-a391-5b5b7653e232';

  const response = await fetch(`https://api.onepay.la/v1/charges/${chargeId}/refund`, {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer sk_test_xxx',
      'x-idempotency': 'refund-001'
    }
  });

  if (response.status === 204) {
    console.log('Reembolso exitoso');
  }
  ```

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

  charge_id = "9e02966f-2ddf-4ee7-a391-5b5b7653e232"
  url = f"https://api.onepay.la/v1/charges/{charge_id}/refund"
  headers = {
      "Authorization": "Bearer sk_test_xxx",
      "x-idempotency": "refund-001"
  }

  response = requests.post(url, headers=headers)

  if response.status_code == 204:
      print("Reembolso exitoso")
  ```

  ```php PHP theme={null}
  <?php
  $chargeId = "9e02966f-2ddf-4ee7-a391-5b5b7653e232";
  $ch = curl_init();

  curl_setopt_array($ch, [
      CURLOPT_URL => "https://api.onepay.la/v1/charges/{$chargeId}/refund",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => [
          "Authorization: Bearer sk_test_xxx",
          "x-idempotency: refund-001"
      ]
  ]);

  $response = curl_exec($ch);
  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

  if ($httpCode === 204) {
      echo "Reembolso exitoso";
  }

  curl_close($ch);
  ?>
  ```
</RequestExample>

<ResponseExample>
  ```json 204 theme={null}
  no content
  ```

  ```json 422 theme={null}
  // charge_is_test
  {
     "message":"El cargo es de prueba, no se puede reembolsar",
     "code":10806,
     "code_name":"charge_is_test",
  }

  // charge_refunded
  {
     "message":"El cargo ya ha sido reembolsado, no se puede volver a reembolsar",
     "code":10805,
     "code_name":"charge_refunded",
  }

  // charge_is_not_paid
  {
     "message":"El cargo no ha sido pagado, no se puede reembolsar",
     "code":10807,
     "code_name":"charge_is_not_paid",
  }
  ```

  ```json 409 theme={null}
  {
    "message": "No se puede generar la operación, genera un token de idempotencia y envíelo en los headers como x-idempotency",
    "code": 10003,
    "code_name": "idempotency_error"
  }
  ```
</ResponseExample>
