Direct answer
Who is liable for a refund on Stripe Connect?
On destination charges and separate charges & transfers, the platform is the merchant of record: refunds debit the platform balance mechanically regardless of commercial arrangements with sellers. On direct charges, the connected account is merchant of record and Stripe debits them directly — the platform’s exposure shrinks to its application fee. Note carefully: `on_behalf_of` changes neither; teams set it expecting liability shifts and discover otherwise during their first serious dispute month.
By charge type
Destination charges (transfer_data[destination]): platform holds funds initially, transfers net of fee; liability fully platform-side. Separate charges & transfers: same liability, manual movement control. Direct charges (on_behalf_of, created on connected account): seller liability; platform watches rather than absorbs. Check actual charges via API rather than assuming from documentation intent.
Mechanical vs commercial liability
Mechanically, debits follow merchant-of-record — no terms clause redirects network flows. Commercially, terms can obligate sellers to reimburse platforms afterward, which is precisely what clawback and netting operationalise. Confusing the two layers causes most liability surprises: contracts govern relationships; ledgers obey charge types.
Practical consequences
Platform-liability models need recovery operations (this site’s whole subject). Seller-liability models need monitoring anyway — application fees still leak, disputes still touch platform economics indirectly, and migration to direct charges trades control for liability in ways FG-04 details honestly.
Common questions
How do we check which type we run?
Inspect charges for transfer_data[destination] (destination), platform-created transfers after (separate), or on_behalf_of with connected-account creation (direct).
Can we migrate charge types later?
Possible, non-trivial: merchant-of-record changes cascade through statements, support, tax and dispute handling. Most platforms fix reconciliation instead.