I have a member who accidentally bought two memberships and there is no clear way to just refund one of the amounts. Seems like a relatively simple task that should be more intuitive.
We don’t support automated refunds to iATS Payments via CiviCRM at this point; and in fact we recommend that organizations configure their iATS Payments subaccounts 80, 81, etc such that they don’t have refund capabilities. Imagine a disgruntled employee scenario or a hack where people could select all / refund all;
In addition to security concerns - there usually are processes/approvals involved in refunds as well as business logic: should the membership or event registration be canceled or an already issued tax receipt be revoked, etc.
So best to ask user with 01 access to iATSPayments to process the refund; then record it in CiviCRM; most orgs I work with record it as a separate contribution of a negative amount; you could also try change the status of the original contribution to Refunded - but then double check that everything is working properly re: financial transaction/reports you may or may not use.