Paddle events, straight into ntfy

Every transaction, renewal, or failed payment — posted to ntfy the moment it happens. No ntfy app to install, no monthly automation subscription.

The gap this fills: Paddle doesn't ship an official ntfy app. If you want transaction, renewal, or failed payment to show up in ntfy the moment it happens, the usual options are a paid third-party bot, custom code, or routing everything through a $20–50/month automation platform just to move one webhook from one URL to another. ZestyGlue does exactly that one thing for $9/month.

What it looks like

ZestyGlue
Paddle — Transaction · Completed
29.00 USD

A real Paddle event, shown as ZestyGlue formats it for ntfy.

Setup — about two minutes

  1. Create the connector. In ZestyGlue, start a new Paddle → ntfy connector. You'll get a unique webhook URL right away.
  2. Point Paddle at it. Go to Developer Tools → Notifications → add destination, paste in your ZestyGlue webhook URL, and select the events you want.
  3. Copy the secret key. Paddle shows a secret key for your notification destination — paste that into ZestyGlue's connector setup so every event can be verified as genuinely from Paddle.
  4. Point ntfy at ZestyGlue. Pick any topic name — e.g. https://ntfy.sh/your-secret-topic — enter it into ZestyGlue, and subscribe to that same topic in the ntfy app or web client.
Under the hood: Paddle signs its payload with a timestamped HMAC in the paddle-signature header — ZestyGlue verifies both the signature and, implicitly, that the request wasn't replayed from days ago.

Events you can forward

transaction.completed transaction.payment_failed subscription.created subscription.canceled subscription.updated

Questions

Is my Paddle Webhook Secret Key safe with ZestyGlue?

It's encrypted at rest with Fernet symmetric encryption before it ever touches disk, it's never logged, and it's never displayed again in the dashboard after you enter it — only a masked placeholder is shown.

Does this work with Paddle Classic or only Paddle Billing?

This connector is built for Paddle's current Billing API (v2) webhook format. Paddle Classic uses a different payload shape and isn't supported.

Can I track failed renewals separately?

Yes — subscribe to transaction.payment_failed as its own event alongside transaction.completed.

Do I need to self-host ntfy?

No, the free public ntfy.sh server works fine for most people — just pick an unguessable topic name.

What happens if my ZestyGlue subscription lapses?

Events are silently dropped rather than causing errors on Paddle's side — Paddle never sees a failure response, so it won't retry aggressively or flag your webhook as broken. Your dashboard will simply stop showing new events until you resubscribe.

Connect Paddle to ntfy — start free trial
14-day trial, no credit card required. See all 21 sources and 8 destinations →