Documentation Index
Fetch the complete documentation index at: https://docs.runflow.io/llms.txt
Use this file to discover all available pages before exploring further.
What you’ll do
Reject spoofed POSTs to your webhook by verifying theRunflow-Signature HMAC header against a shared secret.
Prerequisites
- A Runflow API key.
- A webhook handler (see Handle async callbacks).
Steps
Verify the signature in your handler
Runflow sends
Runflow-Signature: <hex> where the value is HMAC-SHA256(secret, raw_body). The hex string is 64 chars (SHA-256 digest size).Verify it worked
Send a test callback (re-deliver one):200. Now send a forged POST without the header. Your handler should return 401.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Every callback fails verification | Hashing parsed JSON instead of raw body | Use the raw bytes Runflow sent. |
| Signatures match in dev, fail in prod | Different secret per env | Rotate, redeploy. |
Runflow-Signature header missing | No callback secret registered for this endpoint | POST to /v1/callback-secrets first. |
Rotation
Create a second secret. Both verify in parallel during cutover. Delete the old secret once traffic confirms the new one works.Related
Handle callbacks
Handler structure.
Callbacks concept
Pattern, retries.