Skip to content
Get the kit

Paddle

Paddle is a merchant of record: it is the legal seller in each transaction and owns global sales tax, PCI, refunds, and chargebacks. Like Polar, there is no tax configuration on your side.

Setup, step 7 covers the sandbox seller, the API key, the seed, the default payment link, and the webhook. Set PADDLE_SANDBOX=true in backend/functions/.env while you test. API keys expire, 90 days by default and one year at most; a dead key is the first thing to check if billing stops.

Paddle has no lookup-key field, so the script stores the kit’s plan keys in each price’s custom data. Trials live on prices in Paddle’s model, so every trial-bearing plan gets two seeded variants: a cardless-trial price and a base price; the backend picks the right one per user, with trial-once enforced server-side.

Paddle refuses to create any transaction until your account has a default payment link, the page its checkout opens on. The website template ships one at /pay; the checkout runs in Paddle’s overlay on that page, and the extension only ever opens a URL. If a checkout fails with transaction_default_checkout_url_not_set, that step was skipped; the kit’s error message says so.

  • The test card 4242 4242 4242 4242 works in the sandbox.
  • Going live additionally requires approving your website’s domain under Checkout → Website approval.