Stripe or Paddle for a small SaaS: the VAT question

Every few months someone asks me whether to use Stripe or Paddle for a new subscription product. The engineering answer is boring — both have decent APIs and you will be done in a week either way.
The answer that matters is about tax, and it is the one people skip.
Merchant of record is the whole decision
With Stripe, you sell to the customer. Stripe moves money. If you sell a digital subscription to someone in Germany, you owe German VAT, and you are the one who has to register, collect, file and remit it.
With Paddle, Paddle sells to the customer and buys from you. They are the merchant of record. The VAT liability is theirs. You get one payout and one invoice.
That is the entire trade. Everything else is detail.
What “handling your own VAT” actually costs
People underestimate this because they imagine it as a checkbox. In practice, selling digital services into the EU means:
- Registering for VAT OSS somewhere in the EU, or in each country you sell to.
- Determining customer location with two non-contradictory pieces of evidence — billing address and IP, typically — and storing them for ten years.
- Validating VAT numbers for B2B customers so you can zero-rate and reverse-charge correctly.
- Filing quarterly returns per jurisdiction.
- Doing the same again for UK VAT post-Brexit, and increasingly for US states with economic nexus thresholds.
Stripe Tax handles the calculation. It does not handle registration, filing or remittance. That distinction gets glossed over constantly and it is the expensive half.
The fee comparison is not what it looks like
Stripe is around 2.9% + 30¢. Paddle is around 5% + 50¢. Paddle looks nearly twice as expensive.
Then you add an accountant who understands cross-border digital VAT. For a product doing $4,000 MRR, filings and advice ran to roughly $300 a month. That is 7.5% of revenue — more than the entire fee gap.
The crossover is somewhere around $30–50k MRR in my experience. Below it, Paddle is usually cheaper all-in. Above it, hiring the finance capability starts to make sense and Stripe’s lower rate compounds.
These numbers depend heavily on where you are incorporated and who you sell to. A US company selling only to US customers has a much simpler picture and should probably just use Stripe.
Where Paddle genuinely hurts
It is not all upside.
Payout delay. Paddle pays on a schedule, not on a rolling basis. If cash flow is tight, that gap is real.
Less control over the checkout. It has improved a lot, but you are still working inside their component. Stripe Elements gives you far more room.
Approval. Paddle underwrites you as a reseller. They can decline. Stripe is close to self-serve.
Migration is painful. Because Paddle owns the customer relationship contractually, moving off it later means re-collecting payment details from every subscriber. Plan for 15–25% churn through that transition. Going the other way, Stripe → Paddle, is easier.
What I actually recommend
Selling globally, small team, no finance function: Paddle. You are buying tax compliance, not a payment processor, and it is cheap at that price.
Selling mostly domestically, or already have finance support, or need heavy checkout customisation: Stripe.
Either way, isolate it. Every subscription product I build gets a thin internal billing interface — createSubscription, cancelSubscription, getEntitlements — with the provider behind it. The provider SDK never leaks into feature code.
That took about a day to write on the last build. It will not make a migration painless, because the customer-consent problem is unavoidable. But it means the code change is a day rather than a quarter.