Stripe Payment Links
Collect payment in a web funnel with a Stripe Payment Link on an Integration Node. No host Stripe backend required.
Purpose
Collect payment in a web funnel with a Stripe Payment Link. Create the link in the Stripe Dashboard, paste it on a Rheo Integration Node, and the web SDK redirects. Rheo never stores Stripe API keys, and your host app does not need a Checkout Session endpoint for this path.
How to
- In Stripe, create a Payment Link for the plan or product you want to sell.
- In Rheo, add an Integration Node and choose Stripe.
- Paste the Payment Link URL (
https://buy.stripe.com/…or anotherhttps://*.stripe.comhost). - Wire outcomes: Purchased, Cancelled, Dismissed, Failed, plus required Fallback.
- In Stripe → Payment Link → After payment → Redirect, send users back to the page that mounts
<Flow />. - In Rheo, open App settings → Convert settings → Integrations. On the Web SDK card, copy the Stripe webhook URL into Stripe, save the webhook signing secret, and add the funnel origin under Allowed web origins.
Recommended return URL (either works):
https://yoursite.com/onboarding?rheo_stripe_status=successor Stripe’s session template on your funnel URL:
https://yoursite.com/onboarding?session_id={CHECKOUT_SESSION_ID}You can also call buildStripePaymentLinkReturnUrl from @getrheo/react to add rheo_stripe_status=success for you.
- Embed the flow (no Stripe adapter):
import { RheoProvider, Flow } from '@getrheo/react';
<RheoProvider
config={{
publishableKey: '…',
}}
>
<Flow channelId="ch_…" />
</RheoProvider>Multiple plans
Use a plan-selection screen with branching, and send each plan to its own Stripe Integration Node with that plan’s Payment Link. Same flow construct; different links per branch.
Resume after redirect
Before leaving your site, the SDK registers a checkout attempt and saves the in-progress session in sessionStorage. A matched return restores that session and advances the graph. It does not count as revenue.
- success (
rheo_stripe_status=successorsession_id=cs_test_…/cs_live_…, with a saved attempt) →purchase_completed - any other
session_idis ignored - Back with no success marker checks the attempt. Confirmed payment still takes Purchased. A still-pending attempt takes Cancelled.
iap_purchase is written only when Stripe sends checkout.session.completed to the app webhook and the attempt matches.
Mobile SDKs
Native SDKs soft-fail Stripe surfaces (Fallback). Use RevenueCat / Superwall for mobile IAP. Channel pin shows a non-blocking warning when a version mixes mobile-only and web-only steps.