Every RMA tracked. Every decision logged.
A single system of record for every return, warranty claim, counter swap, and repair — with the audit trail your finance, compliance, and ops teams all need.

Twelve workflow types, one data model
ReturnMate models the full post-sale lifecycle as a set of configurable workflows, not a single "return" object. Standard returns, damaged-in-transit, wrong-item, warranty claims, counter swap, third-party repair, offline repair, remote resolve, replace-in-transit, multi-store transfer, customer pickup, and dispute management all share the same underlying RMA record — different states, different enforcement rules, same reporting surface.
- DRAFT → SUBMITTED → APPROVED → LABEL_ISSUED → IN_TRANSIT → RECEIVED → INSPECTED → RESOLVED
- Custom status codes per shop, with colour-coded labels in the admin list
- Per-item resolution — line items can be resolved independently while the parent RMA stays open
- Transitions emit timeline entries automatically; manual notes can be added at any step
Decision guardrails your team actually follows
Auto-approval rules fire when the return matches defined conditions — reason, order age, order value, customer risk score, product tag. Everything else routes to a queue where a human approver sees the full history inline.
- Rules evaluated at submission and again at inspection
- Restocking fees calculated per condition (good, fair, damaged, unusable) with override support
- Rejection reasons captured as structured codes for reporting
- Disputes can be flagged on any RMA — SLA pauses, closure blocks until a manager resolves
SLA, assignment, and queue views
Business-hour SLA calculation respects Australian public holidays. Staff see their assigned queue the moment they log in, and managers see at-risk and breached work across every shop.
- Per-status SLA targets (e.g. "approve within 1 business day", "inspect within 2")
- Breach and near-breach notifications via email and in-app
- Saved views per user, shared with teammates, scoped to location or assignee
- Bulk approve, bulk send label, bulk mark-received from any list
Full audit log — finance-ready
Every status change, every admin note, every refund issued, every tag added to the Shopify order — all logged against the RMA with the staff member, timestamp, and before/after values. Export at any time for finance, compliance, or supplier warranty conversations.
- AuditLog entry for every mutation (RMA_CREATED, RMA_APPROVED, REFUND_PROCESSED, etc.)
- Timeline entries with user attribution for the merchant-visible audit trail
- Webhook events pushed to external systems for real-time downstream sync
- CSV export of any filtered list
Questions about returns platform.
Can I customise the RMA status flow?
Yes. Default statuses cover most flows, but you can add custom status codes per shop (e.g. "AWAITING_SUPPLIER_CREDIT") with colour labels and SLA targets. Existing RMAs keep working through transitions.
Does per-item resolution mean one RMA can have mixed outcomes?
Exactly. You can refund item A, replace item B, and write off item C on the same RMA, each with its own disposition, with the parent RMA staying open until every item is resolved.
How are duplicate returns prevented?
Serial number uniqueness across active RMAs is enforced at the product level — a serial already in an open return cannot be submitted again. Customers without a serial can still submit, but flagged for staff review.
Related capabilities.
Customers self-serve. Your team handles exceptions.
A branded portal that captures structured evidence, verifies identity, and validates addresses — before your team ever touches the RMA.
Read more Analytics & reportingSee which products and suppliers are costing you money.
Return rates by SKU with failure thresholds. Carrier cost breakdowns. Fault severity trends. The data you need for supplier conversations and margin decisions.
Read moreGet operational control — before it costs you more.
14-day free trial. No credit card required. Billed through Shopify.