E10-F3: Support Refund Processing¶
Epic: E10: Customer Support Operations
Size: M (Medium)
Problem / Outcome¶
Support agents process refund requests.
Scope¶
In-Scope:
- Timing-based policy: >48h no reason required, <48h reason required
- Supervisor approval for <48h refunds
- Partial refund support
- Owner verification (only purchaser can request)
Out-of-Scope:
- Automated refund approval
Acceptance Criteria¶
- AC1: >48h refunds processed without reason
- AC2: <48h refunds require reason and may require supervisor approval
- AC3: Only ticket owner (purchaser) can request refund
Data Model Impact¶
RefundRequest table:
- id (UUID, PK)
- ticket_id (UUID, FK)
- order_id (UUID, FK)
- requester_verified (BOOLEAN)
- hours_before_match (INTEGER)
- reason (VARCHAR, nullable for >48h)
- requires_approval (BOOLEAN)
- status (ENUM: pending, pending_approval, approved, rejected, completed)
- agent_id (UUID, FK)
- supervisor_id (UUID, FK, nullable)
- created_at (TIMESTAMP)
- approved_at (TIMESTAMP)
- completed_at (TIMESTAMP)
Ticket table:
- status = REFUNDED
- refunded_at (TIMESTAMP)
Permissions/Roles¶
- Admin (Support Agent)
- Supervisor (for approvals)
How to Verify¶
npm test -- --grep "support refund"
Expected: Policy enforced, approvals work.
Dependencies¶
Implementation Tasks¶
See E10: Customer Support Tasks
Doc References¶
Last Updated: January 2026