- Authorize Paddle so Partnero receives the payments your customers make, including renewals.
- Add referral tracking to your site so Partnero knows which partner referred each customer.
Your program’s own integration guide, with your program ID already filled in, lives in the app under
Integration → Guides. It is the source of truth for the snippets below.
Step 1: Authorize Paddle
- In Paddle, go to Developer Tools → Authentication and generate an API key.
- In Partnero, go to Integration and scroll to Apps & Integrations.
- Click Authorize next to Paddle, paste the API key, and click Authorize.
Step 2: Add referral tracking to your site
This is what tells Partnero which partner referred a customer. Without it, Paddle sends Partnero payments it cannot attribute to anyone.Install the tracking script
Every method starts here. This snippet identifies visitors arriving through a partner’s referral link and stores the partner key in a first-party cookie. Copy your own snippet from the app — don’t retype the one below. It is generated per program and already contains your program ID:- Open the program and go to Integration.
- Copy the PartneroJS snippet shown there. It also appears inside every guide on the Guides tab.
</head> tag on every page a referred visitor might land on — ideally site-wide.
For reference, the snippet looks like this, where YOUR_PROGRAM_ID is filled in for you:
Then choose a method
- Overlay: Paddle.Checkout.open()
- Overlay: HTML data attributes
- User sign-up
Use this if you open the checkout with Paddle’s
Paddle.Checkout.open() method.The script wraps Paddle.Checkout.open so every checkout carries the partner key in customData. Place it
at the bottom of the page, directly above the closing </body> tag.In a refer-a-friend program the cookie is
partnero_referral instead of partnero_partner, and the referrer
is sent as referring_customer.key. The Overlay scripts are otherwise identical.What gets tracked
Once both steps are done, Partnero records completed purchases and new subscriptions made by your referred customers, and reverses the commission automatically when a payment is refunded.Attribution from your own backend
When a visitor arrives through a referral link, PartneroJS stores the partner key in a first-party cookie namedpartnero_partner (partnero_referral in a refer-a-friend program). That cookie is where the partner key comes
from — read it on your server from the incoming request headers.
If you create Paddle transactions server-side, pass the key in Paddle’s custom_data:
customer_key— the key of the customer in Partnero. If no customer matches it, Partnero falls back to treating the value as a partner key, which is why the Overlay scripts above can use the same field.partner_key— attribute the sale to that partner even when no customer record exists yet.client_reference_id— equivalent tocustomer_keyused as a partner key, for parity with Stripe.
custom_data. If your Paddle
custom data already uses a different field name for the customer, map it instead of renaming your own field:
open the Paddle integration in the app and set Paddle integration mapping.
Troubleshooting
Purchases are not appearing in Partnero
Purchases are not appearing in Partnero
Check step 2 actually ran. Open the customer in Partnero and confirm it exists and has a partner attached.
A payment Partnero cannot tie to a customer is not attributed to anyone.
Checkouts carry no attribution
Checkouts carry no attribution
PartneroJS alone does not reach Paddle. Confirm one of the Overlay scripts is on the page that opens the
checkout, below the checkout markup and above the closing
</body> tag, and that the
partnero_partner cookie is set when you arrive through a referral link.The customer exists but the sale is attributed to nobody
The customer exists but the sale is attributed to nobody
Partnero could not recognise the payer. The
customer_key in Paddle’s custom data must match the customer
key in Partnero character for character. Paddle does not fall back to matching on email the way Stripe
does, so an email-only match is not enough.Nothing is tracked after a renewal
Nothing is tracked after a renewal
Renewals arrive on the Paddle webhooks Partnero creates at authorization, so this needs step 1. Creating
the customer alone is not enough.
I am on Paddle Classic
I am on Paddle Classic
Paddle Classic uses
passthrough rather than custom_data, and its webhooks are not created
automatically. Follow Integrate Paddle Classic instead.Next steps
Paddle Classic
The pre-2023 Paddle integration
Transactions API
Record transactions yourself
