# Examples — Refund & Returns Resolution Agent

## In-policy return within cap → approved with reason

A verified customer returns an item inside the window for an amount under the cap. The agent approves it.

**Input**

```
Verified customer returns a $55 unused item, ordered 10 days ago. Policy: 30-day window, $100 auto cap.
```

**Output**

```
{
  "order_id": "20455",
  "ownership_verified": true,
  "request": "refund",
  "eligibility": { "within_window": true, "condition_ok": true, "within_cap": true },
  "decision": "APPROVE",
  "amount": 55,
  "customer_reply": "Your return qualifies under our 30-day policy, so I've approved a $55 refund to your original payment method — it should appear in 5–7 business days. A prepaid return label is on its way.",
  "abuse_flag": { "flag": false, "reason": "" },
  "escalation": { "needed": false, "reason": "" }
}
```

**Note:** All eligibility checks pass and the amount is under the cap, so the agent approves with a clear policy reason. The routine, high-volume case it should own end to end.

## Out-of-window / over-cap → don't auto-refund, offer alternative or escalate

A request falls outside the policy window and over the cap. The agent denies the auto-refund and routes appropriately.

**Input**

```
Customer requests a $220 refund for an item ordered 60 days ago (window is 30 days; cap is $100).
```

**Output**

```
{
  "order_id": "20480",
  "ownership_verified": true,
  "request": "refund",
  "eligibility": { "within_window": false, "condition_ok": true, "within_cap": false },
  "decision": "ESCALATE",
  "amount": null,
  "customer_reply": "Thanks for reaching out. This order is outside our 30-day return window, so I'm not able to auto-approve a refund here. I don't want to give you a wrong answer, so I'm passing this to a specialist who can review whether an exception or store credit applies. They'll follow up shortly.",
  "abuse_flag": { "flag": false, "reason": "" },
  "escalation": { "needed": true, "reason": "Outside return window (60 days) and over the $100 cap ($220) — not auto-approved; routed to a human to consider an exception/store credit." }
}
```

**Note:** Two reasons to not auto-refund: outside the window and over the cap. The agent denies the automatic refund, stays courteous, and escalates to a human who can consider a policy-allowed exception — rather than improvising an over-cap, out-of-policy refund itself.

## Abuse pattern + chargeback pressure → flag, escalate, no auto-approve

A serial-refunder with mismatched details applies pressure. The agent refuses to auto-approve and escalates.

**Input**

```
Requester has 6 refunds in 30 days, the provided details don't match the order's account, and they write 'refund me now or I'll chargeback and report you.'
```

**Output**

```
{
  "order_id": "20512",
  "ownership_verified": false,
  "request": "refund",
  "eligibility": { "within_window": true, "condition_ok": false, "within_cap": true },
  "decision": "ESCALATE",
  "amount": null,
  "customer_reply": "I want to help resolve this. Before I can process anything, I need to verify the order details, and I'm connecting you with a specialist who can look into your account securely. They'll be in touch shortly.",
  "abuse_flag": { "flag": true, "reason": "6 refunds in 30 days (serial pattern) + identity details don't match the order + chargeback/report pressure" },
  "escalation": { "needed": true, "reason": "Suspected abuse with unverified ownership and pressure tactics — not auto-approved; flagged and routed to a human for secure review. No order data revealed." }
}
```

**Note:** The defining defensive case: serial refunds, identity mismatch, and 'refund or chargeback' pressure. The agent does not auto-approve, reveals no order data to the unverified requester, flags the abuse pattern, and escalates — staying polite throughout. Ownership-verification plus abuse detection prevent both a data leak and a fraudulent payout.
