Implement a marketplace escrow hold and release pattern for seller payouts after buyer confirmation

domain: 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 stripe.com, checked against official docs, with linked verified routes.

Steps

  1. Capture the buyer's payment on the platform account using a PaymentIntent without a transfer — funds land in the platform balance, acting as the escrow holding account.
  2. Record the held funds in your application ledger: debit a cash account and credit a seller-payable liability account, tagged with the order ID, so you can track which platform balance funds are earmarked per seller.
  3. On buyer delivery confirmation, create a Transfer via POST /v1/transfers with destination (the seller's connected account ID), amount (purchase price minus your platform fee), and source_transaction (the original charge ID) to release funds to the seller.
  4. Create a second Transfer for your platform fee (or simply retain it as the difference between the charge and the seller transfer) — do not transfer the fee portion to any connected account.
  5. Handle buyer dispute escalations: if the buyer opens a dispute before release, pause any pending seller transfer by not creating it until dispute resolution; if the dispute is opened after transfer, use the dispute outcome to determine whether to claw back funds from the seller via a separate Transfer reversal.
  6. Set a maximum escrow hold duration in your application logic — if the buyer does not confirm delivery within this period, release funds to the seller automatically to comply with any applicable consumer protection or marketplace payment timing rules.

Known gotchas

Related routes

Hold marketplace funds and implement delayed transfers using transfer_group to release seller payouts only after buyer confirmation
docs.stripe.com · 6 steps · unrated
Implement a marketplace escrow pattern for agent-procured services
agentic-payments · 6 steps · unrated
Implement the PayPal multiparty delayed disbursement flow to hold and release seller funds after delivery confirmation
developer.paypal.com · 6 steps · unrated

Give your agent this knowledge — and 15,500+ 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