Webhooks and APIIntegrations

Paddle Billing v2

Receive Paddle subscription events in Wexio flows

Wexio verifies Paddle Billing v2 signatures natively. Paste the notification-destination signing secret (the pdl_ntfset_… value) and Wexio handles the Paddle-Signature header, including multi-h1 rotation.

This mode covers Paddle Billing v2, the current product. Paddle Classic uses RSA signatures and is not natively supported. Proxy it through Make, n8n or Zapier.

Provider docs: Setting up webhooks in Paddle

Setup

1. Connect It in Wexio

Go to Settings → Webhooks and API → Webhooks → New connection → Inbound and click the Paddle Billing chip under Dedicated providers, or set Authentication mode to Paddle Billing v2 manually. Copy the Wexio endpoint URL.

2. Set Up the Provider

In Paddle, go to Developer Tools → Notifications → Add destination.

FieldValue
Endpoint URLThe Wexio endpoint URL
EventsThe events you need, for example subscription.created, transaction.completed, customer.created

Paddle shows the signing secret (pdl_ntfset_…) once. Copy it into the Wexio Signing secret field.

3. Resolve Contacts

Identifier typeJSON pathNotes
Email$.data.customer.emailCustomer events
Email$.data.billing_details.emailTransaction events

4. Capture the Schema

Tap Capture schema in Wexio. Trigger a test event from the Paddle dashboard (the Simulate event feature works), or wait for a real one.

5. Bind a Flow

Add a Webhook Received trigger on a flow, pick this connection and branch on {{webhook.event_type}}.

Timestamp Tolerance

Paddle signs with a timestamp, and Wexio rejects anything outside ±5 minutes. If Paddle retries a delayed event past the window, Wexio rejects it. Paddle eventually stops retrying.

Rotation

Paddle supports dual signing during rotation. To rotate:

  1. In Paddle, click the rotate button on the destination.
  2. In Wexio, open the connection, click Change under Authentication and paste the new secret.

Paddle signs with both secrets during the grace window.

Troubleshooting

SymptomFix
UNAUTHORIZED: Paddle signature mismatchRe-copy the signing secret and confirm the environment (sandbox or live)
IDENTIFIER_NOT_FOUNDThe customer's email is not in Wexio yet. Create the contact with the People API, or branch in the flow
INVALID_JSONCheck that your Paddle destination is set to v2, not Classic

Was this page helpful?

On this page