For AI agents and LLMs: a structured documentation index is available at /llms.txt. Every page has a Markdown sibling โ€” append .md to any URL.

Skip to content
Docs

Go-live checklist

Everything you need to do to transition to live when you've set up Paddle in sandbox.

AI summary

Transition from Paddle sandbox to live by mirroring account configuration, recreating your product catalog, swapping API keys and client-side tokens, and creating live notification destinations.

  • โ€ข API keys and tokens are completely separate between sandbox and live โ€” swap base URLs and remove Paddle.Environment.set('sandbox') from your frontend.
  • โ€ข Recreate your catalog in the live account โ€” GET entities from sandbox, adapt responses into create request bodies, and POST to live; all Paddle IDs will differ.
  • โ€ข Add pwCustomer to Paddle.Initialize() in live to ensure Paddle Retain works correctly, and create new notification destinations pointing to live webhook URLs with signature verification enabled.

Ready to start selling with Paddle? This guide walks through all the steps that you need to move from sandbox to live. By the end, you'll be ready to take your first real payment.

Going live involves swapping API keys in your existing integration, as well as recreating some data in your live account from sandbox. It's a good chance to review entities that you created to make sure you're only porting across good data.

Overview

  1. Complete initial configuration
    Port over key settings like your balance currency, whether prices include tax, and payment methods you support from your sandbox account.
  2. Add products to your catalog
    Create subscription plans, recurring addons, one-off charges, and other items in your live account.
  3. Update your integration
    Make some changes to your sandbox integration so that it points to your live account.
  4. Create notification destinations
    Create new notification destinations to get notified when events happen in your live account, and handle signature verification.
  5. Post-integration
    When you're live, sign up for updates about new features or changes to the Paddle API and developer tools.

Complete initial configuration

Configure key settings for your live account. You set most of these in your sandbox account when testing, so mirror these settings in your live account.

Mirror from sandbox

  • Your default payment link is a quick way to open Paddle Checkout for a transaction. It should be a page that includes Paddle.js, typically your checkout page.

    Go to Paddle > Checkout > Checkout settings, expand Default payment link, then add a default payment link.

    For your live account, you must use a real website (not localhost) that's passed domain verification.

    To learn more, see Set your default payment link

  • Choose the payment methods you want to use with Paddle Checkout. You can turn on payment methods in a couple of clicks โ€” no need to sign up for merchant or partner accounts.

    Go to Paddle > Checkout > Checkout settings, expand Payment methods, then check the payment methods you want to offer.

    Card is always on for checkout, and bank transfer is always on for invoices.

    To learn more, see Payment methods

  • Choose whether prices should be inclusive or exclusive of taxes by default. Typically, prices are exclusive of tax when selling to businesses and in regions with sales taxes.

    Go to Paddle > Checkout > Sales tax settings to set your sales tax setting.

  • Choose the currency that you want to hold earnings in. Paddle automatically converts payments in other currencies to your balance currency, ready for payout.

    Go to Paddle > Business account > Currencies to set your balance currency.

    We recommend choosing a currency that matches your bank account.

New steps

  • Paddle integrates with Retain to handle dunning and payment recovery. Retain automatically retries failed payments, sends reminders, and gives customers frictionless ways to retry payment.

    Go to Paddle > Retain to set dunning and recovery settings.

    To learn more, see Set up Retain

  • Paddle initiates payouts on the first of each month when your balance meets the minimum threshold. You can get paid by Paddle by bank transfer, PayPal, or Payoneer.

    Go to Paddle > Business account > Payouts > Payout settings to enter your payout details and set your minimum threshold.

    To learn more, see Payouts on the Paddle help center

Add products to your product catalog

Your product catalog contains the items purchased by customers. This includes subscription plans, recurring addons, and one-off items.

To start selling, recreate your sandbox product catalog in your live account. You should only create products that you plan to offer. We don't recommend copying test products to your live account.

Copy from sandbox

  • Products describe the items customers purchase. They have related prices that describe how they're charged. Add products and prices to Paddle for subscription plans, recurring addons, and one-off items.

    Go to Paddle > Catalog > Products to start adding products and prices.

    To learn more, see Create products and prices

  • Discounts let you reduce the amount a customer has to pay by a percentage or fixed amount. They can be one-time or recurring, and apply to an entire transaction or just items that you choose.

    Go to Paddle > Catalog > Discounts to start adding discounts.

    To learn more, see Create products and prices

  • Taxable categories determine what kinds of items you offer. They make sure that the correct amount of tax is calculated. Standard Digital Goods is available by default, but you should request approval for other taxable categories if you require them.

    Go to Paddle > Catalog > Taxable categories to request approval for other taxable categories.

    To learn more, see Taxable categories on the Paddle help center

Update your integration

Update your integration with Paddle so that it points to your live account rather than your sandbox account.

New steps

  • The Paddle API has different base URLs for sandbox and live accounts. Update your base URLs so Paddle knows which environment you're working with.

    Replace sandbox-api.paddle.com with api.paddle.com in API endpoint URLs.

  • API keys are separate for your sandbox and live accounts. Create new API keys for your live account, then swap sandbox keys for live ones in your code.

    Go to Paddle > Developer tools > Authentication to create API keys.

    Send a request to the /event-types endpoint to test your authentication.

    To learn more, see Manage API keys and Authentication.

  • Client-side tokens are separate for your sandbox and live accounts. You use a client-side token when including, initializing, and authenticating Paddle.js in your frontend. Create a new client-side token and replace the value in your frontend.

    Go to Paddle > Developer tools > Authentication to create a new client-side token.

    Swap the value for the token parameter passed to Paddle.Initialize() in your frontend.

    To learn more, see Create client-side tokens and Include Paddle.js.

  • Paddle.js integrates with Retain, so you don't have to include a separate Retain script. Client-side tokens for live accounts authenticate with both Paddle Billing and Paddle Retain, too. When transitioning to live, make sure you pass the pwCustomer parameter to Paddle.Initialize() when including Paddle.js so that Retain works correctly.

    Update Paddle.Initialize() calls to include pwCustomer, passing either the Paddle ID or email address of a customer.

    To learn more, see Initialize Paddle.js and Retain

  • Sandbox integrations use the Paddle.Environment.set() method to tell Paddle.js that you're working with a sandbox account. Remove this so Paddle.js defaults to the live environment.

    Remove Paddle.Environment.set("sandbox") from your frontend code.

    To learn more, see Paddle.Environment.set()

  • As your sandbox and live accounts are separate, all products, prices, discounts, and other entities in Paddle have different Paddle IDs. Price and discount IDs are used with Paddle.js to open or update items on a checkout. Replace sandbox Paddle IDs with live Paddle IDs.

    Replace price and discount IDs in your integration with price and discount IDs for the newly created entities in your live account.

    Price and discount IDs are typically used in Paddle.Checkout.open(), Paddle.Initialize(), and Paddle.Checkout.updateItems() methods. You might have passed them in HTML data attributes, too.

  • You may have used Paddle IDs for price, discount, or entities in your sandbox in logic that handles subscription lifecycle events like upgrades or downgrades. Replace sandbox Paddle IDs with live Paddle IDs.

    Replace price and discount IDs in your code that handles subscription lifecycle events with price and discount IDs for the newly created entities in your live account.

    You might have used them as part of pricing pages, as well as upgrade or downgrade workflows.

Create notification destinations

Notifications let you get notified when key events happen in Paddle. They can be delivered as webhooks or emails. You'll typically use webhooks to keep your app in sync with Paddle.

To receive webhooks for live events, create new notification destinations in your live account. We recommend using separate webhook destination URLs for your sandbox and live accounts.

Copy from sandbox

  • Create notification destinations to tell Paddle where to deliver webhook notifications and which events you want to receive notifications for.

    Go to Paddle Developer tools > Notifications to create notification destinations.

    To learn more, see Work with notification destinations

New steps

  • Paddle sends webhooks from different IP addresses for sandbox and live environments. For security, we recommend that you allowlist Paddle IP addresses and reject responses from others.

    Allowlist Paddle IP addresses on your webhook server.

    To learn more, see Webhooks

  • All webhooks sent by Paddle include a signature that you can use to check that they were genuinely sent by Paddle. We recommend that you verify webhook signatures to make sure that they weren't tampered with in-transit.

    Build logic to handle webhook signature verification.

    To learn more, see Verify webhook signatures

Post-integration

Once you've completed the preceding steps, you're live โ€” congratulations. We recommend keeping up-to-date with changes to the Paddle platform.

  • We document all changes to our API and developer tools on our developer changelog. We recommend all developers check our changelog regularly or sign up for emails to get updates about new features and changes.

    Check our developer changelog and use the email form to sign up for updates.

    To learn more, see Developer changelog

  • We post details of any incidents impacting the Paddle platform in real-time on our status page. We recommend subscribing to updates by email, webhook, RSS, or Slack.

    Check our status page and subscribe to updates.

    To learn more, see Paddle status

  • Your API keys grant access to the data in your Paddle system. It's good practice to rotate your API keys periodically and revoke keys that you're no longer using.

    Go to Paddle > Developer tools > Authentication to create new API keys. Swap API keys for your new keys, then revoke old keys.

    To learn more, see API keys and Rotate API keys.

Was this page helpful?