Upgrading from 0.x
Version 1.0.0 is a ground-up rewrite; treat it as a new major.
- No third-party webhook-engine dependency. The delivery engine is now entirely in-house.
Sending moved to the fluent
Pushery\Webhooks\Server\PendingWebhookbuilder. - Standard Webhooks is now the default signature. Deliveries carry
webhook-id/webhook-timestamp/webhook-signature: v1,<base64>over{id}.{timestamp}.{rawBody}— replacing 0.x's singleWebhook-Signature: t=<unix>,v1=<hex>header. Any Standard Webhooks SDK verifies them. Your existing consumers keep working: that 0.x dialect ships on as thePushery\Webhooks\Core\Signing\StripeStyleSchemereceive adapter, so an app that receives 0.x-format traffic verifies it by settingscheme => StripeStyleScheme::classon the source. (Do not reach forStripeScheme— it pins Stripe's ownStripe-Signatureheader and will not verify aWebhook-Signatureone.) - The 0.x
Webhooks\Signing\SignatureVerifieris removed. The 0.x helper you shipped to consumers is gone: a consumer now verifies with any Standard Webhooks SDK (in any language), or, while it is still on the old format, withStripeStyleSchemeduring the migration window. - Config was reorganized under
core/server/platform/client/dashboard(pluspulse/search/otel). Re-publishconfig/webhooks.phpand move your settings into the new tree; the old flat keys are gone. - New capabilities: inbound receiving, a self-service portal, endpoint health scoring, per-endpoint payload transforms, and an observability dashboard — all opt-in.
- Migrations were recut. Re-publish and review the migrations before upgrading a populated database.
Because this is a new major, review your integration end to end rather than expecting a drop-in bump.
The full history is in the CHANGELOG.