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

# Paddle for one-time products

Sell software licenses, digital downloads, plugins, courses, and other one-off purchases globally — Paddle handles tax, fraud, and payment routing.

---

Not every business is a SaaS subscription. Paddle works for one-off purchases — software licenses, ebooks, courses, plugins, digital assets, lifetime deals — with the same merchant-of-record coverage on tax and global payments. No subscription engine to think about, no recurring lifecycle to manage.

## What Paddle gives one-time sellers

{% card-group cols=3 %}
{% card title="Merchant of record" icon="carbon:manage-protection" %}
Paddle handles tax registration, VAT, GST, and sales tax in 200+ countries. You don't need a tax department to sell globally on day one.
{% /card %}
{% card title="Hosted checkout" icon="carbon:cloud" %}
Drop in Paddle Checkout with overlay or inline UI — Apple Pay, Google Pay, PayPal, cards, plus local methods. No payment processor setup.
{% /card %}
{% card title="No subscription overhead" icon="carbon:purchase" %}
One-time prices skip the subscription engine entirely. A purchase is a single charge with a single fulfillment moment.
{% /card %}
{% /card-group %}

## Single-charge transactions

A one-time product in Paddle is just a [product](https://developer.paddle.com/build/products/create-products-prices.md) with a price that has no recurring interval set. The same checkout, the same webhook events, the same SDKs — minus the subscription complexity.

The flow is:

1. **Create a product** with one or more one-time prices in your Paddle catalog. You can offer the same product in multiple currencies or at different price points (e.g. standard, plus, lifetime).
2. **Build a pricing page or buy button** that calls Paddle.js with the price ID. See [Build a pricing page](https://developer.paddle.com/build/checkout/build-pricing-page.md).
3. **Customer pays** through Paddle Checkout — overlay, inline, or hosted.
4. **Paddle fires** [`transaction.completed`](https://developer.paddle.com/webhooks/transactions/transaction-completed.md) — your webhook handler grants access, sends a license key, or unlocks the download.

For more dynamic flows — bundles, custom amounts, or one-off charges with metadata — create the transaction server-side first and pass it to checkout. See [Create a transaction](https://developer.paddle.com/build/transactions/create-transaction.md) and [Pass a transaction to checkout](https://developer.paddle.com/build/transactions/pass-transaction-checkout.md).

## Pricing flexibility

One-time products don't have to be flat prices:

- **Multiple price points per product** — offer "Pro license $99" and "Team license $499" on the same product.
- **Localized pricing** — set per-region prices in 30+ currencies, or let Paddle auto-localize from your base price.
- **Discount codes and promotional pricing** — apply percentage or fixed-amount discounts at checkout, scoped to specific products or campaigns.
- **Custom amounts at checkout** — pass a one-off price into the transaction for "name your price" or quote-driven sales.
- **Bundle pricing** — combine multiple products into a single transaction with a single payment.

You can launch promotions, regional sales, or customer-specific deals without redeploying.

## Going global without a tax department

Selling digital products across borders quickly turns into a tax problem: VAT in the EU and UK, GST in Australia, India, and Singapore, sales tax across US states, country-specific digital services taxes. Paddle is the merchant of record, which means:

- **Tax is calculated and added at checkout** automatically based on the customer's location.
- **Paddle remits** the tax to the right authority — not you.
- **Customers see compliant invoices** with the correct VAT/GST treatment, downloadable from their email or the customer portal.
- **No registration thresholds to track** in each jurisdiction, because the registrations are Paddle's, not yours.

For indie developers, content creators, and small teams selling digital products globally, this is usually the largest single reason to choose a merchant of record.

## Customer experience

Paddle Checkout works out of the box for one-time purchases:

- **Overlay checkout** opens over your existing site — minimal disruption to your design.
- **Inline checkout** embeds the form directly in your page for full visual control.
- **Hosted checkout** at a Paddle URL when you don't want to host the checkout yourself.

All three support Apple Pay, Google Pay, PayPal, cards, and local methods like iDEAL, Bancontact, UPI, and Pix — selected automatically based on the customer's region. See [Self-serve checkout](https://developer.paddle.com/concepts/sell/self-serve-checkout.md) for the conceptual overview, or [Build an overlay checkout](https://developer.paddle.com/build/checkout/build-overlay-checkout.md) for implementation.

After payment, Paddle sends the customer a receipt email with a downloadable invoice. The customer portal gives them a place to access past purchases without having to ask you.

## Where to start

{% card-group cols=3 %}
{% card title="Quickstart" icon="carbon:rocket" url="/get-started/quickstart" %}
Walk through the five-step framework-agnostic onboarding — sandbox, catalog, pricing page, checkout, webhooks.
{% /card %}
{% card title="Create a transaction" icon="carbon:purchase" url="/build/transactions/create-transaction" %}
Server-side flow for creating one-off transactions and handing them to Paddle Checkout.
{% /card %}
{% card title="Build a pricing page" icon="carbon:pricing-consumption" url="/build/checkout/build-pricing-page" %}
Drop in Paddle.js, render localized prices, and wire up a buy button on your site.
{% /card %}
{% /card-group %}