I’m building a marketplace platform using Stripe Connect, where customers order services and partners (sellers) complete those jobs.
Everything is working perfectly today with Stripe Checkout, including collecting payments. However, I now need to switch to Payment Intents for one specific reason:
We do not know who the partner is at the time of payment. The partner is only assigned after the job is completed.
This matters because with Stripe Checkout, the payment always goes to my platform’s Stripe account. But I want the funds to go directly to the partner, not to me. To make this work, I need to use destination charges with Payment Intents and capture the payment only when I know who the correct partner is.
Here’s the flow I’m using:
- I create a Payment Intent with capture_method set to manual.
- The customer authorizes the payment.
- After the job is complete and I know which partner to pay, I capture the payment and set transfer_data[destination] to the connected account.
This way, the money goes directly to the partner, my platform never holds the full amount, and we avoid needing a payment services license.
If anyone has done something similar or has tips on using Payment Intents and Connect in this way, I’d love to hear your thoughts.
Thanks!