What the buyer does
They open a return on an order that is theirs, in the chat they already bought in. The ownership check matters more than it sounds: a return request can only be raised against your own order, so nobody can open one against somebody else's purchase by guessing a number.
What you do
Approve or reject. An approval records the refund amount, which is the detail that turns this from a conversation into a record. Weeks later the question is not what either of you remembers but what the return says.
Why a reference beats a chat thread
Both sides see the same reference and the same state. That removes the two worst return disputes: the buyer who believes a refund was promised, and the seller who believes it was for a different amount. Neither has to be trusted, because the record exists.
The money, which is still yours to move
The approval records what was agreed; sending the money is yours, through the route the buyer originally paid by. We are not in the payment path on any route, so there is nothing for us to reverse. For a card payment, the refund happens in your own Stripe account.
Writing a returns policy worth having
Say the window in days, what state an item has to come back in, and who pays return postage. Three lines is enough, and the questions those lines answer are the ones that otherwise arrive one at a time, in chat, while you are busy.