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 both directions.
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.