Docs menu

Paddle

Attribute every Paddle payment to the visit that brought it.

Updated 21 Oct 2026

Connect

  1. In Paddle, open Developer tools → Notifications → New destination. After saving, copy the destination's secret key.
  2. In atrby, open Revenue → Payment processors → Connect, choose Paddle and paste the secret.
  3. 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.

Browser
const ids = window.atrby?.ids(); // { atrby_sid, atrby_site }
Browser · Paddle.js
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.
Was this helpful?
Ask a question about this page