Skip to main content
Stripe ConnectStripe SubscriptionsWebhooksNext.js Server ActionsSupabase

Stripe Payment Integration for Healthcare Marketplaces

How OpenMyPro integrates Stripe Connect for marketplace payments and Stripe Subscriptions for SeekerPro. Webhook architecture, payout flows, and revenue patterns generating six-figure ARR.

Pablo Diaz·Founder & CEO, Blossend Inc·Ex-Amazon AWS Engineer

See this stack in production. 150K+ users. six-figure ARR.

Free forever. Upgrade only when you're ready.

150K+ users · Ex-Amazon Engineer · Healthcare Innovation

No card charged today · 150K+ users · $0 to start

Payments are where marketplaces live or die. A clunky checkout flow kills conversions. A slow payout schedule drives providers away. At OpenMyPro, Stripe Connect handles our two-sided marketplace payments while Stripe Subscriptions powers the SeekerPro $15.99/month provider plan. Here is the architecture that generates six-figure ARR.

Two Revenue Streams

OpenMyPro has two distinct payment flows. First, marketplace transactions where patients pay providers for appointments. Stripe Connect handles these as connected account payments — the patient pays, OpenMyPro takes a platform fee, and the provider receives the remainder directly in their Stripe account. Second, SeekerPro subscriptions at $15.99/month for premium provider features. Stripe Subscriptions handles billing, invoicing, and dunning for these recurring payments.

This dual model maximizes revenue capture. Transaction fees generate revenue on every booking. Subscriptions generate predictable monthly recurring revenue. Together, they create the six-figure ARR that funds Blossend's operations.

Stripe Connect Architecture

We use Stripe Connect with Express accounts, which gives providers a streamlined onboarding experience. When a provider signs up for OpenMyPro, they complete Stripe's identity verification flow once. After that, every patient payment is automatically split — our platform fee goes to our Stripe account, and the provider's portion goes directly to theirs.

The payment flow is: patient enters card details using Stripe Elements embedded in our booking form, Stripe creates a PaymentIntent with a transfer to the connected account, and upon success we confirm the booking in our database. If the payment fails, the booking is not created — maintaining data consistency between Stripe and our system.

Webhook-Driven Architecture

Stripe webhooks are the backbone of our payment system. Instead of polling Stripe for payment status, we receive real-time notifications for every payment event. Our webhook handler processes events including payment_intent.succeeded, payment_intent.payment_failed, invoice.paid, customer.subscription.updated, and account.updated.

Each webhook event triggers specific actions in our system. A successful payment confirms the booking, sends confirmation emails to both patient and provider, and updates analytics. A failed payment notifies the patient, releases the appointment slot for others, and logs the failure for our monitoring dashboard.

We verify webhook signatures using the Stripe webhook secret to ensure events are genuinely from Stripe. Events are processed idempotently using the event ID as a deduplication key — if Stripe retries a webhook, we do not process the same event twice.

SeekerPro Subscription Management

The SeekerPro $15.99/month plan uses Stripe Subscriptions with automatic billing. When a provider upgrades, we create a Stripe Customer and Subscription. Stripe handles the billing cycle, generates invoices, processes payments, and manages failed payment retries (dunning).

Subscription status changes flow through webhooks. When a subscription is created, we enable premium features in the provider's database record. When a payment fails, we send a grace period notification. When a subscription is cancelled, we downgrade the account after the current period ends. All of this is event-driven — our application reacts to Stripe events rather than polling for status.

Payment Security

We never handle raw card numbers. Stripe Elements renders the card input inside an iframe hosted on Stripe's domain, meaning card data never touches our servers. This dramatically simplifies PCI compliance — we self-certify with SAQ-A (the simplest PCI questionnaire) instead of the full SAQ-D that handling card data would require.

For connected account payouts, Stripe handles KYC (Know Your Customer) verification during provider onboarding. Providers submit identity documents directly to Stripe, and we only receive a verification status — we never see or store their identity documents. This protects both providers and Blossend from identity data exposure.

Revenue Analytics

Our dashboard aggregates Stripe data with internal booking data to show real-time revenue metrics. Monthly recurring revenue from SeekerPro, transaction volume and average ticket size, platform fee revenue, provider payout totals, and churn metrics are all derived from Stripe webhook data stored in our analytics tables. This gives us a live view of business health without querying the Stripe API directly.

Frequently Asked Questions

How does Stripe Connect work for healthcare marketplaces?

Stripe Connect with Express accounts handles two-sided payments. Patients pay through Stripe Elements (card data never touches your servers), the payment is automatically split between the platform fee and provider payout, and providers receive funds directly in their connected Stripe account after identity verification.

How does OpenMyPro handle subscription billing?

The SeekerPro $15.99/month plan uses Stripe Subscriptions for automatic billing, invoicing, and dunning. Subscription status changes flow through webhooks — creation enables premium features, payment failures trigger grace periods, and cancellation downgrades the account after the current period ends.

How do Stripe webhooks work in a Next.js application?

Create an API route that receives POST requests from Stripe, verifies the webhook signature, and processes events idempotently using event IDs as deduplication keys. Key events include payment_intent.succeeded, invoice.paid, and customer.subscription.updated, each triggering specific business logic.

Ready to find the right AI tool? Our AI matching finds it in 33 seconds.

150K+ users. 190+ providers. Book healthcare in 33 seconds — not 26 days.

150K+ users · Ex-Amazon Engineer · Healthcare Innovation

No card charged today · AI-powered matching · 33-second booking

Get Founder Insights Weekly

Startup lessons, technical deep dives, and behind-the-scenes of building a 14-platform ecosystem. No spam.

Join 150K+ people who found their provider. Start free today.

150K+ users. 190+ providers. Book healthcare in 33 seconds — not 26 days.

150K+ users · Ex-Amazon Engineer · Healthcare Innovation

No card charged today · Cancel anytime · strong LTV/CAC

OpenMyPro connects you with healthcare providers for instant appointments. Try it free →

Build your professional portfolio

Free to get started. No card charged today.

Get Started

Tools We Recommend

Find healthcare providers

AI-powered matching. Book a provider in 33 seconds.

Try OpenMyPro

Discover trending brands

Product Hunt-style brand discovery with AI insights.

Explore Brands

AI-Powered Healthcare Tech

The parent company behind OpenMyPro and the Blossend ecosystem.

Learn More

Ready to work together? Get in touch or explore our platforms.

More tools by the same team

Find Healthcare Providers Instantly

AI-powered matching. Book a therapist, trainer, or nutritionist in 33 seconds.

Try OpenMyPro Free

Work With Me

Get updates on new projects, tools, and tech insights.

No spam. Unsubscribe anytime.

Visit Blossend.com →

Explore the full portfolio of independent AI tools and editorial properties at blossend.com.