Home/Payments/Paddle
Payments
paddle

Paddle

TypeScriptPythonSaaSMerchant of RecordGlobal

Merchant of Record payment platform for SaaS companies. Paddle handles all global tax compliance, VAT, and sales tax automatically — you never touch tax complexity.

License

Proprietary

Language

TypeScript / Python

47
Trust
Limited

Why Paddle?

SaaS selling globally and needing automatic tax compliance

You want a MoR to handle legal/tax liability

Subscription billing with complex proration logic

Signal Breakdown

What drives the Trust Score

npm downloads
100k / wk
Commits (90d)
60 commits
GitHub stars
2k ★
Stack Overflow
3k q's
Community
Moderate
Weighted Trust Score47 / 100

Download Trend

Last 12 months

Tradeoffs & Caveats

Know before you commit

US-only business where Stripe's simplicity wins

Marketplaces (Stripe Connect is better)

You need maximum payment method coverage

Pricing

Free tier & paid plans

Free tier

No monthly fee

Paid

5% + $0.50 per transaction

Higher per-transaction than Stripe but includes tax handling

Alternative Tools

Other options worth considering

stripe
Stripe82Strong

The gold standard for payments infrastructure. Handles subscriptions, one-time charges, invoicing, tax, and fraud detection. Used by millions of businesses globally — the default choice.

lemonsqueezy
LemonSqueezy42Limited

Simple Merchant of Record for indie developers and small SaaS. LemonSqueezy handles payments, subscriptions, and global tax with a developer-friendly API and zero monthly fees.

Often Used Together

Complementary tools that pair well with Paddle

nextjs

Next.js

Frontend & UI

98Excellent
View
supabase

Supabase

Database & Cache

95Excellent
View
vercel

Vercel

Hosting & Deploy

89Strong
View
clerk

Clerk

Auth & Users

80Strong
View
prisma

Prisma

Database & Cache

88Strong
View

Learning Resources

Docs, videos, tutorials, and courses

Get Started

Repository and installation options

View on GitHub

github.com/PaddleHQ/paddle-node-sdk

npmnpm install @paddle/paddle-node-sdk
pippip install paddle-python-sdk

Quick Start

Copy and adapt to get going fast

import { Paddle } from '@paddle/paddle-node-sdk';

const paddle = new Paddle(process.env.PADDLE_API_KEY);

const transaction = await paddle.transactions.create({
  items: [{ priceId: 'pri_01abc', quantity: 1 }],
  customerId: 'ctm_01xyz',
});

Code Examples

Common usage patterns

Create subscription

Set up recurring billing

const subscription = await paddle.subscriptions.create({
  customerId: 'ctm_01xyz',
  items: [{ priceId: 'pri_monthly_pro', quantity: 1 }],
  prorationBillingMode: 'prorated_immediately',
});

Webhook handling

Process Paddle webhook events

const paddleSignature = req.headers['paddle-signature'];
const event = paddle.webhooks.unmarshal(req.rawBody, process.env.PADDLE_WEBHOOK_SECRET, paddleSignature);

if (event.eventType === 'subscription.activated') {
  await db.users.update({ paddleSubId: event.data.id }, { where: { id: event.data.customData.userId } });
}

Community Notes

Real experiences from developers who've used this tool