I gave someone bad advice about this in a comment three weeks ago. They were about to ship it. Here is the correction, and the full picture of what the parameter actually does.
The claim I made was that adding on_behalf_of to a destination charge would let each connected account own its own disputes. That is wrong. It is a comfortable kind of wrong, too, because almost everything else about on_behalf_of does point in that direction.
What on_behalf_of genuinely changes
Set on_behalf_of to a connected account on a destination charge and Stripe treats that account as the settlement merchant. Per Stripe's Connect charges documentation, it:
- Settles in the connected account's country. Stripe "settles charges in the country of the specified account to minimise declines and avoid currency conversions."
- Prices with that country's fee structure. It "uses the fee structure for the connected account's country."
- Shows their statement descriptor, not yours.
- Shows their address and phone on the customer's statement when the two accounts are in different countries.
-
Pays out on their schedule. Stripe "pays out a connected account, depending on the days specified in its
delays_dayssetting."
That is a real change in who the customer thinks they paid, and a real change in the economics of the charge. If your connected accounts sit in other countries, both the settlement currency and your per-transaction cost move.
What it does not change
Dispute liability.
For destination charges, and for separate charges and transfers, with or without on_behalf_of, Stripe's disputes documentation is explicit: "Stripe debits dispute amounts and fees from your platform account." You recover by reversing the transfer to the connected account.
Only full direct charges, created with the Stripe-Account header, move dispute liability onto the connected account.
So the presentation moves and the money does not. The customer sees the connected account's name on their statement, the connected account's country determines settlement, and then a chargeback lands on your platform balance anyway. Those two facts sit next to each other in the docs and it is easy to read the first and assume the second.
The capability cost nobody mentions
on_behalf_of is not free on the onboarding side. Stripe's account capabilities documentation states that "to enable connected accounts to accept a payment method for direct charges or charges with on_behalf_of, you must request that payment method's capability for those accounts."
So a plain destination charge needs transfers. A destination charge with on_behalf_of needs the payment method capability too, which for cards means card_payments, and card_payments requires transfers as a prerequisite. With transfers alone, your platform processes the charge.
In practice that means more verification for every connected account you onboard. If you are weighing on_behalf_of for presentation reasons, that is the bill.
The cross-border trap worth knowing before you ship
This one costs real money and it is easy to miss.
When a dispute arrives on a destination charge, the instinct is to reverse the transfer immediately and get your money back from the connected account. On cross-border transfers, do not.
Stripe's guidance: "Retransferring a previous reversal is subject to cross-border transfer restrictions, meaning you might have no means to repay your connected account. Instead, wait to recover disputed cross-border payment transfers for destination charges with on_behalf_of until after a dispute is lost."
Reverse early, win the dispute, and you can end up unable to send the money back.
The short version
| destination charge | with on_behalf_of
|
direct charge | |
|---|---|---|---|
| statement descriptor | platform | connected account | connected account |
| settlement country and fees | platform | connected account | connected account |
| dispute liability | platform | platform | connected account |
| capability needed | transfers |
card_payments |
card_payments |
If what you want is for partners to look like the merchant, on_behalf_of does that. If what you want is for partners to carry the chargeback risk, it does not, and you need direct charges.
I conflated those two for three weeks. Worth checking which one you actually need before the first dispute arrives and tells you.
Top comments (0)