Stripe Checkout Session for no-login app — passing custom ID through to success page

I’m building a no-login app where users submit a multi-step form, land on a teaser page, and need to pay before seeing their results.

My setup:

  • No user accounts or login at any point
  • Each form submission creates an Intake record in Bubble with a Unique ID
  • I have Stripe.js 2 and the native Bubble Stripe plugin installed
  • I have a Stripe product already set up with a price ID

What I need:

  1. User clicks “Get My Results” (or whatever) button on teaser page
  2. Stripe Checkout opens (hosted by Stripe)
  3. User pays
  4. After successful payment, Stripe redirects user to my results page
  5. The results page must know which Intake record to display — so the Intake Unique ID must survive the round trip through Stripe checkout

I have tried:

  • Stripe.js PaymentIntent Create + Start payment with Stripe Element (could not get Client Secret into the element)
  • Native Bubble Stripe plugin Charge the current user (fails because there is no logged-in user)
  • Stripe Payment Link with client_reference_id appended to URL (payment link does not pass client_reference_id back in the redirect URL)
  • API Connector POST to api.stripe.com/v1/checkout/sessions (got content-type errors)

What is the exact step-by-step workflow to make this work in Bubble? Thank you.

Send unique id to stripe as meta data and use it on the return url as a parameter