October 26, 2026 · Muhammad Umar · More by Muhammad Umar
Stripe Blocks Direct Charges on Legacy Connect Accounts
Stripe now blocks new Connect platforms from direct charges on legacy Express or Custom accounts — a decision that's costly to reverse after launch.
What's blocked, and since when
As of the 2026-08-26 Stripe API version, now in public preview, Stripe has started actively erroring when a new Connect platform tries to set up direct charges against a legacy Express or legacy Custom connected account. This isn't a documentation warning — it's an enforced error at integration time, aimed specifically at new platforms configuring this pattern for the first time.
Why Stripe is doing this
Stripe's stated reasoning comes down to who's on the hook for what. Direct charges require the connected account to be the merchant of record — it handles its own refunds and disputes. Destination charges and separate charges-and-transfers put that responsibility, along with negative-balance risk, on the platform instead. For legacy Express and Custom accounts specifically, Stripe now recommends destination charges, and the new error exists to steer new integrations there instead of into the direct-charge pattern. A Connect Dashboard setting lets a platform request an exemption if it has a legitimate use case for direct charges on these account types.
Importantly, this doesn't touch anyone with the integration already live — Stripe is explicit that the change doesn't affect existing platforms. It's scoped entirely to new platforms setting up new integrations.
Why this belongs in the scoping conversation, not the build
The charge-type decision — who is the merchant of record, who absorbs negative balances, who fields disputes — determines core parts of a Connect integration's architecture: webhook ownership, where customer and payment data lives, how revenue shows up in reporting. Stripe doesn't support converting an existing connected account's configuration in place. Reversing the decision after launch means creating new connected accounts with the desired configuration and re-onboarding every user onto them — not a migration flag, but a parallel onboarding effort.
For anyone scoping a new marketplace, platform, or creator-payout product on Connect, the practical implication is to settle the charge-type question before any integration code gets written, not after. If the plan involves legacy Express or Custom accounts, confirm upfront which pattern Stripe will actually let the integration use, and if direct charges are genuinely required, request the Dashboard exemption early rather than discovering the block mid-build. Treating it as a late implementation detail risks finding out about the restriction only when an API call to set up direct charges on a legacy account fails, with onboarding already underway.