Preskoči na sadržaj

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