Affiliate tracking usually fails at one handoff. A buyer clicks a partner link, leaves your site, completes payment, and the referral ID never reaches the payment event.
A Paddle affiliate plugin connected to Rewardful must carry that referral into checkout, then receive Paddle’s payment updates. Get both parts right and you can connect paid subscriptions to the right partner. Get either wrong and clicks look healthy while commissions disappear.
Build the connection in the order below. Test it before you invite affiliates.
Connect a Paddle Affiliate Plugin to Rewardful
Start with the payment product. Rewardful’s documented Paddle connection works with Paddle Classic only. It does not support Paddle Billing.
Confirm you are using Paddle Classic
Check the payment dashboard and the checkout code your site uses. Rewardful’s Paddle Classic integration guide is clear on this limitation.
Stop the setup if your business uses Paddle Billing. Paddle Billing uses a different checkout and webhook model. Do not try to combine its notification secrets, API fields, or checkout settings with a Classic setup.
A payment processor migration is not a small configuration change. It can affect subscriptions, renewals, tax handling, customer records, and affiliate attribution.
Before you continue: confirm that your live checkout is Paddle Classic, not only a test account or an old code snippet.
Map who controls the checkout
Write down the systems involved before changing settings:
- Your public landing page or WordPress site.
- The tool or plugin that opens Paddle checkout.
- Rewardful, which captures and attributes referrals.
- Paddle Classic, which sends payment events to Rewardful.
Your Paddle affiliate plugin may manage the checkout button, but it still needs a way to pass custom checkout data. Plugin labels can vary by version. Look for documented support for Paddle Classic checkout options or custom passthrough data.
If the plugin cannot send a passthrough value to Paddle checkout, it cannot complete Rewardful’s documented tracking flow on its own.
Before you continue: record the live site domain, checkout page, plugin version, and the person who can update each system.
Add the Paddle Classic Connection
Complete the account connection from verified Paddle and Rewardful accounts. Don’t copy keys from an email, shared document, or an old browser tab.
Add the Paddle public key in Rewardful
In Rewardful, choose Paddle as the payment processor during the integration setup.
Then open Paddle Classic and go to Developer Tools > Public Key. Copy the public key exactly as shown, including the BEGIN PUBLIC KEY and END PUBLIC KEY markers. Paste it into Rewardful.
The public key is part of the Classic connection. It is not a Paddle API key. Do not replace it with a Billing notification secret or a private credential.
Before you continue: compare the first and last lines of the pasted key with the key in Paddle. Missing markers or damaged line breaks can break the connection.
Add Rewardful’s webhook endpoint in Paddle
A webhook is an automated server-to-server payment notification. Rewardful creates a unique webhook endpoint during its Paddle setup.
In Paddle Classic, go to Developer Tools > Events. Find the section labeled “URLs for receiving webhooks.” Paste the Rewardful endpoint and select Save Changes.
Use the event requirements shown in your Rewardful setup screen. Don’t guess event names or add random notifications because a blog post used them years ago.
Rewardful uses Paddle events to record subscriptions, successful payments, and full or partial refunds. Its Paddle account data guide explains that a valid referral can create a lead, while a successful payment creates the sale and related commission.
Before you continue: reopen Paddle Events and confirm the Rewardful endpoint is still present after saving.
Pass the Referral ID Into Paddle Checkout
Connecting the accounts is only half the work. Rewardful still needs the referral ID in the checkout request.
A completed payment does not prove affiliate attribution. The referral must be present in checkout data before Paddle sends the payment event.
Install Rewardful JavaScript on landing pages
Install the Rewardful JavaScript on the site pages where affiliate visitors arrive. The script captures the referral created by an affiliate link.
Load it before the checkout button runs. Don’t add it only to a thank-you page or account area. By then, the checkout request has already happened.
A visitor who arrives through a partner link should have a referral value available before they select a plan.
Before you continue: open a private browser window, visit a real affiliate link, and confirm the landing page loads without JavaScript errors.
Send the referral through passthrough
Paddle Classic uses passthrough to carry custom data with a checkout. Think of passthrough as a small data package attached to the payment request.
Rewardful’s documented setup reads the referral from window.Rewardful.referral, then sends it through Paddle.Checkout.open() in a JSON passthrough value. The expected structure contains the rewardful object and its referral value.
Do not rename the documented object or replace the referral with an affiliate email, coupon code, or WordPress user ID. Rewardful expects the referral UUID, which is the unique referral string created after an affiliate visit.
Your plugin may call this field “custom data,” “checkout data,” or “passthrough.” The exact label depends on the plugin version. Follow its Paddle Classic documentation, but keep Rewardful’s referral structure unchanged.
For visitors without a referral, follow your plugin’s documented handling. Do not invent placeholder referral values.
Before you continue: inspect the plugin’s generated checkout request or ask its developer to confirm that the Rewardful referral enters Paddle’s passthrough data.
Run a clean end-to-end test
Use a private browser session and a fresh affiliate link. Complete a permitted test checkout in your approved test environment.
Then check four records:
- Rewardful recorded the referral and lead.
- Paddle created the expected checkout or order record.
- Rewardful recorded the payment as a sale after payment succeeds.
- The correct campaign created the expected commission.
Rewardful’s Paddle integration overview is useful when you need to confirm the supported connection before troubleshooting custom checkout code.
Before you continue: save the affiliate ID, customer email, Paddle order identifier, sale amount, and resulting commission in one test record.
Set Commission Rules Before Recruiting Partners
A referral click is not a result. A paid customer who meets your published terms is the result.
Configure the campaign rules
Create the campaign in Rewardful before you share affiliate links. Set the commission type, amount, recurring period, and payout eligibility rules.
Rewardful supports fixed and percentage-based commissions. You can also set recurring commissions or limit rewards to a set number of payments or months.
Base your commission on the amount the customer actually pays. Discounts, account credits, refunds, and partial refunds can change the final sale amount. A customer with a $100 plan and a $25 discount has paid $75. A 30% commission on that payment is $22.50, not $30.
State whether you pay on monthly renewals, annual plans, upgrades, refunds, and cancelled subscriptions. Partners need one answer, not a case-by-case explanation.
Before you continue: test your commission rate against a discounted subscription and confirm the calculation matches the campaign rule.
Add custom rules after the core flow works
Separate annual and monthly plans if they use different commission terms. You may also create different campaigns for content affiliates, agencies, or strategic partners.
Do not add coupon logic, special bonuses, or custom code before basic referral tracking works. Each extra rule creates another place for attribution to fail.
Review the current Rewardful Paddle help collection before changing the payment setup or adding custom behavior.
Keep an earnings record that can be checked
Keep one row per affiliate sale in a spreadsheet or database. Include the affiliate, customer, Paddle order ID, plan, amount paid, Rewardful commission, refund status, payout status, and review date.
Keep the original values when a refund or correction occurs. Store the reviewer decision and correction in separate fields. This gives finance a usable history when a partner disputes a commission.
Measure approved commissions, not clicks or pending rewards. High click volume can still produce weak revenue or expensive correction work.
Before you continue: review 25 recent referred customers before you scale the program. Include a renewal, a refund, a discounted payment, and an unsuccessful payment if available.
Secure the Connection and Fix Attribution Failures
Affiliate tracking handles revenue data, partner records, and customer identifiers. Treat it like a payment workflow.
Protect keys and validate incoming events
Rewardful’s documented Paddle Classic setup asks for a Paddle public key. It does not require you to place a Paddle API key in browser code.
Never put non-public API keys, account passwords, webhook secrets, or Rewardful administrator credentials inside page scripts, plugin screenshots, public repositories, or shared spreadsheets. Store private credentials in approved server-side configuration or secrets storage. Limit access to staff who maintain billing.
If your WordPress plugin or application receives Paddle webhooks directly, validate every event before you change a subscription or commission record. A browser redirect is not proof of payment.
Paddle’s current webhook signature documentation describes the Paddle-Signature header and secret-key validation used for Paddle Billing. That method is separate from Paddle Classic. Do not paste a Billing secret into this Rewardful Classic setup. Ask your plugin vendor how it validates Classic webhook signatures before enabling any direct webhook handler.
Before you continue: confirm which system receives each webhook and remove access for former staff, agencies, or unused plugins.
Troubleshoot the three common failures
| Problem | Likely cause | Fix |
|---|---|---|
| Referral is missing | Rewardful JavaScript did not load on the first landing page, or the referral was not passed to checkout. | Test a fresh affiliate link in a private browser. Confirm the script loads before checkout and confirm passthrough contains the referral UUID. |
| Payment is untracked | The Rewardful webhook endpoint is missing, unsaved, or the checkout used a different Paddle environment. | Recheck Paddle Events, the saved Rewardful endpoint, the customer email, and the Paddle order record. |
| Commission is wrong | The campaign rule, discount, refund, or partial refund changed the paid amount. | Compare the Paddle amount actually paid with the Rewardful sale, campaign terms, and refund record before editing anything. |
Do not keep retrying a permission error, broken checkout field, or unsupported processor. Fix the source problem, run one new test, and record the outcome.
Keep a last trusted commission report. If a checkout update breaks attribution, your team still has a verified payout record while the issue is repaired.
Build a Tracking System You Can Audit
A Paddle affiliate plugin works when the referral reaches Paddle Classic checkout, Rewardful receives the right payment events, and your campaign rules match the revenue you collected.
Keep the first version simple. Test referral capture, passthrough, payment events, refunds, and commission calculations before adding custom rules.
The useful metric is approved and reconciled commissions, not dashboard activity. That is the record your partners and finance team will need when payment questions arrive.
