All fees checked on 23 October 2026 on each vendor's own pricing pages and docs, unless a cell says otherwise. Payment pricing changes often (Polar changed its plans in May 2026), so check the links before you commit.
Choosing a payment provider for a SaaS used to be one line: "just use Stripe". For indie hackers in 2026 it's a real decision, for two reasons.
The first is tax. When you sell software to someone in Germany, Australia or Texas, you may owe VAT, GST or sales tax there. A merchant of record (MoR) becomes the legal seller of your product, collects and remits those taxes, and handles chargebacks and refunds. Stripe on its own is not an MoR. You are. Dodo Payments and Polar are.
The second is where you live. If you're a founder in India like me, Stripe has been invite-only for new Indian businesses since May 2024 (Inc42). For a lot of us, that alone decides the question.
This post compares Dodo Payments, Polar and Stripe for one job: selling a SaaS subscription to customers around the world. It covers verified fees, the limits that bite, cost tables at three revenue levels, the open-source billing tools you can self-host, and how to migrate.
The verdict first
- Pick Dodo Payments if you want an MoR with a simple flat rate, you're based outside the US/EU (it has an India-domestic INR rate), and you sell a mix of subscriptions, one-off purchases and usage-based plans.
- Pick Polar if you're a developer-first product that wants an MoR, an open-source (Apache-2.0) platform, built-in benefits (license keys, GitHub repo access, Discord roles, downloads) and plan tiers that get cheaper as you grow.
- Pick Stripe if your business is based in a supported country, you want the lowest raw processing fee and the deepest API, and you're happy to handle tax registration and filing yourself, or to pay extra for Stripe Tax or Managed Payments.
- Self-host the billing logic (Lago, Kill Bill, Flexprice, OpenMeter) if you have complex usage-based pricing and want to own the rating engine. You still need a processor or MoR underneath to move the money.
At a glance
| Option | Type | Monthly fee | Headline transaction fee | MoR (handles global tax)? | Best for | Watch out for |
|---|---|---|---|---|---|---|
| Dodo Payments | Managed MoR | $0 | 4% + 40¢ (US cards) | ✓ | Global SaaS, founders outside US/EU | Surcharges add up: +1.5% intl, +0.5% subscriptions |
| Polar | Managed MoR, open-source platform | $0 / $20 / $100 / $400 | 5% + 50¢ (Starter) down to 3.4% + 30¢ (Scale) | ✓ | Developer tools, open-source products | +1.5% intl cards; Stripe payout and FX fees on top |
| Stripe (Payments + Billing) | Payment processor | $0 | 2.9% + 30¢ + 0.7% Billing | ✗ (you are the seller) | Teams in supported countries who handle tax | Invite-only in India; tax is your job |
| Stripe Managed Payments | Stripe's own MoR | $0 | Processing +3.5% (third-party figure) | ✓ | Stripe users who want MoR | Digital goods only; India not a supported business location |
| Paddle | Managed MoR | $0 | 5% + 50¢ | ✓ | Established SaaS, B2B | Highest base rate here |
| Lemon Squeezy | Managed MoR (owned by Stripe) | $0 | 5% + 50¢ (third-party) | ✓ | Existing users | Stripe is steering users towards Managed Payments |
| Razorpay | Indian payment gateway | $0 | 2% domestic / 3% international (+18% GST on the fee) | ✗ | Indian customers, INR | Not an MoR; foreign tax is your job |
Sources are in each section below. Third-party means I couldn't read that number on the vendor's own page.
Head to head: Dodo vs Polar vs Stripe
| Feature | Dodo Payments | Polar | Stripe |
|---|---|---|---|
| Merchant of record | ✓ | ✓ | ✗ (✓ only with Managed Payments) |
| Global VAT / GST / sales tax handled | ✓ "220+ countries and regions" | ✓ | ✗ You file. Stripe Tax calculates (+0.5%) |
| Subscriptions | ✓ (+0.5%) | ✓ (fee built into plan rates) | ✓ with Billing (0.7%) |
| Usage-based billing | ✓ (+0.5%) | ✓ (meters) | ✓ Billing meters |
| Accepts Indian sellers | ✓ (India domestic rate listed) | ✓ payouts to India via Stripe Connect Express | ✗ Invite-only for new Indian businesses |
| Monthly platform fee | $0 | $0–$400 (plans) | $0 |
| Refund fee | $1 per refund | Original fees not returned | Original fees not returned |
| Dispute / chargeback fee | $30 | $15 (non-refundable) | ? (varies by country) |
| ACH / SEPA direct debit | 1.5%, capped at $15 / €15 | ? | ACH 0.8%, capped at $5 (US) |
| PayPal / BNPL | +3% | ? | Via payment methods (varies) |
| Bring your own processor | ✓ (0.5%) | ✗ | n/a |
| Open source | SDKs (Apache-2.0) | Whole platform (Apache-2.0) | SDKs (MIT) |
| Agent / MCP tooling | ✓ MCP server (SDK README) | ? | ✓ Agent skills + CLI (docs) |
Sources: Dodo pricing, Polar fees, Polar supported countries, Stripe Billing pricing.
What surprises people:
- Polar changed its pricing in May 2026. There are now four plans instead of one flat rate. Organisations created before 27 May 2026 keep the old "Early Member" rate (4% + 40¢ plus 0.5% on subscriptions) until they upgrade to a paid plan.
- Polar pays Indian founders even though Stripe is invite-only here. Polar receives the customer's money as MoR and pays you out through Stripe Connect Express, which supports India. Its docs warn you may see an invite-only notice in Connect Express, but payouts still work.
- Stripe's low headline rate isn't the whole cost. Add 0.7% for Billing, 0.5% for Tax, and +1.5% for international cards plus 1% currency conversion. Then you still register and file in every country where you cross a tax threshold.
Pricing breakdown
Dodo Payments
| Item | Fee |
|---|---|
| Base (US cards and wallets) | 4% + 40¢ |
| International cards / payment methods (outside US) | +1.5% |
| India domestic (INR) | 4% + 15¢ (+ international fees where they apply) |
| Subscriptions, add-ons, usage-based billing | +0.5% |
| PayPal, Klarna, Afterpay | +3% |
| ACH / SEPA direct debit (one-off payments) | 1.5%, capped at $15 / €15 (replaces the card fee) |
| Bring your own processor | 0.5% |
| Refund | $1 |
| Chargeback | $30 (Visa RDR $18, Ethoca alert $27, deflection $15) |
| Recovery (dunning, abandoned cart) | 5% of recovered revenue only |
| Payouts | Free in the pricing table, but the FAQ mentions $5 on payouts under $1,000. USD SWIFT payouts for non-US businesses: $25 |
| Monthly / setup fee | None |
Source: dodopayments.com/pricing. Two caveats: the page doesn't say explicitly whether surcharges stack (international and subscription), and the payout fee lines conflict. Ask Dodo before you rely on either.
Polar
| Plan | Monthly | Per transaction |
|---|---|---|
| Starter | $0 | 5% + 50¢ |
| Pro | $20 | 3.8% + 40¢ |
| Growth | $100 | 3.6% + 35¢ |
| Scale | $400 | 3.4% + 30¢ |
| Early Member (orgs created before 27 May 2026) | $0 | 4% + 40¢ + 0.5% on subscriptions |
| Extra | Fee |
|---|---|
| International (non-US) cards | +1.5% |
| Dispute | $15, whatever the outcome |
| Refunds | Allowed; original fees aren't returned |
| Payouts (Stripe, no Polar markup) | $2/month with active payouts + 0.25% + 25¢ per payout |
| Cross-border currency conversion on payout | 0.25% (EU) to 1% (other countries) |
Source: polar.sh/docs/fees.
Stripe
| Item | Fee |
|---|---|
| Cards (US) | 2.9% + 30¢ |
| International card surcharge | +1.5% (third-party: Checkout Page) |
| Currency conversion | +1% (third-party, same source) |
| ACH direct debit | 0.8%, capped at $5 |
| Stripe Billing (pay as you go) | 0.7% of billing volume |
| Stripe Billing (annual plans) | from $620/month (up to $100k volume/month), +0.67% above the cap |
| Stripe Tax | 0.5% per transaction (third-party: Makerkit) |
| Managed Payments (Stripe as MoR) | +3.5% on top of processing (third-party: Makerkit and Dodo's breakdown; Dodo is a competitor) |
Sources: Stripe Billing pricing for the card, ACH and Billing rows.
About Managed Payments: it's Stripe's MoR product for digital goods only (software, SaaS, courses, digital media). It covers sales tax, VAT and GST in 80+ countries, plus fraud, disputes and transaction-level customer support (docs). It doesn't support Connect platforms, Elements-based custom checkouts, or professional services. It requires a business based in one of the supported locations: the US, Canada, most of Europe, Australia, Hong Kong, Japan and Singapore (eligibility). India isn't on that list.
Razorpay (for Indian founders)
The standard plan has no setup or annual fee. Domestic cards, UPI, netbanking and wallets cost 2%; international cards 3%; Amex and corporate cards 3%. 18% GST applies to the fee, so 2% really costs 2.36%. International settlement is typically T+7 (Razorpay). It's a gateway, not an MoR: foreign VAT and US sales tax are still your problem.
More alternatives worth knowing
Dodo, Polar and Stripe aren't the only options. These are the other products people compare them with, checked on each vendor's own pages unless marked.
| Product | Type | Fee | MoR? | Good for | Watch out for |
|---|---|---|---|---|---|
| Creem | MoR for indie SaaS | 3.9% + 40¢ (on order total incl. tax); +2% splits, +2% affiliates, +5% recovered carts | ✓ | Indie hackers who want a low flat MoR rate | Bank payouts cost the greater of $7 or 1%; $50 minimum payout; check its supported-countries page for India |
| Gumroad (third-party) | MoR marketplace for creators | 10% + 50¢ + card processing; 30% on Discover marketplace sales | ✓ (since Jan 2025) | Ebooks, templates, courses, quick launches | Expensive for SaaS; fees aren't returned on refunds; international payouts via PayPal (2–3%) |
| FastSpring | MoR for software | Quote-based (not published) | ✓ | Established software and games companies, B2B invoicing | You need a sales call to get a price |
| Freemius | Selling platform for WordPress plugins, SaaS and apps | 3.8% + 50¢, falling to 0.5% above $100k/month; gateway fees (~3.5%) on top | Handles VAT and disputes (doesn't say "MoR" on its pricing page) | WordPress plugins and themes, licensing | Processing is extra, so the real total is about 7%+ |
| Cashfree | Indian payment gateway | 1.95% domestic; 2.99% international Visa/Mastercard; 18% GST on fees | ✗ | Indian customers, a cheaper Razorpay alternative | Not an MoR; promo offers change often |
How they fit in:
- Creem is the closest like-for-like rival to Dodo and Polar for indie SaaS. Its 3.9% + 40¢ base is lower than both. Add the payout fee (minimum $7 or 1%) before you compare totals.
- Gumroad makes sense for one-off digital products. At 10% + 50¢ plus processing, it's the most expensive option for recurring SaaS revenue.
- FastSpring and Paddle target larger software businesses. FastSpring publishes no rates at all.
- Freemius is the default in the WordPress world. Its fee looks like Polar's until you add the separate gateway fee.
- Cashfree and Razorpay are what Indian founders use for Indian customers paying in INR. Many founders run one of them for India and an MoR (Dodo, Polar or Creem) for everyone else.
Cost scenarios at three revenue levels
Assumptions:
- A SaaS charging $20/month per subscriber.
- 40% of payments on US cards, 60% on international cards, which is typical for an indie product selling worldwide.
- All recurring, charged in USD.
- Dodo's surcharges are assumed to stack. Polar is priced on the cheapest plan for each level.
- Stripe is shown without your own tax-compliance costs (registrations, filings, accountant), which you'd have to add.
| Workload | MRR | Payments/month |
|---|---|---|
| Launch | $2,000 | 100 |
| Growing | $20,000 | 1,000 |
| Scale | $200,000 | 10,000 |
| Option | Launch | Growing | Scale | Effective rate |
|---|---|---|---|---|
| Dodo Payments | $148 | $1,480 | $14,800 | 7.4% |
| Polar (best plan) | $154 (Pro) | $1,350 (Growth) | $12,000 (Scale) | 7.7% → 6.0% |
| Stripe Payments + Billing + Tax | $130 | $1,300 | $13,000 | 6.5% + your tax work |
| Stripe Managed Payments + Billing | $190 | $1,900 | $19,000 | 9.5% |
| Paddle | $150 | $1,500 | $15,000 (custom pricing likely) | 7.5% |
| Lemon Squeezy | $178 | $1,780 | $17,800 | 8.9% |
| Creem | $118 | $1,180 | $11,800 | 5.9% + payout fee |
The arithmetic, per $20 payment:
- Dodo: US 4% + 0.5% = 4.5% → $0.90 + $0.40 = $1.30. International 6% → $1.20 + $0.40 = $1.60. Blended: 0.4 × 1.30 + 0.6 × 1.60 = $1.48.
- Polar:
- Starter: US $1.50, intl $1.80 → $1.68.
- Pro: US $0.76 + $0.40 = $1.16, intl 5.3% → $1.46 → $1.34, plus $20/month.
- Growth: $1.07 / $1.37 → $1.25 + $100.
- Scale: $0.98 / $1.28 → $1.16 + $400.
- Launch: Pro = 134 + 20 = $154 (Starter would be $168).
- Growing: Growth = 1,250 + 100 = $1,350 (Pro $1,360, Scale $1,560).
- Scale: Scale plan = 11,600 + 400 = $12,000 (Growth $12,600).
- Stripe: US $0.58 + $0.30 = $0.88; intl 4.4% → $1.18; blended $1.06. Add Billing 0.7% ($0.14) and Tax 0.5% ($0.10) → $1.30.
- Managed Payments: each blended card fee + 3.5% ($0.70) → $1.76, plus Billing $0.14 → $1.90.
- Paddle: 5% + 50¢ = $1.50. No international surcharge is listed on its pricing page.
- Lemon Squeezy: 5% + 50¢, +1.5% intl, +0.5% subscriptions (third-party): US $1.60, intl $1.90 → $1.78.
- Creem: 3.9% + 40¢ = $0.78 + $0.40 = $1.18. The payouts page I read lists no international-card or subscription surcharge, so check Creem's pricing page before you trust this row. Bank payouts add the greater of $7 or 1%, roughly $186 a month at Growing.
Getting the money to an Indian bank account (Growing level, about $18,500 net):
| Payout cost | |
|---|---|
| Polar | $2 + (0.25% + 25¢) + 1% conversion ≈ $235/month |
| Dodo | $0–$5 (free per the pricing table, $5 per the FAQ on payouts under $1,000), or $25 per USD SWIFT payout, plus bank FX. Confirm with Dodo |
| Stripe | Not available to new Indian businesses |
What the table shows:
- At launch, everything costs about the same ($130–$190 a month). Pick on features and eligibility, not fees.
- At scale, Polar's tiers become the cheapest MoR in this comparison, but its payout FX can claw back about 1% for founders outside the EU.
- Stripe is cheapest on paper only if you can open an account and handle tax yourself. Registering for EU VAT OSS, UK VAT and US state sales tax costs real time and accountant fees, so the gap with an MoR is smaller than it looks.
Open-source billing and payments alternatives
None of these is a drop-in "free Stripe". Payments still need a licensed processor. What they replace is the billing logic (plans, metering, invoices, entitlements) or the payment routing. All were checked on GitHub this week.
| Project | License | Last commit | What it does | Replaces | Self-host effort | Notes |
|---|---|---|---|---|---|---|
| Polar | Apache-2.0 | 2026-10-23 | The full Polar platform: checkout, subscriptions, benefits, MoR backend | Read and audit your MoR's code | High | Self-hosting gives you the software, not Polar's MoR status |
| Lago | AGPL-3.0 | 2026-10-21 | Usage-based billing and invoicing engine | Stripe Billing | Medium | AGPL: changes must be shared if you offer it as a service |
| Kill Bill | Apache-2.0 | 2026-10-23 | Mature subscription billing and payments platform (Java) | Stripe Billing | High | Plugin system for many payment gateways |
| Flexprice | AGPL-3.0 | 2026-10-23 | Usage-based pricing, credits and metering for AI/SaaS | Stripe Billing meters | Medium | Indian company (license file shows a Pvt Ltd) |
| OpenMeter | Apache-2.0 | 2026-10-22 | Real-time usage metering and entitlements | Stripe meters | Medium | Pairs with any billing system |
| Hyperswitch | Apache-2.0 | 2026-10-23 | Payment orchestrator in Rust: route across Stripe, Razorpay, Adyen and others | Single-processor lock-in | High | From Juspay (India); you still need processors |
| BTCPay Server | MIT | 2026-10-23 | Self-hosted Bitcoin payment processor | Card processing (for crypto buyers) | Medium | No processor fees; crypto-only |
When self-hosted billing makes sense: your pricing is complicated (per-token AI usage, credits, overages, enterprise contracts), and Stripe Billing's 0.7% on a large volume is more than an engineer's time. For a simple $20/month plan, it's overkill.
What integration looks like
All three give you a hosted checkout page in a few lines of server code.
Dodo Payments (from the official Node SDK):
import DodoPayments from "dodopayments";
const dodo = new DodoPayments({
bearerToken: process.env.DODO_PAYMENTS_API_KEY,
environment: "test_mode", // "live_mode" in production
});
const session = await dodo.checkoutSessions.create({
product_cart: [{ product_id: "pdt_your_plan", quantity: 1 }],
});
// redirect the customer to the session's checkout URLPolar (from the official TypeScript SDK, @polar-sh/sdk):
import { Polar } from "@polar-sh/sdk";
const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN ?? "" });
const checkout = await polar.checkouts.create({
products: ["your-product-id"],
});
// redirect to checkout.urlStripe (stripe Node SDK):
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
const session = await stripe.checkout.sessions.create({
mode: "subscription",
line_items: [{ price: "price_your_plan", quantity: 1 }],
success_url: "https://example.com/thanks",
});
// redirect to session.urlThe checkout call is the easy part everywhere. The real work is the same on all three: webhooks (subscription.active, payment.failed, refunds) updating your database, and a customer portal for upgrades and cancellations. Dodo, Polar and Stripe all host a customer portal so you don't have to build one.
Who each one suits, in one line:
- Dodo: a solo founder in India selling a $20/month AI tool to US and European customers, who wants one flat bill and no tax registrations.
- Polar: an open-source developer tool that sells a Pro license and gives buyers access to a private GitHub repo and a Discord role automatically.
- Stripe: a Delaware-incorporated SaaS with an accountant, a custom checkout built with Elements, and usage-based enterprise billing.
Migration paths
Stripe → Dodo or Polar (adding an MoR)
- Recreate products and prices in the new provider. The IDs will change, so keep a mapping table.
- Existing subscribers are the hard part. Card details usually can't be moved between providers without each provider's migration support. Most founders either keep old subscribers on Stripe and send new sign-ups to the MoR, or email customers a link to re-subscribe. Ask the new provider whether they offer assisted migration.
- Rewrite webhook handlers for the new event names and payloads.
- Update your terms and invoices. With an MoR, the MoR is the seller on the receipt, not your company.
- Stop collecting tax yourself once all revenue goes through the MoR, and tell your accountant.
Polar ↔ Dodo
Both are MoRs, so tax handling doesn't change. The work is products, webhooks and moving existing subscribers, the same as above. Compare their payout routes to your country first. That's where the real cost difference is for founders outside the US.
Any provider → self-hosted billing (Lago, Kill Bill, Flexprice)
Run the billing engine yourself, send it usage events, and connect it to a processor (Stripe, Razorpay, Adyen) or route through Hyperswitch. You keep MoR and tax obligations unless your processor provides them.
Decision checklist
- Where is your business registered?
- India: Dodo, Polar or Razorpay. Stripe is invite-only.
- US, Canada, EU, UK, Australia, Singapore, Japan, Hong Kong: anything works.
- Do you want to register for and file VAT, GST and US sales tax yourself? No: an MoR (Dodo, Polar, Paddle, Stripe Managed Payments).
- Is your product purely digital and fully automated? If not (consulting, done-for-you services), MoRs like Stripe Managed Payments won't accept it.
- Is your monthly revenue above about $20k? Compare Polar's Growth and Scale plans. The tiers start to pay off.
- Do you need license keys, repo access or Discord roles on purchase? Polar has these built in.
- Do you sell one-off digital products with PayPal and BNPL? Dodo lists those surcharges clearly.
- Is your pricing heavily usage-based with complex rules? Consider Lago, Flexprice or OpenMeter on top of a processor.
- Do you care that your payment platform is open source? Polar is the only option here whose whole platform is Apache-2.0.
FAQ
Is Polar cheaper than Stripe? On raw processing, no: Stripe's 2.9% + 30¢ is lower than any Polar plan. But Polar is an MoR and Stripe isn't. Once you add Stripe Billing (0.7%), Stripe Tax (0.5%) and the cost of filing taxes yourself, Polar's Growth and Scale plans are competitive, and they're often simpler for founders outside the US.
Can I use Stripe from India? Existing Indian Stripe accounts continue, but Stripe has been invite-only for new Indian businesses since May 2024, and Stripe Managed Payments doesn't list India as a supported business location. Most Indian indie hackers use an MoR such as Dodo or Polar for global sales, and Razorpay for Indian customers.
What is a merchant of record, and do I need one? An MoR is the legal seller of your product. It collects and remits sales tax, VAT and GST worldwide and handles disputes and refunds. If you sell software to customers in many countries and don't want to register for tax in each, you probably want one.
Does Dodo Payments support Indian founders? Yes. Its pricing page lists an India-domestic INR rate (4% + 15¢), and it acts as MoR for sales in 220+ countries and regions.
Is Polar open source? Yes. The Polar platform is on GitHub under Apache-2.0 and is actively maintained (last commit the day I checked). Self-hosting the code doesn't make you a merchant of record, though. That's a legal service, not software.
What happened to Lemon Squeezy? Stripe acquired Lemon Squeezy in 2024. According to competitor reporting, Stripe is now steering users towards Stripe Managed Payments. Lemon Squeezy still works, but check its roadmap before you build on it.
Check your whole stack's bill
Payment fees are one line on your monthly bill. Hosting, database, email, auth and AI APIs are the rest. StackBudget is an open-source Claude Code skill that scans your repository, detects the services you use, and builds a cost calculator at launch, growth and scale. Its Migrate to picker lets you swap providers and see the total change:
/stack-budget owner/your-repoFor hosting costs specifically, see how I keep ihatereading under $100 a month at 10k visitors. And once your checkout works, the SaaS directories list and the post on 393 SaaS directories and the agent that has to use them cover getting your first customers. More comparisons like this go out in the monthly ihatereading magazine.
I'm not a lawyer, accountant or financial adviser. This compares published fees; check tax obligations for your own business with a professional.
Sources
- Dodo Payments: pricing; Node SDK
- Polar: fees; supported countries; platform repo; TypeScript SDK
- Stripe: Billing pricing; Managed Payments; Managed Payments eligibility
- Stripe in India: Inc42, Stripe goes invite-only in India (May 2024)
- Other providers: Paddle pricing; Razorpay pricing explained; Creem payouts and fees; FastSpring pricing; Freemius pricing; Cashfree charges; Gumroad fees (Checkout Page, third-party)
- Third-party figures:
- Open-source repos (license and last commit checked 23 Oct 2026): Lago, Kill Bill, Flexprice, OpenMeter, Hyperswitch, BTCPay Server