Connect Paddle
Checkout Sync works with Paddle Billing (the current Paddle). Paddle's webhooks don't include the buyer's email, so we need a key that can look it up. With that key we also add the webhook for you.
- In Paddle, open Developer tools → Authentication.
- Under API keys, press New API key and name it Checkout Sync.
- Give it these permissions and leave the rest off:
Permission Access Why Customers Read To find the buyer's email and name Subscriptions Read To name the product on cancellations and failed payments Transactions Read To import past customers Notification settings Write To add (and later remove) our webhook - Save, copy the key (it starts with
pdl_live_apikey_) and paste it into your settings under Paddle.
You'll see a new notification destination called Checkout Sync (sends sales to Kit) in Paddle under Developer tools → Notifications. Press Disconnect in your settings and we delete it again.
Test it
The quickest test: press Send a test sale next to Paddle in your settings. It goes to your own Kit address and is marked as a test.
Paddle's webhook simulator (Developer tools → Simulations) works too. Here's what you'll see under Recent activity:
- A simulated sale, approved refund, failed renewal or cancellation with Paddle's sample data shows as Skipped: "Test customer: Paddle's simulator uses made-up customers, so there's no one to update in Kit." That still proves the webhook reaches us and its signature checks out.
- Simulated events that change nothing for a buyer (a subscription created, or updated without a cancellation; a card declined at checkout; a $0 transaction such as a free trial starting) don't show at all.
- If you put the id of a real customer from your Paddle account into a simulated event, it's handled like the real thing: a sale is recorded in Kit and counts toward your plan.
- Now and then Paddle is slow to answer when we look up the buyer. The event then shows as Waiting, "Couldn't reach Paddle yet, trying again", and goes to Kit by itself, usually within minutes.
With a sandbox key (it starts with pdl_sdbx_apikey_) every sandbox purchase is a test: the buyer is tagged Checkout Sync test and your automations run, but no purchase or fields are written in Kit.