← Work

Home / Refund Flow

Refund Flow

Self-serve refund flow replacing manual support intervention

2023 · Monetisation

Wix App Market developers had no way to issue refunds directly - every request required manual support intervention.

I designed the refund flow embedded within the payouts transaction table, covering the full lifecycle: inline initiation, confirmation dialog, processing state, and success/error states. I collaborated with finance and engineering to align the design with backend refund logic and constraints.

What I Did

  • Mapped the end-to-end refund journey and identified key decision points and edge cases
  • Designed the refund initiation UI within the transactions table (inline action)
  • Designed the confirmation dialog, processing state, and success/error states
  • Created wireframes covering the full flow from trigger to completion
  • Collaborated with finance and engineering to ensure design matched backend refund logic and constraints

Impact

  • Eliminated manual Dev Relations team intervention for every refund - at the platform's scale, self-serve refund was operationally necessary
  • Refund volume grew significantly year over year as the platform scaled, reinforcing the importance of in-product financial control
  • A significant volume of financial activity previously invisible to developers is now self-serve accessible

Entry point - ‘Request refund’ action available in the row menu of the transactions table

Entry point - Request refund action in the transactions table row menu
Entry point - Request refund action in the transactions table row menu
Review step - confirm refund details (instance ID, amount, plan status) before submitting
Review step - confirm refund details (instance ID, amount, plan status) before submitting
Post-submission - transaction row updates to Refund requested status with a link to the refund ticket
Post-submission - transaction row updates to Refund requested status with a link to the refund ticket
Completed - refund appears as a negative line item in transaction history once processed
Completed - refund appears as a negative line item in transaction history once processed

Bottom line

A refund flow sounds simple, but the hard part is the edge cases: what state is the subscription in, what does the developer actually need to confirm, and how do you make a consequential financial action feel safe without adding so much friction that it becomes a deterrent. Designing for the error and in-progress states was at least as important as the happy path.

More work