Skip to main content
Use case · Refund processor

The refund flow is the customer flow. We make it boring.

A refund app that lives between your storefront, your payments, and your finance system. Policy applied automatically, approvals routed by amount, customer told the truth in real time. We integrate Stripe, GoCardless, Shopify, WooCommerce, Xero.

average resolution
CS hours on refunds
explained 30% of refunds
Live signal
2–6 wks Build, fixed price9.1 d → 36 h average resolution−50% CS hours on refunds90 days Stabilisation included
What's in the build

Six pieces, one workflow.

Customer raises a refund; the right rule applies, the right approver signs, the money moves the same day.

01 · Customer portal

Self-serve refund inside the order page.

Customer raises the refund from the order page. Reason captured, photos uploaded, eligibility checked against policy in real time. The first reply they get isn't 'we'll get back to you'.

  • Reason + photo capture
  • Real-time eligibility
  • Status tracker
  • Outcome notification
02 · Policy engine

Your refund policy, in code.

Window, condition, fraud flags, repeat-customer rules — all encoded. Refund auto-approves if it fits the policy. Edge cases route to a human with the policy clause shown.

  • Encoded policy rules
  • Window + condition checks
  • Repeat-customer flags
  • Auto-approve under threshold
03 · Approver queue

One queue, one decision per row.

Approver sees the refund, the customer history, the order, the photos, the policy clause. Approve, reject, or escalate, with reason captured. SLA on every row.

  • Customer history in row
  • Policy clause shown
  • One-click decisions
  • SLA timer per row
04 · Money movement

Stripe / GoCardless on approve.

On approve, the refund fires through the original payment method. No re-keying. The customer gets the email. The finance system gets the entry. Same day.

  • Original-method refund
  • Stripe / GoCardless wired
  • Customer notification
  • Xero entry created
05 · Stock & fulfilment

If the goods come back, the system knows.

Refund linked to a return RMA where applicable. Stock status updates on receive — restock, scrap, refurb. The warehouse and finance see the same status.

  • Linked RMA
  • Stock status on receive
  • Restock / scrap / refurb
  • Single status dashboard
06 · Reporting

Refund rate, by reason, by SKU, by month.

Live: refund rate by SKU, top reasons, average resolution time, repeat-refunder flags. The reasons that recur become a product or marketing conversation.

  • Refund rate by SKU
  • Top-reason analytics
  • Resolution time SLA
  • Repeat-refunder flags
Sample engagement

The marketplace that cut refund SLA from 9 days to 36 hours.

120 refunds a week. Three CS agents. A shared inbox.

A homewares marketplace handled refunds via a shared support inbox and manual Stripe entries. Average resolution: 9.1 days. We shipped a refund app: customer-self-serve, policy engine, approver queue, Stripe wired. Three months in: average resolution 36 hours, CS hours on refunds halved, refund rate visibility surfaced two SKUs accounting for 30% of refunds.

How we measure: Resolution time measured from refund-raised timestamp to refund-paid timestamp (n = 1,540 across 12 weeks pre/post), CS hours tracked via time logs, SKU analysis from refund-reason field.

9.1 d → 36 haverage resolution
−50%CS hours on refunds
2 SKUsexplained 30% of refunds
Industries this is built for

Where this build earns its rent.

Most-relevant verticals — but the same shape works for adjacent ones.

Refunds, without the back-and-forth.

We encode your policy, wire your payments, ship the customer portal.