Webhooks in Shoporama
Complete guide to webhooks in Shoporama. Get automatically notified on a URL when something happens in your online store. List of all events, setup, payload and signature.
Webhooks allow you to have Shoporama automatically send a message to an external service when something happens in your store. For example, when a new order is created, when a product is updated, or when a customer logs in for the first time. Here, we’ll go over what webhooks are, which events you can monitor, and how to set them up.

What are webhooks?
A webhook is an automatic notification that Shoporama sends to a URL you specify when a specific event occurs. Think of it as a “reverse API.” Instead of you asking Shoporama, “Are there any new orders?”, Shoporama tells you automatically.
Without webhooks: Your service checks with Shoporama every 5 minutes: “Are there any new orders?” This is inefficient and creates unnecessary load.
With webhooks: Shoporama notifies you immediately when a new order comes in. It’s fast and works in real time.
Available webhook events
You can set up webhooks for the following events. Note that the event names use underscores (order_created), not periods.
Order events
| Event | Description |
|---|---|
| order_created | A new order has been created in the online store |
| paid | An order has been marked as paid |
| new_status | An order has changed status (e.g., from "new" to "shipped") |
| new_return | A customer has created a return |
| order_withdrawn | A customer has canceled their purchase using the digital cancellation feature |
Product and category events
| Event | Description |
|---|---|
| product | A product has been created or updated |
| stock | The stock level for a product has changed |
| category | A category has been created or updated |
Customer and newsletter events
| Event | Description |
|---|---|
| customer_created | A new customer has been created in the online store |
| newsletter_subscribe | Someone has subscribed to the newsletter |
Checkout events (the customer’s journey through checkout)
| Event | Description |
|---|---|
| add_to_basket | An item has been added to the cart |
| update_basket | The cart has been updated (quantity or variant) |
| view_basket | The customer has viewed the cart |
| view_address | The customer is on the address step of checkout |
| view_shipping | The customer is on the shipping step |
| view_approve | The customer is on the approval step |
| view_thanks | The customer is on the "Thank you for your order" page |
| approved | The customer has approved the order |
Note: Shoporama does not have a separate "order_sent" event. When you mark an order as shipped, the new_status event is triggered with the new status in the payload. Listen for new_status if you want to respond to status changes.
Create a webhook
- Go to Integrations in the left-hand menu
- Click Webhooks
- Click "Create Webhook"
- Enter the URL that will receive the webhook data
- Select the events you want to listen for (you can select multiple)
- Click Save
You can also send a test event with the event " test.ping " directly from the log page to verify that your receiver is working.
Webhook Payload Format
When an event is triggered, Shoporama sends an HTTP POST request to your URL with data in JSON format. All webhooks have the same structure:
{
"event": "order_created",
"action": "create",
"timestamp": "2026-05-01T10:30:00+02:00",
"webshop_id": 1234,
"data": {
"order_id": 56789,
"order_no": 1042,
"email": "kunde@eksempel.dk",
"total": 549.50
}
}
The contents of the `data` field vary depending on the event. For order events, you’ll receive information about the order; for product events, information about the product; and so on. The data object corresponds to what the REST API returns for the object in question.
HTTP Headers
Each webhook request contains these headers, which you can use for authentication and routing:
- Content-Type: application/json
- X-Webhook-Event, the name of the event, e.g., order_created
- X-Webhook-Signature, an HMAC SHA-256 signature in the format sha256=... calculated from the request body and the webhook’s secret key
Verify the signature
If you want to ensure that the request actually comes from Shoporama, verify the X-Webhook-Signature header using the secret key displayed in your webhook settings in the Shoporama admin panel. Example in PHP:
$payload = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'])) {
http_response_code(401);
exit;
}
Response from your recipient
Your receiving service must respond with an HTTP status code in the 2xx range (typically 200) to confirm receipt. Other status codes are logged as errors, and you can resend failed deliveries from the log page.
Using webhooks
Typical uses of webhooks:
- Warehouse integration: automatically send new orders to the warehouse, e.g., upon payment
- Slack/Teams notification: receive notifications about new orders in your channel via ` order_created`
- Inventory sync: Update an external system when stock runs out
- CRM sync: Create a customer in Klaviyo, ActiveCampaign, or your own CRM when a customer is created
- Automation: trigger workflows in Zapier, Make, or similar services
Tip: Use webhook.site to test your webhooks before implementing your final destination. You’ll get a unique URL where all incoming requests are displayed in real time.
Logs and retries
For each webhook, you can view a log of all deliveries (response codes, duration, payload, and errors). You can filter by event type, status, and date. Failed deliveries can be resent manually with a single click. Logs are automatically cleared on an ongoing basis.
Frequently Asked Questions
Where can I find the webhook list?
Go to Integrations in the left-hand menu of your Shoporama admin and click Webhooks. You can also read our guide to view created webhooks in your store.
How quickly does the webhook arrive?
Webhooks are queued and typically sent within a few seconds. During peak times, there may be a slight delay, but never more than a minute or two.
Is there an “order_sent” event?
No. There is no separate event for “shipped.” When you mark an order as shipped, the `new_status` event is triggered with the new status in the payload. Listen for that event and check `data.status` if you want to respond to status changes.
Should event names be written with a period or an underscore?
Underscores. Correct: order_created. Incorrect: order.created. The only event with a period is test.ping, which is used for test deliveries.
Can I listen for multiple events in the same webhook?
Yes. Simply select multiple events when creating or editing the webhook. Use the X-Webhook-Event header or the event field in the payload in your handler to distinguish between them.
What happens if my server is down?
The delivery is logged as failed. You can resend it manually from the log page once your server is back up. We do not automatically retry, so design your receiver to handle the occasional delay in webhook delivery, or retrieve missing orders via the REST API as a backup.
How do I know it’s actually Shoporama sending the request?
Verify the X-Webhook-Signature header using your webhook’s secret key. It’s displayed on your webhook in the Shoporama admin. Compare it to an HMAC SHA-256 of the received body. If they don’t match, reject the request.
Can I use webhooks together with the REST API?
Yes, and it’s often a good idea. Use webhooks to receive notifications, and use the REST API to retrieve full data or perform actions based on the event.
How many webhooks can I create?
There is no hard limit in Shoporama. Create as many as you need, but clean up webhooks that are no longer in use to avoid unnecessary traffic to defunct URLs.
Need help? Contact us at support@shoporama.dk.
Related articles
See created webhooks in your shop
Guide to see which webhooks are created in your Shoporama online store.
REST API
Complete guide to Shoporama's REST API: authentication, all endpoints, examples and Swagger documentation.
Find or create an API key
Guide to finding your API key in Shoporama, which is used for integrations with e.g. Shipmondo.
Facebook Conversions API
Guide to the Facebook Conversions API on Shoporama: setup with Pixel ID and access token, automatic deduplication of purchases, content_ids that...
Related features
Webhooks
Receive automatic notifications via webhooks when changes occur in your webshop. Orders, products, customers and much more.
Webshop with Claude
Connect your Shoporama webshop with Claude and manage products, orders, campaigns and designs by typing in Danish. No code, full control, audit log.