# Refund abuse prevention

Use refund abuse signals to detect and prevent serial refund abuse patterns.

Refund abuse happens when customers request refunds for goods or services they’ve already received and plan to keep.

A customer might:

- Falsely claim a product wasn’t delivered or was defective
- Request a refund after fully consuming a digital good or service
- Repeatedly request refunds across multiple transactions on the same card or account

Radar assesses the likelihood that a payment is from a serial refund abuser.

You can enable the [refund abuse](https://docs.stripe.com/radar/risk-settings.md#refund-abuse) risk control on the [risk controls](https://dashboard.stripe.com/settings/radar/risk-controls) page in the Dashboard to automatically block these payments, or use the refund abuse risk level to write custom rules.

## How the refund abuse risk level works

Radar assigns a refund abuse risk level (`refund_abuse_risk_level`) to each payment, based on the customer’s refund behavior across Stripe. Possible values are `normal`, `elevated`, and `highest`.

The risk level reflects the likelihood that a payment will result in a refund policy violation, or that a refund is from a customer violating your policies. It doesn’t reflect the likelihood that the payment is fraudulent or the customer is malicious. Use the refund abuse risk level to enforce your refund abuse policies, not as a standalone fraud signal.

## Block or review payments based on refund abuse risk

### Enable the refund abuse risk control

Enable the refund abuse risk control on the [risk controls](https://dashboard.stripe.com/settings/radar/risk-controls) page in the Dashboard. Radar then automatically blocks payments from customers who are likely refund abusers. You can monitor performance and review affected payments in the Dashboard.

This control applies to card payments only.

### Write custom rules

For more granular control, write custom rules using the `refund_abuse_risk_level` attribute to act on payments that match `normal`, `elevated`, or `highest`. For example:

- `Block if :refund_abuse_risk_level: = 'highest'`
- `Review if :refund_abuse_risk_level: = 'elevated'`

### Query refund abuse data in Sigma

You can query the `radar_abuse_prevention_attributes` table in Stripe Sigma to analyze refund abuse patterns. For example, to view payments with an elevated or highest refund abuse risk level:

```sql
SELECT
  transaction_id,
  refund_abuse_risk_level,
  created
FROM radar_abuse_prevention_attributes
WHERE refund_abuse_risk_level IN ('elevated', 'highest')
ORDER BY created DESC
```

## Enforce policies when customers request refunds

Send refund requests from your customers to Stripe to automatically enforce policy rules based on each customer’s refund history and risk level.

Request access to the preview to try refund-time abuse prevention and provide feedback.

### Request access to refund-time abuse prevention.

Enter your email to request access.

```bash
curl https://docs.stripe.com/preview/register \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Referer: https://docs.stripe.com/radar/refund-abuse" \
  -d '{"email": "EMAIL", "preview": "refund_abuse_prevention_preview"}'
```
