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.
Set up
Section titled “Set up”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.
How the catalog maps
Section titled “How the catalog maps”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.
The default payment link
Section titled “The default payment link”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.
Good to know
Section titled “Good to know”- The test card
4242 4242 4242 4242works in the sandbox. - Going live additionally requires approving your website’s domain under Checkout → Website approval.