Edge Kit launch!-$50 off
home

Polar vs Stripe: fees, tax, and Stripe Managed Payments

·18 min read

Polar vs Stripe as of October 2026: real fee math at $20 and $100, Stripe Managed Payments vs Polar as MoR, migration notes, and when to pick each.

Most Polar vs Stripe articles still frame the choice as "Polar is a Merchant of Record, Stripe is a payment processor." That was true until Stripe shipped Managed Payments, its own merchant of record product. Polar also replaced its flat rate with tiered plans in May 2026. So the real decision now has three options: plain Stripe, Stripe with Managed Payments, or Polar.

This guide compares all three with numbers verified on the official pricing pages as of October 2026, a worked fee example at $20 and $100 per month, code for creating a checkout in each, and what actually happens when you migrate.

Short answer

Pick plain Stripe if you want the lowest fees and full control, and you can handle sales tax, VAT, and GST yourself (or only sell in a few markets). Pick Polar if you want a merchant of record that handles global sales tax, with built-in usage billing, seats, and benefits like license keys or GitHub repo access, at 5% + 50¢ on the free plan. Pick Stripe Managed Payments if you are already on Stripe Checkout, your business is in one of its 37 supported countries, and you want Stripe to become the seller for new sales without changing providers. On a domestic US card it costs more than Polar's free plan at both $20 and $100 price points.

What is Polar, and what changed at Stripe?

Polar (polar.sh) is an open-source billing platform and merchant of record for software and digital products. When a customer buys from you through Polar, Polar is the legal seller: it calculates, collects, files, and remits sales tax, VAT, and GST, then pays out your earnings. Polar itself runs on Stripe as the underlying processor (Polar MoR docs). When people search for "Polar payments", this is the product they mean.

Stripe is a payment service provider. By default your business is the seller. You can add Stripe Billing for subscriptions and Stripe Tax to calculate and collect tax, but registration, filing, and liability stay with you (Tax Complete can automate registrations and filings for a monthly fee, but you are still the merchant).

Stripe Managed Payments is the Stripe merchant of record option for digital products. With it enabled on a Checkout Session or Payment Link, Stripe (via Link) becomes the merchant of record and handles indirect tax in more than 80 countries, fraud, disputes, and transaction-level support (Stripe docs). Your customers see "Sold through Link" and a LINK.COM* statement descriptor (how it works).

That third option is why the old "Polar vs Stripe = MoR vs processor" framing is no longer enough.

Polar vs Stripe at a glance

DimensionStripe (standard)Stripe Managed PaymentsPolar
Legal sellerYouStripe (Link)Polar
Sales tax, VAT, GSTYou (Stripe Tax helps)Handled in 80+ countriesHandled globally
What you can sellAlmost anythingFully automated digital products with an eligible tax codeSoftware and digital products
Checkout surfacesCheckout, Elements, Payment Links, moreCheckout and Payment Links onlyHosted checkout, checkout links, embedded checkout
SubscriptionsStripe BillingStripe Billing (billed separately)Built in
Usage-based billingBilling Meters APINot documented for Managed PaymentsMeters + event ingestion
SeatsQuantity on subscriptionsNot documentedSeat-based pricing
Automated benefitsBuild yourselfBuild yourselfLicense keys, GitHub repo access, Discord roles, file downloads, credits
Customer portalStripe Customer PortalLink account (plus your own portal)Polar Customer Portal
Marketplaces / ConnectYesNoNo
Where your business can beStripe-supported countries37 countries (US, CA, most of Europe, AU, HK, JP, SG)Any Stripe Connect Express payout country
Open sourceNoNoYes, source on GitHub

Sources: Managed Payments eligibility, Polar docs index, Polar supported countries.

Fees as of October 2026

Here is every fee that matters for a typical SaaS subscription, taken straight from the vendors.

ItemFeeSource
Stripe card processing (US domestic)2.9% + 30¢stripe.com/pricing
Stripe Billing (pay as you go)0.7% of Billing volumeBilling pricing
Stripe Tax Basic0.5% per transaction where you are registeredTax pricing
Stripe Tax CompleteFrom $90/month (1-year contract), includes filingsTax pricing
Stripe Managed Payments+3.5% per successful transaction, on top of processingManaged Payments FAQ
Stripe dispute$15 received, $15 countered (refunded if you win)stripe.com/pricing
Polar Starter (free)5% + 50¢Polar fees
Polar Pro / Growth / Scale$20 / $100 / $400 per month, then 3.8% + 40¢ / 3.6% + 35¢ / 3.4% + 30¢Polar fees
Polar international cards+1.5% (non-US cards)Polar fees
Polar dispute$15 per dispute, regardless of outcomePolar fees
Polar payouts (Stripe's fees)$2/month with active payouts, 0.25% + 25¢ per payout, 0.25% to 1% cross-borderPolar fees

Three details most comparison pages get wrong:

  1. Polar's 4% + 40¢ rate is legacy. It is the "Early Member" rate for organizations created before May 27, 2026, and it carries a +0.5% subscription fee. New organizations start on Starter at 5% + 50¢ with no separate subscription fee (Polar fees).
  2. Polar does charge extra for international cards. The +1.5% applies on top of every plan. Polar's own example also applies the fee to the tax-inclusive total.
  3. Managed Payments does not include Billing. Stripe says optional products like Billing are separate, so a Managed Payments subscription stacks processing + 3.5% + 0.7%.

Polar's paid plans pay for themselves above roughly $1,379/month in sales for Pro, $5,634 for Growth, and $19,048 for Scale, according to Polar's own breakeven table.

Worked example: $20 and $100 per month

Assumptions: one subscription payment on a domestic US card, sales tax ignored so the numbers stay comparable, Stripe on standard pricing. Stripe Tax Basic only applies where you are registered to collect, so it is shown as a separate row.

SetupFee on $20EffectiveFee on $100Effective
Stripe + Billing$1.025.1%$3.903.9%
Stripe + Billing + Tax Basic$1.125.6%$4.404.4%
Stripe + Billing + Managed Payments$1.728.6%$7.407.4%
Polar Starter$1.507.5%$5.505.5%
Polar Pro (plus $20/month plan fee)$1.165.8%$4.204.2%

How the rows add up at $20: Stripe processing is $0.58 + $0.30 = $0.88, Billing adds $0.14, Tax Basic adds $0.10, Managed Payments adds $0.70. Polar Starter is $1.00 + $0.50. Polar Pro is $0.76 + $0.40.

Scale that to 200 subscribers at $20/month ($4,000 MRR) and the monthly bill is roughly $204 on Stripe + Billing, $224 if you also pay Tax Basic on every sale, $344 on Managed Payments, $300 on Polar Starter, and $252 on Polar Pro including its plan fee.

Read the table honestly

Plain Stripe is cheapest on paper, but it is the only row where you remain liable for registering, filing, and remitting tax in every jurisdiction where you owe it. The gap between plain Stripe and an MoR is what you pay to make that someone else's problem. With non-US cards, Polar adds 1.5%, and Stripe has its own international and currency conversion surcharges, so check your country's Stripe pricing page before deciding on margins.

Stripe Managed Payments: the fine print

Managed Payments is a real merchant of record, but it is narrower than Polar in ways that matter for a SaaS:

  • Business location. Your company must be in one of 37 supported countries: the US, Canada, 31 European countries (including the UK, Switzerland, and Norway), Australia, Hong Kong, Japan, and Singapore. Stripe also runs an eligibility review on each account (eligibility).
  • Products. Only fully automated digital products qualify: SaaS, software, games, digital media, online courses, hosting. Each product needs an eligible tax code. Consulting, design, development services, and live 1-on-1 coaching do not qualify.
  • Integration. Checkout and Payment Links only. No Elements-based custom forms, no Connect, no third-party tax tools, and subscriptions must be created through Checkout or Payment Links (docs).
  • Existing subscriptions stay where they are. Managed Payments only applies to new subscriptions bought through a Managed Payments Checkout Session (update guide).
  • Customer experience changes. Receipts and invoices come from Link, customers manage orders in their Link account, and custom domains are not supported on Managed Payments checkouts.
  • Support escalations have a clock. If Stripe needs product input and you do not respond within 48 hours, it might refund without your approval. It can also issue refunds within 60 days in certain cases (how it works).
  • Tax coverage has gaps. Stripe does not take domestic tax liability for Japan-based sellers, or for B2B domestic sales of Singapore-based sellers (tax compliance).

The upside: it is the same Stripe account, API, and dashboard. You can enable it per Checkout Session, so a hybrid setup (direct processing at home, Managed Payments abroad) is a supported pattern.

Polar: the fine print

  • Payouts reach more founders than Stripe does. Polar pays out through Stripe Connect Express, which covers far more countries than Stripe Payments, including India and others where standalone Stripe is invite-only (supported countries). If you cannot open a regular Stripe account, Polar is often the practical choice.
  • Payouts are manual by default. You withdraw when you want, and Stripe's payout fees pass through without markup. Leave a balance untouched for several months and Polar will eventually trigger a payout for you.
  • Refund and dispute policy. Polar reserves the right to refund within 60 days to prevent chargebacks, and transaction fees are not returned on refunds.
  • Product features. Polar has meters for usage-based billing (count, sum, average, min, max, unique over ingested events, with a token unit for LLM pricing), seat-based pricing, checkout links, an embedded checkout, a customer portal, and automated benefits.
  • One product per price. Polar treats each pricing option (monthly, yearly) as a separate product, which changes how you map plans in code.

Which one should you pick?

Run through these rules in order. The first one that matches is usually your answer.

  1. You are building a marketplace or paying out to other users. Stripe with Connect. Neither Managed Payments nor Polar supports platforms.
  2. You sell services with human involvement, or physical goods. Plain Stripe. Neither MoR covers those.
  3. You cannot open a Stripe account in your country. Polar, as long as Stripe Connect Express supports payouts there.
  4. You are already live on Stripe Checkout and only need tax off your plate for new customers. Try Managed Payments. No re-platforming, but budget for the extra 3.5% and remember that existing subscribers do not move over.
  5. You are pre-revenue or early, sell globally, and want tax, benefits, and usage billing handled in one place. Polar. Starter costs nothing up front, and upgrading to Pro makes sense once you pass roughly $1,379/month.
  6. You are US-focused or only sell in a handful of markets, and want the lowest fees and maximum control. Plain Stripe with Billing, plus Stripe Tax where you are registered.
  7. You need complex B2B billing (quotes, multiphase schedules, invoices outside the billing period). Plain Stripe. Managed Payments explicitly blocks one-off invoices and invoice items on subscriptions.

If you are still weighing Lemon Squeezy or Creem too, our broader Stripe vs Lemon Squeezy vs Polar vs Creem comparison covers the wider field.

Creating a checkout in each

The integration shape is similar: create a session on the server, redirect the user, and fulfill from webhooks.

app/api/checkout/route.ts
import Stripe from "stripe";

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);

export async function POST() {
  const user = await getCurrentUser();

  const session = await stripe.checkout.sessions.create({
    mode: "subscription",
    line_items: [{ price: "price_123", quantity: 1 }],
    client_reference_id: user.id,
    success_url: "https://example.com/dashboard?checkout=success",
    // Requires Managed Payments activated in the Dashboard and an eligible product tax code.
    // Remove this line for a standard Stripe checkout where you stay the merchant.
    managed_payments: { enabled: true },
  });

  return Response.redirect(session.url!, 303);
}

Managed Payments needs API version 2025-03-31.basil or later, and you must drop parameters Stripe now controls, such as automatic_tax, payment_method_types, and tax_id_collection (Stripe setup guide). Fulfill on checkout.session.completed.

Migrating between Stripe and Polar

Moving billing providers is mostly about two hard things: saved cards and live subscriptions.

Stripe to Polar

Polar has a documented migration flow from Stripe, rolling out gradually (contact Polar support if you don't see it under Settings → Migrations):

Move new sales to Polar. New customers check out on Polar while existing Stripe subscriptions keep renewing on Stripe. Pass your own user ID as external_customer_id.

Connect Stripe and import your catalog. Polar uses a restricted Stripe API key, then creates products, prices, and customers. Nothing is billed differently yet.

Copy saved cards. Stripe copies card data directly to Polar's processor (usually a few hours, up to 72). It never passes through your app.

Switch subscriptions. Polar cancels each selected subscription on Stripe immediately (no proration, no final invoice) and activates it in Polar with the same paid period. This step is irreversible.

Gotchas worth planning for: subscriptions with multiple items or quantity above one, past-due or paused subscriptions, and anything renewing within 24 hours stay on Stripe. Stripe Connect platforms and Stripe accounts in India can't use the automated flow. Every switched customer triggers a customer.subscription.deleted event in Stripe, so make sure your webhook handler does not revoke access, and turn off Stripe's cancellation emails first. Historical Stripe payments stay in Stripe.

Polar to Stripe

Polar's docs only describe migrations into Polar. Going the other way, expect to run both systems in parallel, send new sales to Stripe, and let Polar subscriptions run out or ask customers to resubscribe. If you need saved cards moved, talk to Polar support before you plan around it.

Stripe to Stripe Managed Payments

The easiest switch on paper: same account, one parameter. But only new subscriptions bought through a Managed Payments Checkout Session are covered. Existing subscribers stay on your current setup with you as the merchant.

How TurboStarter handles Polar and Stripe

This is where we have a stake, so here is exactly what the kit does. TurboStarter Core ships Stripe, Polar, Lemon Squeezy, and Dodo Payments behind one billing API in @workspace/billing and @workspace/billing-web (billing overview). Stripe is the default. Switching to Polar means changing two export lines in packages/billing/web/src/providers, setting POLAR_ACCESS_TOKEN, POLAR_WEBHOOK_SECRET, and POLAR_ORGANIZATION_SLUG, and pointing the webhook at /api/billing/webhook/polar (Polar setup).

Your plans live in one shared config. The only provider-specific part is each variant's id: a Stripe price ID or a Polar product ID, since Polar models each price as its own product (configuration). Subscriptions, one-time payments, credits, per-seat, and metered usage work across both, and checkout can bill either a user or an organization.

Two honest notes. Managed Payments is not a documented toggle in the kit today: the Stripe provider is built on Stripe Checkout (it fulfills on checkout.session.completed), which is the surface Managed Payments needs, but you would add the managed_payments parameter and eligible tax codes yourself. And the Edge Kit is Stripe-only.

If you want to start from a working setup, see the Next.js Polar SaaS boilerplate or the Next.js Stripe starter kit, and the Stripe setup guide.

Sounds good?Now let's make it real. In minutes.
Try TurboStarter

FAQ

Verdict

The Polar vs Stripe decision is no longer just "MoR or processor." If you want the lowest fees and can own tax, plain Stripe still wins. If you want a merchant of record with built-in subscriptions, usage billing, and benefits, Polar is the better value today, especially on its free Starter plan or once Pro pays for itself. Stripe Managed Payments earns its place for teams already deep in Stripe Checkout who want tax handled for new customers without switching providers, as long as the extra 3.5% and the eligibility limits fit. Whichever you choose, keep the provider behind your own billing layer so switching later is a config change, not a rewrite.

world map
Community

Connect with like-minded people

Join our community to get feedback, support, and grow together with 1,000+ builders on board, let's ship it!

Join us

Ship your startup everywhere. In minutes.

Don't burn tokens on setup and start building features on day one.

Get TurboStarter