> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Paddle for SaaS

How Paddle handles billing, subscriptions, customer self-service, and global tax compliance for SaaS businesses.

---

Paddle is a [merchant of record](https://mor.paddle.com/) platform built for modern SaaS businesses. It manages your payments, taxes, and subscriptions in a single integration, so your team can ship features faster.

Companies like [CrashPlan](https://www.paddle.com/customers/crashplan-doubled-sign-ups-with-paddle), [Plausibe Analytics](https://www.paddle.com/customers/how-plausible-analytics-used-paddle-to-achieve-200-mrr), [n8n](https://www.paddle.com/customers/how-paddle-helped-n8n-io-grow-mrr), [Relay.app](https://www.paddle.com/customers/relayapp-live-in-weeks-sells-globally-without-barriers), and [TeamGantt](https://www.paddle.com/customers/team-gantt-boosts-conversions-retention-with-paddle) use Paddle to power their business.

## Key features for SaaS businesses

{% card-group cols=2 %}
{% card title="Merchant of record" icon="carbon:manage-protection" %}
Tax, compliance, one-click payment methods, and smart routing across 200+ countries are handled for you.
{% /card %}
{% card title="Subscription engine" icon="carbon:repeat" %}
Recurring billing, plan changes, proration, pauses, trials, and dunning come built in, with webhooks for the full lifecycle.
{% /card %}
{% card title="Customer portal" icon="carbon:user-multiple" %}
Low maintenance, simple to integrate customer portal for self-service subscription workflows.
{% /card %}
{% card title="World-class payment recovery" icon="carbon:chart-line" %}
Paddle Retain automatically recovers failed payments, reduces cancellation rates, and increases LTV.
{% /card %}
{% /card-group %}

## Pricing models you can build

In Paddle, [products and prices](https://developer.paddle.com/build/products/create-products-prices.md) are flexible entities you compose into the structure you need. Products describe what you sell, and related prices describe how you sell a product.

This means you can build any pricing structure you need, from flat, good-better-best, per-seat, usage-based, and feature based pricing.

- **Recurring plans** with any billing period, optional [trials](https://developer.paddle.com/build/trials/cardless-trials.md), and multiple items on a subscription.
- **Good-better-best**, like Starter, Pro, Enterprise, by creating one product per tier.
- **Per-seat billing** by [adding seats as a quantity](https://developer.paddle.com/build/subscriptions/add-remove-products-prices-addons.md) on a price item.
- **Add-ons** on top of a base plan, billed on the same cycle or a different one.
- **Usage-based charges** for metered features, billed via custom items on the next invoice.
- **Plan changes** with [proration](https://developer.paddle.com/concepts/subscriptions/proration.md) calculated to the minute, and your choice of whether to bill now, on the next renewal, or skip billing.
- **One-time charges** alongside subscriptions for things like activation fees, overage, or single purchases.

If you manage your catalog outside of Paddle, you can add non-catalog items to a transaction or subscription, too.

## Transactions and subscriptions

[Transactions](https://developer.paddle.com/api-reference/transactions.md) and [subscriptions](https://developer.paddle.com/api-reference/subscriptions.md) are the core billing entities in Paddle:

- When a transaction (checkout or invoice) is completed, Paddle creates a related subscription.
- When a subscription renews, Paddle creates a new transaction to collect payment for it.
- Upgrades, one-time charges, and other changes to a subscription create transactions, too.

The entire subscription lifecycle can be understood in terms of these two entities, meaning it's easy to determine the state of a subscription at any given time.

## The subscription lifecycle

The subscription billing engine in Paddle handles the complete subscription lifecycle, including signup, renewal, upgrade and downgrade, pause, and cancellation.

```mermaid
flowchart LR
    S[sign up] --> A[trialing]
    A --> B[active]
    B <--> C[past_due]
    B --> D[paused]
    D --> B
    B --> E[canceled]
    C --> E
```

To handle fulfillment, you can listen for webhooks for the subscription lifecycle and update your database accordingly. Paddle includes over 50 webhooks, but a basic billing workflow involves listening to just two:

| Event | Purpose |
|---|---|
| `subscription.created` | A new subscription exists. Save the customer and subscription IDs against your user, and grant access. |
| `subscription.updated` | Something about the subscription has changed, like its status, items, scheduled changes, or billing period. Re-read the cached fields you store. |

## Self-service for your customers

Customers expect to manage their own subscription without filing a support ticket. The customer portal gives customers a hosted page where they can:

- Update payment methods.
- View past invoices and download receipts.
- Cancel, with a cancellation flows that surface offers before the customer leaves.

You can [link to the portal](https://developer.paddle.com/build/customers/integrate-customer-portal.md) directly from your app, or generate per-customer authenticated sessions for a more seamless handoff.

For a completely custom experience, you can build your own billing management screens in your app using the API or SDKs. Everything the portal offers is available for developers, too.

## Reduce churn with Paddle Retain

Subscription businesses lose more revenue to failed payments and avoidable churn than they realize. [Paddle Retain](https://developer.paddle.com/concepts/retain.md) is fully integrated with Paddle Billing, recovering failed payments and reducing churn automatically.

- **Payment recovery and dunning** for failed payments, using ML-tuned schedules and acquirer-specific logic across millions of transactions.
- **Cancellation flows** salvage customers at the moment they want to cancel with offers and win-back paths.
- **Term optimization** nudges customers from monthly to annual plans at renewal, lifting LTV.

Retain works on top of Paddle Billing, using Paddle.js, Paddle Checkout, and the customer portal.

## Ready to scale

Paddle helps you unlock new markets and win bigger deals:

- **Localized pricing** in [30+ currencies](https://developer.paddle.com/concepts/sell/supported-currencies.md), set automatically from your base price or configured per country.
- **Global payment methods** like [Apple Pay](https://developer.paddle.com/concepts/payment-methods/apple-pay.md), [Google Pay](https://developer.paddle.com/concepts/payment-methods/google-pay.md), [PayPal](https://developer.paddle.com/concepts/payment-methods/paypal.md), plus regional methods like [iDEAL](https://developer.paddle.com/concepts/payment-methods/ideal.md), [Bancontact](https://developer.paddle.com/concepts/payment-methods/bancontact.md), [Pix](https://developer.paddle.com/concepts/payment-methods/pix.md), and [UPI](https://developer.paddle.com/concepts/payment-methods/upi.md). No need to add individual processors.
- **Tax compliance** in [200+ countries](https://developer.paddle.com/concepts/sell/supported-countries-locales.md), including VAT, GST, sales tax, and digital services taxes.
- **Hybrid billing support** means you can move subscriptions to invoices for larger deals in one-click or API call, with no data duplication.

## Next steps

{% card-group cols=3 %}
{% card title="Next.js starter kit" icon="carbon:application-web" url="/get-started/starter-kits/nextjs-saas" %}
Deploy a working SaaS app to Vercel in minutes.
{% /card %}
{% card title="Quickstart" icon="carbon:rocket" url="/get-started/quickstart" %}
Walk through the five steps to get started end to end.
{% /card %}
{% card title="Integrate with AI" icon="sparkles" url="/get-started/ai" %}
Install the Paddle MCP or skills to add Paddle to your app.
{% /card %}
{% /card-group %}