<!-- ZenPays documentation · https://docs.zenpayz.com/docs/rest-api/endpoints/refunds/refund-stats -->

# Refund Statistics

Get refund statistics and metrics.

<EndpointHeader verb="GET" path="/merchant/api/v1/refund-intents/stats" />

## Request

### Headers

<ParamTable
  label="Header"
  rows={[
    { name: "Authorization", required: true, desc: "`Bearer {api_key}`" },
    { name: "X-Signature", required: true, desc: "HMAC-SHA256 signature" },
    { name: "X-Timestamp", required: true, desc: "ISO 8601 timestamp" },
    { name: "X-Secret-Salt", required: true, desc: "Secret salt for HMAC validation" },
  ]}
/>

### Query Parameters

<ParamTable
  rows={[
    { name: "startDate", type: "string", default: "30 days ago", desc: "Start date (ISO format)" },
    { name: "endDate", type: "string", default: "now", desc: "End date (ISO format)" },
    { name: "currency", type: "string", default: "-", desc: "Filter by currency code" },
  ]}
/>

## Response

### Success (200 OK)

```json
{
  "success": true,
  "data": {
    "total": 150,
    "pending": 5,
    "approved": 3,
    "rejected": 1,
    "processing": 2,
    "completed": 135,
    "failed": 3,
    "cancelled": 1,
    "totalAmount": 250000,
    "averageAmount": 1666.67,
    "averageProcessingTime": 285633,
    "refundRate": 90
  }
}
```

### Response Fields

<ParamTable
  rows={[
    { name: "total", type: "number", desc: "Total number of refunds" },
    { name: "pending", type: "number", desc: "Refunds pending approval" },
    { name: "approved", type: "number", desc: "Approved, awaiting processing" },
    { name: "rejected", type: "number", desc: "Rejected by admin" },
    { name: "processing", type: "number", desc: "Currently being processed by TSP" },
    { name: "completed", type: "number", desc: "Successfully completed refunds" },
    { name: "failed", type: "number", desc: "Failed refunds" },
    { name: "cancelled", type: "number", desc: "Cancelled refunds" },
    { name: "totalAmount", type: "number", desc: "Sum of all refund amounts" },
    { name: "averageAmount", type: "number", desc: "Average refund amount" },
    { name: "averageProcessingTime", type: "number", desc: "Average processing time in milliseconds" },
    { name: "refundRate", type: "number", desc: "Percentage of completed refunds (completed / total * 100)" },
  ]}
/>

<CodeRail>

## Examples

<Tabs groupId="language">
  <TabItem value="curl" label="cURL" default>

```bash
curl -X GET "https://api.zenpayz.com/merchant/api/v1/refund-intents/stats?startDate=2026-01-01&endDate=2026-03-28" \
  -H "Authorization: Bearer zp_test_xxxxx" \
  -H "X-Timestamp: 2026-03-28T10:30:00.000Z" \
  -H "X-Signature: a1b2c3d4e5f6..." \
  -H "X-Secret-Salt: your_secret_salt"
```

  </TabItem>
  <TabItem value="sdk" label="SDK">

```javascript
const stats = await zenpays.refunds.getStats('2026-01-01', '2026-03-28');
console.log(`Total: ${stats.total}, Completed: ${stats.completed}`);
console.log(`Refund rate: ${stats.refundRate}%`);
console.log(`Total amount: ${stats.totalAmount}`);
```

  </TabItem>
</Tabs>

</CodeRail>

## Related Endpoints

- [List Refunds](/docs/rest-api/endpoints/refunds/list-refunds) — Get individual refund records
- [Get Refund](/docs/rest-api/endpoints/refunds/get-refund) — Get details of a specific refund
