Paddle sales, next to the visit that bought.

Tapll reads Paddle Billing notifications, checks each one against your destination’s secret key, and counts the money in its own block. Pass the visit’s id through Paddle.js `customData` and a sale is tied to the first-touch channel and campaign of that visit.

What you get. Once Paddle is connected.

  • Revenue for the website

    Sales, trials, renewals, cancellations and refunds from Paddle, with MRR and a breakdown of how it moved.

  • Money at each source

    Sales per channel and campaign when `customData` carries `tapll.sessionId()`, labelled as what goes with a source, never as its cause.

  • Kept apart

    Paddle money is never added to in-app revenue, nor to Stripe: each source is its own block.

What it needs.

  • A webhook URL created in Tapll and added in Paddle under Developer tools → Notifications as a webhook destination.
  • The destination’s secret key pasted back into Tapll.
  • `tapll_session_id` set from `tapll.sessionId()` in the `customData` of `Paddle.Checkout.open`, which Paddle copies onto the transaction and the subscription.

Revenue setup in the docs

What Tapll keeps, and what it does not.

  • Amounts as Paddle reports them, product, plan and the notification behind each change.
  • The customer only as a keyed hash: no email, name or address reaches Tapll.
  • No country for a sale: Paddle’s notifications do not carry the buyer’s country, and Tapll does not guess one.

Questions about Paddle.

Is this Paddle Billing or Paddle Classic?

Paddle Billing. Tapll has no Classic integration.

Does a sale without a visit still count?

Yes, as revenue with no channel; the panel shows how much revenue has none.

Can I use Paddle and Stripe on the same site?

Yes. They describe different purchases, so each is counted on its own and never summed with the other.

Other integrations.

See who is on your app and site right now. No analyst, no query building.