Skip to main content
@pylonsync/webhooks sends outbound webhooks to your customers’ endpoints when domain events happen, for example invoice.paid to a customer’s URL. It signs each webhook with Svix-style HMAC-SHA256, so receivers that use Svix’s reference verifier work without changes.

Install

Config

Dispatch an event

The plugin enqueues delivery jobs to every matching endpoint through Pylon’s ctx.scheduler.runAfter. Failed deliveries retry on the configured schedule: 5s, 5m, 30m, 2h, 5h, 10h, 14h, then dead (the default).

Receiver verification

Receivers verify with the same algorithm Svix’s reference verifier uses:

Endpoints

Customers register webhook URLs by inserting into the WebhookEndpoint entity: Tenant-scoped policy: auth.tenantId == data.applicationId or auth.is_admin. Apps that need a stricter policy (for example, only the owner role) override this in their manifest.

Delivery audit

Every attempt writes a WebhookAttempt row: This is a read-only entity. Customers can view their endpoint’s delivery history, but they cannot change it.

Secret rotation

Both signatures appear in the webhook-signature header (v1,<sig-old> v1,<sig-new>). Receivers accept either signature. This gives customers a window to rotate their stored secret without dropping deliveries.