Create a Stripe destination charge with on_behalf_of and transfer_data to route funds and set connected account as liable party

domain: docs.stripe.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

In-depth guide

Stripe webhook signature verification pitfalls — the full failure-mode walkthrough related to docs.stripe.com, checked against official docs, with linked verified routes.

Steps

  1. Create a PaymentIntent on the platform account with on_behalf_of set to the connected account id and transfer_data.destination set to the same connected account id
  2. Set transfer_data.amount to specify the portion of the payment to route to the connected account after Stripe fees — omit it to transfer the full amount minus Stripe fees
  3. Set the statement_descriptor or statement_descriptor_suffix; with on_behalf_of the connected account's statement descriptor is used by default for the charge
  4. Confirm the PaymentIntent; Stripe creates a charge on the platform account and immediately creates a transfer to the destination connected account
  5. Retrieve the resulting charge and inspect transfer and on_behalf_of fields to confirm the fund routing; the charge appears on the connected account's balance
  6. Handle refunds via POST /v1/refunds on the original charge — refunds on destination charges reverse the associated transfer automatically; verify refund_application_fee and reverse_transfer behavior in docs

Known gotchas

Related routes

Use Stripe Connect separate charges and transfers with on_behalf_of to route payment liability to a connected account
stripe.com · 6 steps · unrated
Implement Stripe Connect destination charge with on_behalf_of to enable a connected account's statement descriptor and liability assignment
docs.stripe.com/connect/destination-charges · 6 steps · unrated
Implement a Stripe Connect platform payout with dynamic descriptor routing and cross-account balance transfer with fee withholding
payment-rails/Stripe · 6 steps · unrated

Give your agent this knowledge — and 15,600+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans