3.1 KiB
Connect / platforms
Table of contents
- Accounts v2 API
- Controller properties
- Charge types
- Integration guides
Accounts v2 API
For new Connect platforms, ALWAYS use the Accounts v2 API (POST /v2/core/accounts). This is Stripe’s actively invested path and ensures long-term support.
Traps to avoid: Don’t use the legacy type parameter (type: 'express', type: 'custom', type: 'standard') in POST /v1/accounts for new platforms unless the user has explicitly requested v1.
Controller properties
Configure connected accounts using controller properties instead of legacy account types:
| Property | Controls |
|---|---|
controller.losses.payments |
Who is liable for negative balances |
controller.fees.payer |
Who pays Stripe fees |
controller.stripe_dashboard.type |
Dashboard access (full, express, none) |
controller.requirement_collection |
Who collects onboarding requirements |
Use defaults.responsibilities, dashboard, and configuration as described in connected account configuration.
Always describe accounts in terms of their responsibility settings, dashboard access, and capabilities to describe what connected accounts can do.
Traps to avoid: Don’t use the terms “Standard”, “Express”, or “Custom” as account types. These are legacy categories that bundle together responsibility, dashboard, and requirement decisions into opaque labels. Controller properties give explicit control over each dimension.
Charge types
Choose one charge type per integration — don’t mix them. For most platforms, start with destination charges:
- Destination charges — Use when the platform accepts liability for negative balances. Funds route to the connected account via
transfer_data.destination. - Direct charges — Use when the platform wants Stripe to take risk on the connected account. The charge is created on the connected account directly.
Use on_behalf_of to control the merchant of record, but only after reading how charges work in Connect.
Traps to avoid: Don’t use the Charges API for Connect fund flows — use PaymentIntents or Checkout Sessions with transfer_data or on_behalf_of. Don’t mix charge types within a single integration.
Integration guides
- SaaS platforms and marketplaces guide — Choosing the right integration shape.
- Interactive platform guide — Step-by-step platform builder.
- Design an integration — Detailed risk and responsibility decisions.