Storefront webhooks deliver real-time HTTP notifications to your server whenever events occur in your store: orders, customer activity, and domain changes. Configure an endpoint URL and Storefront pushes a JSON payload to it the moment an event fires, without you having to poll for updates.
Storefront also supports email notifications for teams who want event summaries in their inbox rather than an automated integration, and the Storefront API for querying or updating data on demand rather than reacting to events. Webhooks are the right choice when you need to trigger an automated workflow — for example, creating a matching customer record in your CRM, or kicking off provisioning when a domain order completes.
Every event that triggers a webhook also appears in the Storefront Manager event log, giving you a complete audit trail alongside your automated integrations.
Event categories
Storefront groups webhook events into four categories. You subscribe per category; your endpoint receives all events within a subscribed category.
- Order Events — payment authorizations, captures, refunds, and completed orders
- Customer Events — account creation, logins, password resets, and profile changes
- Domain Events — registrations, renewals, DNS, contacts, and forwarding changes
- Account events — reserved for future use. There are currently no events in this category; Storefront will begin sending them once account-level activity (billing changes, balance events, and similar) is added to the notification system.
Payload structure
Every webhook delivery uses the same JSON structure, regardless of event type or category. Storefront forwards the underlying event log record as-is.
{
"event": "Log in",
"event_id": "fb174b14-ff0d-416e-80ac-9180db791286",
"event_type": "Customer logged in.",
"record_type": "customer",
"changes_by": "Customer",
"username": "frebra",
"domain_name": null,
"is_success": true,
"data": {},
"created_date": "2025-10-27T17:37:56.895461+00:00"
}| Field | Type | Description |
|---|---|---|
event | string | Human-readable event name (e.g. "Log in", "Refund payment") |
event_id | string (UUID) | Unique identifier for this specific notification |
event_type | string | Longer description of what happened |
record_type | string | The entity type the event relates to: order, customer, domain, or account |
changes_by | string | Who triggered the event: typically Customer, Reseller, or System |
username | string or null | The customer's username, when applicable |
domain_name | string or null | The domain involved, for domain-related events |
is_success | boolean | Whether the underlying action succeeded |
data | object | Event-specific details. May be empty for simple events. |
created_date | string (ISO 8601, UTC) | When the event occurred |
All timestamps are in UTC.
Set up a webhook
Before configuring a webhook, you need a publicly accessible HTTPS endpoint on your server that accepts POST requests and returns a 2xx HTTP status code to acknowledge receipt.
- Log in to Storefront Manager.
- Navigate to Settings → Advanced Settings and select the Webhooks tab.
- Click Add Webhook.
- Select the event category you want to subscribe to: Order, Customer, Domain, or Account.
- Enter your endpoint URL.
- Click Save.
- Storefront generates a webhook key. Copy and store it securely immediately. It is shown once and cannot be retrieved from Storefront Manager again.
If you lose the key, delete the subscription and create a new one to generate a replacement.
Manage webhooks
Each webhook subscription appears as a row in the Webhooks list, showing the endpoint URL and subscribed category. From the three-dot menu on any subscription, you can edit the endpoint URL or category, view your saved webhook key, or delete the subscription.
Multiple endpoints and categories
Storefront supports flexible many-to-many configurations:
- A single endpoint URL can subscribe to multiple event categories and receives all events from each, with each subscription carrying its own key.
- Multiple endpoint URLs can subscribe to the same category; all configured endpoints receive the event.
Receive and acknowledge webhooks
- Respond quickly: return a 2xx status code as soon as you receive the request. Do not wait for downstream processing to complete before responding.
- Process asynchronously: if your handler needs to do significant work in response to an event, queue it and process in the background.
- Be idempotent: webhook deliveries may occasionally be retried. Design your handler so that processing the same event twice has no adverse effect.
Delivery failures
If your endpoint returns a non-2xx status or does not respond, Storefront treats the delivery as failed and retries. If your endpoint is unreachable for an extended period, older undelivered events may be dropped. For high-reliability integrations, log incoming events to a durable store before acknowledging so you can replay if needed.
Troubleshooting
My endpoint is not receiving eventsConfirm the endpoint URL is publicly accessible over HTTPS; Storefront cannot reach endpoints on private networks or localhost. Check that your server returns a
2xxresponse. Redirects (3xx) and error responses (4xx,5xx) cause Storefront to treat the delivery as failed. Verify the subscription is active in Settings → Advanced Settings → Webhooks.
I lost my webhook keyThe key cannot be recovered from Storefront Manager. Delete the subscription and create a new one to generate a new key.
I'm receiving events I didn't expectSubscriptions are per category, not per individual event. If you subscribed to Domain Events, you receive every event in that category. Filter by event type in your handler code if you only need to act on specific events.
I need to test my endpoint before going liveUse a tool such as webhook.site to capture and inspect test payloads during development before pointing Storefront at your production endpoint.