Skip to content
Muhammad Moiz

Paddle vs Stripe vs Lemon Squeezy for SaaS (I Shipped Paddle)

Paddle vs Stripe vs Lemon Squeezy for SaaS: 2026 fees, merchant of record explained, and which to pick, from a developer who runs Paddle in production.

Muhammad Moiz
Published
min read
8 min read
Person holding a credit card while paying online on a laptop
On this page

For most early-stage SaaS products selling worldwide, the Paddle vs Stripe question comes down to one thing: who is legally responsible for sales tax and VAT on every sale. Paddle (and Lemon Squeezy) act as your merchant of record and handle that for a higher fee, while plain Stripe costs less per transaction but leaves tax registration, filing and compliance with you. I run Paddle in production on Timegram, my time-tracking SaaS, so this comparison mixes current pricing (checked in November 2026) with what the choice feels like after launch.

What is a merchant of record, in plain English?

A merchant of record (MoR) is the company that legally sells your product to the customer. When Paddle is your MoR, the buyer is technically purchasing from Paddle, and Paddle then pays you. That has a few practical effects:

  • The MoR calculates, collects and remits sales tax, VAT and GST in the countries where your customers live.
  • It carries the liability for the payment, including refunds and chargebacks.
  • Its name, not yours, appears on the customer's card statement.
  • You still own the product, the customer relationship, support and your terms of use.

With plain Stripe, you are the merchant of record. Stripe processes the card, but if a customer in Germany or Australia buys your subscription, working out whether you owe VAT there, registering, and filing returns is your job. Stripe Tax can calculate and collect the tax, but it only does so in places where you have registered.

For a solo founder or a small team, that difference matters more than any percentage point. Tax compliance across dozens of countries is real admin work, and it usually lands on the founder's desk at the worst possible time.

Paddle vs Stripe vs Lemon Squeezy: fees compared

Here is what each official pricing page listed when I checked in November 2026 (US pricing for Stripe):

PaddleStripe (you are the merchant)Stripe Managed PaymentsLemon Squeezy
Base fee5% + 50¢ per checkout transaction2.9% + 30¢ per domestic card3.5% on top of standard Stripe payment fees5% + 50¢
Merchant of recordYesNoYes (Stripe)Yes
Sales tax / VAT handledIncludedStripe Tax: 0.5% (no-code) or 50¢ per transaction (API), only where you are registeredIncluded, 80+ countriesIncluded
Subscription billingIncludedStripe Billing: 0.7% of billing volume (pay as you go)Requires Stripe BillingIncluded
International cardsNot listed as extra+1.5%Standard Stripe fees apply"Small additional fees" outside the US, amount not stated
Currency conversionNot listed as extra+1%Standard Stripe fees applyNot quantified
DisputesHandled by Paddle$15 per disputeHandled by StripeHandled by Lemon Squeezy

A few things the table doesn't show. Paddle says products priced under $10 need custom pricing. Stripe's dispute fee has more parts than one number: a $15 fee when a dispute arrives, another $15 if you counter it manually (refunded if you win). And the Lemon Squeezy page carries a link to a 2026 update about Stripe Managed Payments, which I cover below.

A worked example: one $50 monthly subscription

Take a single $50 payment from a US customer on a domestic card:

  • Paddle: 5% + 50¢ = $3.00, with tax handling, billing and disputes included.
  • Stripe, self-managed: 2.9% + 30¢ = $1.75, plus 0.7% Stripe Billing = $0.35, plus 50¢ Stripe Tax via the API if you are registered in that state = about $2.60.
  • Same Stripe sale with an international card that needs conversion: add 1.5% + 1% = $1.25, bringing it to about $3.85.

So plain Stripe is the lowest-cost option for domestic sales, and the gap narrows or flips once you add international cards, currency conversion, and the cost of an accountant filing tax returns in other countries. That last cost never appears on a pricing page, but it is very real.

Analytics graphs on a laptop screen showing revenue and performance metrics
Photo: Luke Chesser on Unsplash

Is Lemon Squeezy still a good choice in 2026?

Lemon Squeezy was acquired by Stripe in 2024. In a January 28, 2026 update on its blog, the team said Lemon Squeezy is being folded into Stripe Managed Payments, which they present as its next version, and that the aim is to give existing users an easy way to migrate. The same post admits support had been slower and product updates fewer over the previous year.

Lemon Squeezy still works, and its pricing page still lists 5% + 50¢. But if you are starting a new SaaS today, I would not build on a platform whose own team describes it as being merged into something else. If you like the Lemon Squeezy model, look at Stripe Managed Payments directly.

What Stripe Managed Payments actually is

Managed Payments is Stripe acting as your merchant of record. According to Stripe's docs, it handles sales tax, VAT and GST in more than 80 countries, plus fraud prevention, disputes and transaction-level customer support. Before you choose it, check the limits:

  • It only works with Stripe Checkout and Payment Links, not embedded Elements forms.
  • Subscriptions must be created through Checkout or Payment Links and use Stripe Billing.
  • It doesn't support Stripe Connect, so marketplaces and platforms are out.
  • It is for fully automated digital products: software, SaaS, courses, digital media. Consulting, development, design services and physical goods are excluded.
  • Your business must be based in a supported country. The list includes the US, Canada, the UK, most of the EU, Switzerland, Norway, Australia, Hong Kong, Japan and Singapore.
  • Stripe runs an eligibility review, and you need to keep a low dispute rate to stay on it.

The fee is 3.5% per transaction on top of the normal Stripe payment fees. On the $50 example above, that is $1.75 + $1.75 = $3.50 before any Billing charges, which puts it in the same range as Paddle.

Paddle vs Stripe: which should you pick?

There's no single winner. Here is the decision framework I'd use with a client:

Choose Paddle (or another MoR) if:

  • You sell a SaaS or software product to customers in many countries from day one.
  • You are a small team and don't want to register for VAT or sales tax in multiple places.
  • You are fine with a Paddle-branded checkout and Paddle's name on the card statement.
  • Your prices are above $10, so the 50¢ fixed fee doesn't eat your margin.

Choose plain Stripe if:

  • Most of your customers are in one country where you are already registered for tax.
  • You need full control of the checkout UI (Stripe Elements) or a marketplace model (Stripe Connect).
  • You sell services, physical goods or anything an MoR won't accept.
  • You have an accountant or a finance person who can handle tax filings.

Consider Stripe Managed Payments if:

  • You want MoR coverage but prefer Stripe's API, dashboard and ecosystem.
  • Your business is in a supported country and your product is purely digital.
  • A hosted Checkout page is acceptable for your product.

What I learned shipping Paddle in production

Timegram uses Paddle for payments in production. The appeal of the MoR model for a SaaS like that is simple: Paddle is the seller of record, so the tax side of international sales sits with Paddle rather than with the product team.

The main engineering lesson applies to any provider: keep billing logic behind your own interface. Your app should ask "is this account on an active paid plan?" and never care which provider answered. That way, switching from Lemon Squeezy to Managed Payments, or from Stripe to Paddle, touches one module instead of the whole codebase.

Here is a simplified sketch of that pattern in TypeScript:

// billing/types.ts: your app only depends on this shape
export type PlanStatus = "trialing" | "active" | "past_due" | "canceled";

export interface Subscription {
  accountId: string;
  plan: "starter" | "pro" | "team";
  status: PlanStatus;
  renewsAt: Date | null;
}

export interface BillingProvider {
  createCheckoutUrl(accountId: string, plan: Subscription["plan"]): Promise<string>;
  // Turn a verified provider webhook into your own Subscription record
  parseWebhook(rawBody: string, signature: string): Promise<Subscription | null>;
}

// Feature checks read your database, never the provider's API
export function hasPaidAccess(sub: Subscription | undefined): boolean {
  return sub?.status === "active" || sub?.status === "trialing";
}

Each provider (Paddle, Stripe, Lemon Squeezy) gets its own small adapter that implements BillingProvider. Webhooks update a subscriptions table in your database, and the rest of the app reads from there. It also means a provider outage doesn't lock paying users out of your product.

Checklist before you integrate any payment provider

  1. Write down where your customers are. One country or worldwide changes the answer.
  2. Check that your product type is accepted. MoRs reject services and some content categories.
  3. Calculate fees on your real price point, including international cards and conversion.
  4. Decide whether a hosted checkout is acceptable or you need a fully custom one.
  5. Plan webhook handling: signature verification, retries and idempotency.
  6. Store subscription state in your own database, as in the pattern above.
  7. Test upgrades, downgrades, failed payments and cancellations in sandbox mode before launch.
  8. Read the provider's payout schedule so cash flow doesn't surprise you.

What this means for your SaaS

If you are a founder choosing between Paddle vs Stripe for a new product, the honest answer is that an MoR (Paddle or Stripe Managed Payments) is usually the right default for a small team selling software internationally. Plain Stripe becomes the better value once you have the volume, the finance help and the need for a fully custom checkout or a marketplace.

The part people underestimate is the integration itself: webhooks, plan changes, trials, failed payments and keeping your database in sync. If you are planning a SaaS and want billing done right from the first version, that is part of what I cover in product development. You can also see my Supabase vs Firebase comparison for the backend side of the same decision, or check pricing for how I scope projects.

Sources

About the author

Muhammad Moiz · Senior Full-Stack Engineer

I'm a senior full-stack engineer with 5+ years building production web apps in React, Next.js and Node.js. I build products end to end for founders and small businesses, and take over apps started with AI tools when they need to grow up.

More about me