Paddle
Attribute every Paddle payment to the visit that brought it.
Updated 21 Oct 2026
Connect
- In Paddle, open Developer tools → Notifications → New destination. After saving, copy the destination's secret key.
- In atrby, open Revenue → Payment processors → Connect, choose Paddle and paste the secret.
- atrby shows your webhook URL. It looks like
https://app.atrby.site/api/webhooks/paddle/…. Add it in Paddle and send these events:transaction.completed.
The connection shows as active once the first webhook arrives. Webhooks with a wrong signature are rejected.
Pass the visit ids
Where they go: Transaction custom_data, set with customData when you open the checkout. Read them in the browser with atrby.ids() and send them to your server with the checkout request.
const ids = window.atrby?.ids(); // { atrby_sid, atrby_site }const ids = window.atrby?.ids(); // { atrby_sid, atrby_site }
Paddle.Checkout.open({
items: [{ priceId: "pri_growth_monthly", quantity: 1 }],
customData: { ...ids, atrby_uid: user.id },
});atrby_uid is your user id, from identify. It's optional, but it credits payments made long after the first visit.
What gets recorded
- Each payment once, however often Paddle retries the webhook.
- Refunds aren't read from Paddle yet, so revenue is gross of refunds.
- The amount is the transaction's grand total, tax included.