Supported Events
Setting Up Webhooks
1
Open Webhook Settings
Go to Workspace Settings → Webhooks in the dashboard.
2
Add Webhook
Click Add Webhook.
3
Enter URL
Enter your HTTPS endpoint URL.
4
Select Events
Choose which events to receive.
5
Save
Click Save and copy the generated secret.
Webhook Payload Structure
All webhooks follow this structure:Event Payloads
pdf.generated
Sent when a PDF is successfully created.pdf.failed
Sent when PDF generation fails.Verifying Webhook Signatures
Fileloom signs all webhooks with HMAC-SHA256. Always verify signatures to ensure webhooks are authentic and haven’t been tampered with.Request Headers
Fileloom sends these headers with every webhook:Node.js Verification
Python Verification
PHP Verification
Retry Behavior
Fileloom automatically retries failed webhook deliveries:
After 3 failed attempts, the webhook delivery is marked as failed and no further retries occur for that specific event.
What Counts as Failed?
- HTTP status code 4xx or 5xx
- Connection timeout (10 seconds)
- DNS resolution failure
- SSL/TLS errors
Successful Response
Your endpoint must return an HTTP 2xx status code within 10 seconds.Managing Webhooks
Viewing Activity
In the dashboard, each webhook shows:- Total deliveries
- Success rate
- Recent delivery attempts
- Error messages for failed deliveries
Testing Webhooks
Click Send Test to send a test event to your endpoint:Disabling Webhooks
Toggle the webhook to Inactive to temporarily stop receiving events without deleting the configuration.Regenerating Secrets
If your webhook secret is compromised:- Click Regenerate Secret in the webhook settings
- Update your server with the new secret immediately
- The old secret is invalidated instantly
Best Practices
Always Verify Signatures
Never trust webhook payloads without signature verification. This prevents:- Spoofed requests from attackers
- Data tampering in transit
Respond Quickly, Process Async
Return 200 immediately, then process the event asynchronously:Handle Duplicates (Idempotency)
Webhooks may be delivered multiple times due to retries. Use the eventid to deduplicate:
Log All Events
Log every webhook for debugging:Monitor Delivery Health
Set up alerts for:- High failure rates
- Unusual event volumes
- Missing expected events
Troubleshooting
Webhooks Not Arriving
- Verify endpoint URL is correct and uses HTTPS
- Check webhook is enabled (not set to Inactive)
- Verify firewall allows inbound connections
- Test endpoint manually with curl
Signature Verification Failing
- Ensure you’re using the raw request body (not parsed JSON)
- Verify secret matches exactly (no extra whitespace)
- Check encoding (UTF-8)
- Ensure secret hasn’t been regenerated
Timeouts
- Your endpoint must respond within 10 seconds
- Process events asynchronously after responding
- Optimize any database queries or external calls
Duplicate Events
- Implement idempotency using event ID
- Store processed event IDs with expiry
- Design handlers to be safe to run multiple times

