citricguy/postmark-webhooks-laravel
A no-frills Laravel package that accepts Postmark webhooks and fires a single PostmarkWebhookReceived event for your listeners. No models or migrations, middleware verifies requests come from Postmark, and the webhook URL is configurable. Payload, email, record type, and message ID are available on...
The existing POSTMARK_WEBHOOK_FIREWALL_ENABLED setting now controls webhook authentication in every Laravel environment. Setting APP_ENV to local, testing, staging, or another non-production value no longer bypasses an enabled firewall.
The firewall remains enabled by default. Environments receiving real Postmark callbacks should retain it and verify their existing source-IP/proxy and Basic Auth configuration.
If local development or isolated tests intentionally accept synthetic requests, explicitly set:
POSTMARK_WEBHOOK_FIREWALL_ENABLED=false
Alternatively, configure the switch in the isolated test application. No new environment variable or opt-in setting is required. Older published configuration continues to work with the same keys; rebuild configuration caches after changing environment settings.
This is an intentional behavior change for non-production environments in the 2.3.0 minor release. Applications using ^2.0 can receive it during dependency updates, so review the setting before updating their lock files.
Production authentication and explicit disabling behave as before. The four Postmark IPs, optional Basic Auth, trusted-proxy behavior, PHP/Laravel support, endpoint and route name, payload handling, event API and dispatch semantics are preserved. Successful responses still default to HTTP 200 with ["success"], with the existing HTTP 202 compatibility setting available.
No database migrations, persistence, application-specific quotas, or Cloudflare Worker changes are introduced. Applications remain responsible for their own API throttling and callback processing policy.
Publish only after local verification and the existing GitHub compatibility and quality workflow pass for the reviewed commit. See the release runbook. No tag, push, GitHub release, or application deployment is performed by preparing these files.
Added a name to the webhook route.
Works with Laravel 11. Out of beta.
Supporting Laravel 11.
Beta release for Laravel 11.
Things seem to be working. Added unit tests for major features.
Still not ready for production, just cleaning up.
Do not use in production just yet. No tests are available yet and functionality is still being added.
How can I help you explore Laravel packages today?