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

# Get a refund

> Fetch a single refund by ID.

Returns the refund. Use it to confirm the outcome of a refund when
you can't rely on webhooks, or as the source of truth after a
`refund.updated` delivery.

> [!TIP]
>
> You don't need to call this on a timer. Kwugwo pushes every status
> change to your [webhook endpoint](https://docs.kwugwo.africa/refunds/webhooks.md). Fetch when
> you've lost a delivery or you're reconciling.

## Path parameters

**refundUid** `string` *required*

The refund ID, `rfd.XXXX.YYYY...`.

## Response

The [Refund object](https://docs.kwugwo.africa/refunds/object.md).

Refunds are scoped to the workspace that owns the secret key. A
refund belonging to another workspace, or a live ID used against the
sandbox, returns `404` rather than `403`.

```bash cURL theme={"system"}
curl https://api.kwugwo.africa/v1/refunds/rfd.VCvr.Hs7dQmXk2LpRvN9tYbCwZaEf \
  -H "Authorization: Bearer $KWUGWO_SECRET_KEY"
```

```js Node theme={"system"}
const refund = await fetch(
  `https://api.kwugwo.africa/v1/refunds/${refundUid}`,
  { headers: { Authorization: `Bearer ${process.env.KWUGWO_SECRET_KEY}` } }
).then(r => r.json());
```

```php PHP theme={"system"}
<?php
$ch = curl_init("https://api.kwugwo.africa/v1/refunds/{$refundUid}");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . getenv('KWUGWO_SECRET_KEY')],
]);
$refund = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```python Python theme={"system"}
import os, requests

refund = requests.get(
    f"https://api.kwugwo.africa/v1/refunds/{refund_uid}",
    headers={"Authorization": f"Bearer {os.environ['KWUGWO_SECRET_KEY']}"},
).json()
```

```go Go theme={"system"}
url := fmt.Sprintf("https://api.kwugwo.africa/v1/refunds/%s", refundUid)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KWUGWO_SECRET_KEY"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
```

```json 200 OK theme={"system"}
{
  "uid": "rfd.VCvr.Hs7dQmXk2LpRvN9tYbCwZaEf",
  "psp_external_ref": "3018284",
  "ref": "order_4719_refund_1",
  "reason": "Customer returned the notebook",
  "amount": 200000,
  "status": "successful",
  "error": null,
  "created_at": "2026-08-12T10:04:11+00:00",
  "updated_at": "2026-08-12T14:31:07+00:00",
  "ugwo": {
    "uid": "ugw.VCvr.7K2qPmRtV9xLnQ8sD1cYwHfE",
    "currency": "NGN"
  },
  "ugwo_activity": {
    "uid": "act.VCvr.qnbBJaElzSTHOcaTzxbuDlIs",
    "activity_type": "charge",
    "status": "partially_refunded",
    "psp": "paystack_ng",
    "psp_external_id": "5kfxw34ugz",
    "amount": 500000,
    "charged_amount": 500000,
    "refunded_amount": 200000,
    "error": null,
    "created_at": "2026-08-11T19:55:50+00:00",
    "updated_at": "2026-08-12T10:04:11+00:00"
  },
  "nzube_psp": null
}
```

```json 404 Not Found theme={"system"}
{
  "code": 404,
  "message": "nzube.refund.error.not_found"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.