Orders and refunds

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.

For Customer, VendorReviewed against the current application

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

  1. The signed-in customer selects an eligible order and submits a reason.
  2. The server verifies order ownership and creates one controlled request.
  3. The responsible reviewer checks the listing cutoff, fulfillment stage, exception basis, and Stripe state.
  4. Approval invokes the correct connected-account refund flow.
  5. 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.