Skip to main content

Webhook Security

FLTR signs every webhook with HMAC-SHA256 to prove authenticity.

Signature Header

Verification

Always verify signatures before processing webhooks.

Python

JavaScript

Go

Best Practices

Use HTTPS

FLTR only sends webhooks to HTTPS endpoints in production.

Verify Every Request

Never trust webhook payloads without signature verification.

Use Raw Body

Verify against the raw request body, not parsed JSON.

Rotate Secrets

Rotate webhook secrets periodically (every 90 days).

Return 200 Quickly

Process webhooks asynchronously:

Testing

Generate Test Signature

Send Test Webhook

Troubleshooting

Signature Mismatch

Common causes:
  1. Using parsed JSON instead of raw body
  2. Wrong secret
  3. Extra whitespace in body
  4. Character encoding issues

Debugging

Log both signatures:
Compare byte-by-byte to find discrepancies.