Attribute Paddle revenue to signups
Pass the visitor id as customData when you open checkout.
Before you start
Signups must already be tracked - revenue is attributed through the signup it belongs to. See Signup tracking.
Optional. With your payment provider connected and signups tracked, Chartsy already matches revenue to each signup by email - no payment code needed. This step only covers people who pay with a different email than they signed up with. See how revenue attribution works.
1Pass the visitor id as customData
When you open checkout. Chartsy copies it from the transaction onto the customer automatically - the checkout is all you touch.
const visitorId = document.cookie.match(/(?:^|; )chartsy_visitor_id=([^;]*)/)?.[1] || '';
Paddle.Checkout.open({
items: [{ priceId: 'pri_...', quantity: 1 }],
customData: { chartsy_visitor_id: decodeURIComponent(visitorId) },
});Creating transactions from your server?
Put the same custom_data on the transaction.


