Direct answer
Can Stripe automatically reverse transfers on refund?
Stripe reverses automatically only when the individual refund request includes `reverse_transfer: true`. Omit it — the default — and nothing moves back. There is no account-level setting that flips this behaviour globally: no dashboard toggle, no support-enabled flag, nothing. Automation therefore lives entirely in caller code, which is why coverage gaps between paths become leakage gaps between paths.
What IS automatic once requested
With the flag set, proportionality is handled for you: partial refunds produce proportional reversals with Stripe’s own rounding. Pair refund_application_fee alongside for the fee layer. The automation is per-call and parameter-gated — powerful, and completely absent by default.
Workaround patterns and their coverage gap
Wrapper functions enforcing flags help — until secondary paths bypass them: admin tools importing SDKs directly, support dashboards using native UIs, scripts written last quarter. Coverage is only as wide as every call site’s discipline, forever. Detection complements wrappers by auditing outcomes regardless of which path produced them.
What about Stripe Support enabling something?
No such configuration exists to request. Expecting escalation to reveal a hidden global switch wastes a support cycle — the parameter is the interface, deliberately.
Common questions
Do other Connect charge types behave differently?
Separate-charges transfers never auto-reverse in any direction — you created them manually; corrections are equally manual.
So wrappers are pointless?
Pointless no — primary-path hygiene matters. Insufficient yes — outcomes-level monitoring catches everything wrappers miss.