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

# Key features in Paddle Billing for Paddle Classic users

Learn more about what you can do with Paddle Billing and why you should migrate from Paddle Classic.

---

Paddle Billing is a reimagining of how you work with the Paddle platform, offering you more ways to maximize revenue and grow your sales volume.

This guide is an overview of the key reasons to migrate from Paddle Classic to Paddle Billing. It helps you understand some of the things you'll be able to do after you've migrated.

## Product catalog

{% card-group cols=2 %}

{% card title="Multi-product subscriptions" %}
Paddle Billing supports multi-product subscriptions, letting you build complex offerings including plans, recurring addons, and one-time charges on the same subscription.

{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Unified product catalog" %}
No need to duplicate data. Create invoices for the same products that you offer at checkout, changing the price as you move through the sales cycle. Issue compliant invoices when you're ready.

{% badge label="Invoice" type="info" /%}
{% /card %}

{% card title="True price localization" %}
Price for countries, not currencies. Use price overrides to adjust for willingness-to-pay and purchasing power — even across countries that share the same currency.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Flexible discounting" %}
Coupons, modifiers, and charges have become a unified discount entity in Billing. Choose how long discounts recur for, apply them to subscriptions, and limit at checkout.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% badge label="Invoice" type="info" /%}
{% /card %}

{% card title="Bring your own catalog" %}
Pass products and prices directly to a subscription, checkout, or invoice to bill for one-off items, or in cases where you manage your catalog outside of Paddle.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% /card-group %}

## Customers

{% card-group cols=2 %}

{% card title="Plug in the customer portal" %}
Let customers grab and revise invoices, update their account details, and manage their own subscriptions using the customer portal. No engineering effort required.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Manage customers yourself" %}
Customer information is centralized in a lightweight customer entity that's specific to your Paddle Billing account. You have full access to customer data using the dashboard and API.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Modular customer data" %}
A single customer can have multiple addresses and businesses — useful when you're dealing with a large customer with offices in different locations.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% /card-group %}

## Billing and subscriptions

{% card-group cols=2 %}

{% card title="One-page checkout" %}
Present customers with a true one-page checkout experience, collecting customer, address, business, and billing details on one screen.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Hybrid billing" %}
Sell through a checkout or issue invoices — all from the same integrated platform. Easily move customers from self-serve to sales-assisted billing, with payments by bank transfer.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% badge label="Invoice" type="info" /%}
{% /card %}

{% card title="Automatic subscription invoices" %}
Create invoices for recurring products. Paddle Billing automatically sends invoices for subscription lifecycle events, like renewals, upgrades and downgrades, and other charges.

{% badge label="Invoice" type="info" /%}
{% /card %}

{% card title="Preview charging" %}
Preview charging for actions like upgrading or downgrading, adding or removing addons, changing billing dates, billing one-time charges, or making other changes to a subscription.

{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Full control over trials" %}
Trialing subscriptions behave like other subscriptions, so you can upgrade, downgrade, or add or remove items. Plus, extend or cut short trial dates, or activate immediately.

{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Advanced pause and resume" %}
Get more control over how pausing and resuming subscriptions works — including setting a resume date and choosing whether to charge for a new billing cycle.

{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Seamless integration with Retain" %}
Never think about dunning or retention again. Retain combines world-class subscription expertise and algorithms to automatically reduce churn and increase lifetime value.

{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% /card-group %}

## Finance and reporting

{% card-group cols=2 %}

{% card title="Automatic invoicing emails" %}
Add contacts to a business for people in accounts or finance teams. Paddle Billing automatically emails business contacts when an invoice is issued, paid, or canceled.

{% badge label="Invoice" type="info" /%}
{% /card %}

{% card title="Generate credit notes" %}
Use adjustments to refund or credit a transaction. Grab a credit note, sometimes called a credit memo in other platforms, to send to customers as a record of a refund or credit.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Faster invoice reconciliation" %}
When you send invoices, Paddle Billing generates unique bank transfer account numbers for each customer. This means invoices can be reconciled faster.

{% badge label="Invoice" type="info" /%}
{% /card %}

{% card title="Better reporting" %}
By unifying catalog and customers with checkout and invoices, Paddle Billing lets you report on invoicing revenue in the context of all your business data.

{% badge label="Invoice" type="info" /%}
{% /card %}

{% card title="Revise customer details on completed purchases" %}
Let customers update their tax number, address, or other information on completed invoices and checkouts. The original transaction remains unchanged for compliance.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% /card-group %}

## Developer experience

{% card-group cols=2 %}

{% card title="A totally new API" %}
Paddle Billing includes a new unified REST API that brings together all your billing operations. It's consistent and built to modern standards, with JSON for requests and responses.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Full access to all your data" %}
Our public API powers the dashboard, so if you can do it in the dashboard, then you can do in the API. You have complete access to your data — including customers, catalog, and transactions.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Paddle.js v2" %}
A new version of Paddle.js makes it easier to work with Paddle in your frontend. Plus, install Paddle.js as a module using `npm` or other package managers, with full TypeScript support.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="New SDKs and developer tools" %}
Use our hand-crafted SDKs to make integrating a pleasure, our Next.js starter kit to get up and running quickly, and our MCP server to bring Paddle into AI-powered IDEs.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="Advanced webhook testing" %}
Go beyond sending a test event to your webhook endpoint. Use webhook simulator to send customized multi-event scenarios, playing out all webhooks for key lifecycle events.

{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% card title="More robust webhooks" %}
Built around a centralized event stream, there are over 40 webhooks for the entire customer lifecycle. Payloads mirror API responses, with the ability to configure multiple endpoints.

{% badge label="Invoice" type="info" /%}
{% badge label="One-time" type="note" /%}
{% badge label="Subscriptions" type="success" /%}
{% /card %}

{% /card-group %}