Integrate Paddle with Icodrip using API keys and webhooks for automatic conversion tracking.
To connect Paddle, you need a Paddle account with at least one product configured. Paddle operates as a merchant of record, so the integration works slightly differently than direct payment processors like Stripe.
You will need your Paddle API key and your vendor ID, both available in the Paddle dashboard under Developer Tools. Make sure you are using the correct environment — Paddle has separate sandbox and production environments with different credentials.
If you are using Paddle Billing (the newer version), the setup process uses Paddle's v2 API. If you are on Paddle Classic, some fields may be in different locations. This guide covers both versions.
In your Icodrip dashboard, navigate to Settings > Integrations and click "Connect Paddle." Enter your Paddle API key in the provided field. This key allows Icodrip to verify incoming webhook events and optionally query the Paddle API for additional transaction details.
For Paddle Billing (v2), use an API key with the "Transaction Read" and "Subscription Read" scopes. You do not need write access. For Paddle Classic, use your vendor auth code found in the Paddle dashboard.
Icodrip stores your API key encrypted at rest. It is never exposed in the frontend or included in any client-side code. You can rotate your key at any time by updating it in the integration settings.
Paddle needs to send payment events to Icodrip via webhooks. Copy the webhook URL from your Icodrip integration settings — it looks like https://app.icodrip.com/api/webhooks/paddle.
In the Paddle dashboard, go to Developer Tools > Notifications and create a new webhook destination. Paste the Icodrip webhook URL and select the following events: transaction.completed, transaction.updated, subscription.created, subscription.updated, and subscription.canceled.
Paddle signs every webhook with a shared secret. Icodrip automatically verifies this signature before processing any event. If signature verification fails, the webhook is rejected with a 401 status code.
After configuring the webhook, trigger a test event from the Paddle dashboard. Most Paddle environments allow you to send a test notification to verify the endpoint is reachable. Check the Icodrip webhook logs to confirm the event was received and processed.
For a full end-to-end test, create a test transaction in Paddle's sandbox environment. Use a tracking link to simulate the affiliate click, then complete the purchase. The conversion should appear in your Icodrip dashboard within a few seconds.
Paddle events include the passthrough field (Classic) or custom_data field (Billing v2) where you can include the Icodrip click ID for server-side attribution. This provides the most reliable attribution method.
The most frequent issue with Paddle integrations is using sandbox credentials in production or vice versa. Double-check that your API key matches your current environment. Paddle sandbox and production have completely separate API endpoints.
If webhooks are not arriving, verify that your Paddle notification destination is active and not paused. Paddle sometimes disables destinations that return too many errors. Check the notification logs in Paddle for delivery status.
For Paddle Billing v2, make sure your webhook events are correctly configured. The event names changed from v1 — for example, payment_succeeded became transaction.completed. Using the wrong event names will result in Icodrip ignoring the webhook.