Webhooks
SimplerSuite Access publishes events when entitlements, files, or downloads change. You can subscribe to these events by registering a webhook endpoint.
Managing webhooks
Register and manage webhook endpoints via the dashboard under Settings → Webhooks, or programmatically via the API with the webhooks:manage scope.
Event types
Entitlement events
| Event | Triggered when |
|---|---|
entitlement.created | A new entitlement is granted |
entitlement.revoked | An entitlement is revoked |
entitlement.suspended | An entitlement is suspended |
entitlement.reactivated | A suspended or expired entitlement is reactivated |
entitlement.expired | An entitlement’s expiry date passes |
File events
| Event | Triggered when |
|---|---|
file.uploaded | A file upload is confirmed |
file.deleted | A file is deleted |
Download events
| Event | Triggered when |
|---|---|
download.completed | A customer downloads a file |
Usage events
| Event | Triggered when |
|---|---|
usage.limit_approaching | A merchant is approaching a plan limit |
Payload format
{ "id": "evt_abc123", "type": "entitlement.created", "created_at": "2026-03-01T12:00:00.000Z", "merchant_id": "merch_xyz", "data": { "id": "ent_abc123", "customer_id": "cust_123", "product_id": "prod_xyz", "status": "active", "granted_at": "2026-03-01T12:00:00.000Z", "source": "order" }}Delivery
Webhooks are delivered via HTTP POST to your registered URL. The request includes:
Content-Type: application/json- The full event payload in the request body
Failed deliveries are retried with exponential backoff.
Best practices
- Return a
2xxstatus code quickly — process the event asynchronously if needed - Use the
idfield to deduplicate events (deliveries may be retried) - Verify the webhook is from SimplerSuite by checking the source IP or using a shared secret