← Our stack

Stripe is our default payments rail.

The payments layer behind most of what we ship: checkout, subscriptions, billing, and revenue splits. When a business model fits mainstream underwriting, Stripe is where we start.

stripe.com ↗
How we use Stripe

Stripe handles payments on most of our SaaS and commerce builds. We integrate it server-side behind small, typed modules: Checkout or Payment Intents for one-time purchases, Billing for subscriptions, and Connect when a platform needs to split revenue between parties, the way our creator-platform builds pay out storefront owners automatically. Card data goes straight to Stripe so PCI scope stays inside the payment provider, webhooks drive order state in our applications, and Radar handles fraud scoring before a charge ever settles. On Medusa builds Stripe slots in as the payment provider while the commerce engine orchestrates the order.

The best payments stack is the one that never becomes the reason the business stops.

Why Stripe

Stripe earns the default slot the same way our other defaults do: the developer experience is the best in the category, the API contract is stable, and the vaulting, billing, and payout primitives cover most business models without custom infrastructure. It is also the rail every future hire already knows. The honest limit is underwriting: Stripe is conservative about restricted categories, and a merchant it will not approve, or later offboards, needs a different rail entirely. That is why payments at ComCreate is a portfolio decision, not a single-vendor loyalty. Stripe by default, specialist rails when the category demands them.

Stripe integration for SaaS and commerce

A Stripe integration is an application-architecture problem more than an API problem. The card form is the easy part; the work that decides whether billing is trustworthy is everything around it. We treat webhooks as the source of truth, so a subscription state or an order status changes only when Stripe says it did, never because the browser claimed success. Every event handler is idempotent, because Stripe redelivers, and every payment object carries our own IDs in metadata so support can trace a charge to an order in one lookup. Entitlements live in our database and sync from billing events, which means a failed renewal downgrades access automatically and a recovered payment restores it without a human in the loop. That discipline is identical whether the front of the flow is Stripe Checkout, a custom cart, or a Medusa storefront.

Where Stripe ends: restricted categories

Stripe is the right rail for the mainstream, and we recommend it without hesitation there. But its underwriting excludes whole categories: smoke-adjacent products, CBD and hemp, many supplements, and other businesses that are legal, legitimate, and still outside mainstream risk appetite. For those clients we build on rails that underwrite the category on purpose, with NMI as the gateway layer and Bankful on the acquiring side, wired into the same checkout with the same engineering discipline. The deciding question is never which processor has the best API. It is which processor will still be processing for this business in five years.

Where we use it

SaaS Subscription Billing

Stripe Billing wired into application state: plans, trials, upgrades, dunning, and webhook-driven entitlements.

Platform Revenue Splits

Stripe Connect powering automated splits, the way our creator storefront builds pay owners their share on every sale without manual payouts.

Commerce Checkout

Payment Intents behind custom carts on Medusa and Next.js builds, with Apple Pay and Google Pay served from the same integration.

Questions

Stripe FAQs

Get started

Let's talk about
your next build.