Webhooks & Push Notifications
Webhooks deliver events such as auto-protection changes, failban actions and rule matches to your own endpoint as JSON. Every payload is signed with HMAC-SHA256.
Creating a webhook
Section titled “Creating a webhook”-
Go to Console → WAF → [your domain] → API Keys and open the Webhooks section.
-
Click the new-webhook button and fill in the form:
- Name — 3–8 alphanumeric characters
- URL — your
http://orhttps://endpoint (credentials embedded in the URL are not allowed) - Event type —
challenge,failbanorrule - Throttle window — between 1 minute and 24 hours
- (Optional) Basic Auth username and password
-
Save, then use the Test button to send a sample payload to your endpoint.
Verify every incoming request with the X-HEIMWALL-Signature header: compute the HMAC-SHA256 of the raw request body with your webhook secret and compare it to the hex value in the header. If they match, the payload came from HEIMWALL and has not been tampered with.
X-HEIMWALL-Signature: <hex-encoded HMAC-SHA256 of raw request body>Event types and payload formats
Section titled “Event types and payload formats”challenge — auto-protection activated/deactivated
Section titled “challenge — auto-protection activated/deactivated”Fires when an automatic or manual challenge is enabled or disabled:
{ "auto_challenge": "on", "challenge_type": "js", "activation": "2026-10-20T14:32:05Z"}auto_challenge:on|offchallenge_type:js|captchaactivation: RFC3339 timestamp
failban — IP banned/unbanned
Section titled “failban — IP banned/unbanned”Fires when an IP is added to or removed from the failban cache:
{ "is": "add", "ip": "203.0.113.42", "expire": "2026-10-20T15:02:05Z", "adding": "2026-10-20T14:52:05Z"}is:add|deleteip: the banned IPexpire: when the ban ends (RFC3339)adding: when the ban was applied (RFC3339)
rule — a rule with the webhook action matched
Section titled “rule — a rule with the webhook action matched”Fires when a rule containing the webhook action matches a request:
{ "rule": "admin-protect", "timestamp": "2026-10-20T14:32:05Z", "ray": "7f3a9c2e1b4d", "ip": "203.0.113.42", "host": "example.com", "request": "GET /wp-admin HTTP/2", "status": 403, "bytes": 1024, "duration": 12, "tls": "TLS 1.3", "referer": "", "useragent": "Mozilla/5.0 ...", "backend": "default", "server": "edge-ist-1"}To add a webhook trigger to any rule: define your conditions on Console → WAF → [your domain] → Rules → New Rule and tick webhook as an action.
Mobile push notifications
Section titled “Mobile push notifications”Install the HEIMWALL mobile app (iOS and Android) and sign in with your account: your device registers automatically and starts receiving push notifications — so you hear about an attack or a server failure without checking the console.
Manage registered devices under Settings → Profile → Devices: you can remove a device (it stops receiving push) or send it a test notification.
Events that trigger a push:
- Origin health — origin unreachable / back online
- Maintenance mode — enabled / disabled
- Deployment (ZDD) — started / succeeded / failed / incomplete
- Security — new IP ban (failban), auto-protection engaged / lifted, protection mode changed, waiting room active, traffic spike
- SSL — certificate expiring / auto-renewal failed
- Quota — bandwidth usage at 80% warning / cap reached, domain traffic alert and cutoff notifications
Push can be toggled per event type. The email channel is independent of push — you can additionally enable email notifications for the same events.