For SaaS apps that want to fire webhooks at their CUSTOMERS’ endpoints when domain events happen (“invoice.paid” → customer’s URL). Svix-style HMAC-SHA256 signatures so receivers using Svix’s reference verifier work unchanged.Documentation Index
Fetch the complete documentation index at: https://docs.pylonsync.com/llms.txt
Use this file to discover all available pages before exploring further.
Install
Config
Dispatch an event
ctx.scheduler.runAfter. Failed deliveries retry on the configured schedule (default: 5s → 5m → 30m → 2h → 5h → 10h → 14h → dead).
Receiver verification
Receivers verify with the same algorithm Svix’s reference verifier uses:Endpoints
Customers register webhook URLs by inserting into theWebhookEndpoint entity:
| Field | |
|---|---|
applicationId | Tenant scope (usually the customer’s org id). |
url | Their endpoint URL. |
secret | HMAC secret (use whsec_<base64> format for Svix compatibility). |
eventTypes | JSON array of subscribed event types. Empty = all. |
headers | Optional extra headers to attach on each delivery. |
disabled | Skip delivery without deleting. |
auth.tenantId == data.applicationId or auth.is_admin. Apps that want a stricter ACL (e.g. only owner role) override this in their manifest.
Delivery audit
Every attempt writes aWebhookAttempt row:
| Status | When |
|---|---|
pending | Scheduled, not yet delivered. |
succeeded | HTTP 2xx response. |
failed | HTTP 4xx/5xx or network error. Retry scheduled. |
dead | All retries exhausted. Manual reprocess required. |
Secret rotation
webhook-signature header (v1,<sig-old> v1,<sig-new>). Receivers accept either — gives customers a window to rotate their stored secret without dropping deliveries.