Submitting and reviewing refunds
Refund requests preserve the customer's reason, policy eligibility, review status, and provider result without treating a request as an automatic refund.
What this feature does
Refund requests preserve the customer's reason, policy eligibility, review status, and provider result without treating a request as an automatic refund.
This guide describes the behavior implemented by Mallello, the people allowed to use it, and the operational checks that keep it dependable.
Detailed workflow
- The signed-in customer selects an eligible order and submits a reason.
- The server verifies order ownership and creates one controlled request.
- The responsible reviewer checks the listing cutoff, fulfillment stage, exception basis, and Stripe state.
- Approval invokes the correct connected-account refund flow.
- The request and order are updated idempotently and the customer is notified.
Rules and permissions
- Customers can access only their own requests.
- Vendors can access requests tied to their own orders; administrators have platform oversight.
- Repeated submissions must not generate multiple Stripe refunds.
- Review decisions should include a durable reason.
Failure handling and edge cases
- A 500 response after calling Stripe is indeterminate until the charge is inspected.
- A declined request remains in history and should explain the policy basis.
- Partial refunds need explicit amount validation and cannot exceed the remaining refundable amount.