Paddle Billing


Webhooks let you get notified when things happen in Paddle. They're also called notifications.

Webhooks let you subscribe to events in Paddle. When a subscribed event occurs, Paddle sends a notification that includes a JSON payload with the updated entity.

They're great for things like:

  • Managing access to features in your app depending on a customer's subscription or invoice status
  • Syncing information with other systems that your business uses, like a CRM or ERP solution
  • Setting up notifications or automations

You can set up URLs to receive webhooks and the types of events you'd like to get from your Paddle dashboard under Developer Tools > Notifications.

Respond to notifications

The server that you set to receive notifications from Paddle should respond with an HTTP 200 status code within 5 seconds. This lets Paddle know that you successfully received the message.

If your server sends another kind of status code or doesn't respond, Paddle automatically retries using an exponential backoff schedule:

  • For sandbox accounts, we retry 10 times for just under 15 minutes.
  • For live accounts, we retry 60 times for just under 3 days. The first 20 attempts happen in the first hour, with 47 in the first day and 60 overall.

Use an exponential backoff calculator to visualize retries from the date now. Use these values:

Sandbox accountsLive accounts
Interval (secs)6060
Max retries1060

If retry attempts for a notification are exhausted, its status becomes failed. You can attempt to resend a notification using the replay a notification operation in the Paddle API.

We can't guarantee the order of delivery for webhooks. Store and check the occurred_at date against a webhook before making changes.

Allow Paddle IPs

To make sure you receive events from Paddle, we recommend that you add Paddle webhook IP addresses to your allowlist.

For security, only trust events that originate from Paddle webhook IP addresses.

Verify webhook signatures

Use the Paddle-Signature header included with each webhook to verify that received events are genuinely sent by Paddle.

See: Verify webhook signatures