Webhooks
Webhooks allow you to receive real-time HTTP notifications when events occur in your Pictify account. Use them to trigger workflows, update databases, or integrate with third-party services.Supported Events
Creating a Webhook
Dashboard
- Go to Settings > Webhooks
- Click Create Webhook
- Select the event type
- Enter your endpoint URL
- Save and copy the signing secret
API
Webhook Payload
All webhooks include these headers:render.completed
render.failed
Signature Verification
The signature header format is:t= Unix timestamp when the webhook was sentv1= HMAC-SHA256 signature of{timestamp}.{payload}
Verification Steps
- Extract timestamp and signature from header
- Reject if timestamp is older than 5 minutes (replay protection)
- Compute expected signature:
HMAC-SHA256(secret, "{timestamp}.{payload}") - Compare signatures using constant-time comparison
Code Examples
Managing Webhooks
List Webhooks
Pause / Resume a Webhook
Pause and resume are currently available via the dashboard only. API support is coming soon.
Delete a Webhook
Filters
Filter webhooks to receive only specific events:Delivery & Retries
- Webhooks are delivered within seconds of events
- Failed deliveries retry with exponential backoff: 1min, 5min, 30min, 2hr, 24hr
- After 5 failed attempts, the webhook is paused
- Check delivery status in the dashboard or via API
Best Practices
- Always verify signatures - Protect against spoofed requests
- Respond quickly - Return 2xx within 30 seconds, process async
- Handle duplicates - Use delivery ID for idempotency
- Monitor failures - Set up alerts for webhook delivery issues
- Use HTTPS - Never use HTTP endpoints in production