Signature Verification
Every webhook request includes an HMAC-SHA256 signature in theX-Replyify-Signature header. Use this to verify the request authenticity.
How It Works
- Replyify generates a unique secret for each webhook
- Each request is signed using HMAC-SHA256 with this secret
- The signature is included in the
X-Replyify-Signatureheader - Your server verifies the signature before processing
Signature Format
sha256=.
Verification Examples
Security Best Practices
Always Verify Signatures
Never process webhook payloads without verifying the signature first.
Use Timing-Safe Comparison
Use constant-time string comparison to prevent timing attacks.
Use HTTPS Only
Only use HTTPS endpoints. Replyify will not send webhooks to HTTP URLs.
Store Secrets Securely
Store webhook secrets in environment variables, not in code.
Rotating Secrets
If your webhook secret is compromised:- Go to Settings → Webhooks
- Click on the affected webhook
- Click Regenerate Secret
- Update your server with the new secret
- The old secret is immediately invalidated
IP Allowlisting
For additional security, you can allowlist Replyify’s IP addresses. Contact support@replyify.ai for the current list of IP addresses.Replay Attack Prevention
To prevent replay attacks, check the timestamp in the payload:Troubleshooting
”Invalid signature” errors
- Check the secret: Ensure you’re using the correct webhook secret
- Check encoding: Use UTF-8 encoding for the payload
- Check raw body: Verify the signature against the raw request body, not parsed JSON
- Check for modifications: Ensure no middleware modifies the body before verification