Stripe Connect

Route charges to connected accounts and retrieve Checkout with the same stripeAccount.

PayShare echoes platformContextId on session create, create-payment, and completion webhooks. Your server maps it to a Stripe connected account (often acct_… or a booking lookup key).

Mandatory symmetry

// Create (create-payment handler)
await stripe.checkout.sessions.create(params, {
  stripeAccount: "acct_CONNECTED",
});

// Retrieve (stripe-success bridge) — same account
await stripe.checkout.sessions.retrieve("cs_...", {
  stripeAccount: "acct_CONNECTED",
});

If create uses acct_A but retrieve uses the platform account, you get “No such checkout.session” or missing metadata — PayShare stays at 0/N paid even after Stripe succeeds.

Metadata to persist on Checkout

  • payshareSessionId, payshareParticipantId
  • payshareParticipantReturnUrl, payshareHostResumeUrl, payshareReturnId
  • platformContextId

success_url query params

Use your merchant HTTPS bridge with session_id={CHECKOUT_SESSION_ID}. Optionally add platformContextId=acct_… and booking_id for lookup before metadata is read.