★ Founding program: Growth free for 90 days for the first 50 SaaS teams →

Docs · Payments

Connect Paddle to UserJourney

For Paddle Billing. Trials, payments, failed charges and cancellations, on the person who made them, and in Traffic as revenue per channel.

1. Connect

In the dashboard, Setup › Payments › Paddle, paste an API key with the notification settings permission. UserJourney creates the notification destination in your Paddle account, keeps its secret and forgets the key. Sandbox keys work too.

Or add it by hand: in Paddle › Developer tools › Notifications, add the URL shown on the Setup page, with these events, and paste its secret key (pdl_ntfset_…):

customer.created
customer.updated
subscription.created
subscription.activated
subscription.trialing
subscription.updated
subscription.past_due
subscription.paused
subscription.resumed
subscription.canceled
transaction.payment_failed
transaction.past_due

2. Match each payment to its person

Customers are matched by email. To be exact, even when someone pays with another address, pass their id in the checkout's custom data:

Paddle.Checkout.open({
  items: [{ priceId: "pri_…", quantity: 1 }],
  customData: { uj_id: window.uj?.id() }, // the signed-in person, as you passed it to identify()
});

Check it works

Make a purchase in the sandbox, or send a test notification from Paddle: the person's timeline shows the trial or the payment, and Today and Traffic count them as paying.

Everything else is in the docs →

See where your users go

Free for your first 250 users. One script and one line of code.