Skip to main content
Webhooks send HTTP POST requests to your server when events occur in Fileloom, enabling real-time integrations and automated workflows.

Supported Events

Setting Up Webhooks

1

Open Webhook Settings

Go to Workspace SettingsWebhooks 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 URLs must use HTTPS. HTTP endpoints are not supported for security reasons.

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:
  1. Click Regenerate Secret in the webhook settings
  2. Update your server with the new secret immediately
  3. 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 event id to deduplicate:
For production, store processed event IDs in a database with TTL.

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

  1. Verify endpoint URL is correct and uses HTTPS
  2. Check webhook is enabled (not set to Inactive)
  3. Verify firewall allows inbound connections
  4. Test endpoint manually with curl

Signature Verification Failing

  1. Ensure you’re using the raw request body (not parsed JSON)
  2. Verify secret matches exactly (no extra whitespace)
  3. Check encoding (UTF-8)
  4. Ensure secret hasn’t been regenerated

Timeouts

  1. Your endpoint must respond within 10 seconds
  2. Process events asynchronously after responding
  3. Optimize any database queries or external calls

Duplicate Events

  1. Implement idempotency using event ID
  2. Store processed event IDs with expiry
  3. Design handlers to be safe to run multiple times