A webhook is an automatic call our system makes to a URL you configure whenever a relevant event occurs (such as a change in the status of an order or incident). This way, your system can react immediately to these changes.
✅ Security: HMAC signatures (optional for now)
To validate the authenticity of the events you receive, each webhook can include a digital signature in the header:
- Header : X-Dropea-Hmac-Sha256
- Content : A SHA256 hash generated using the POST body (payload) and your corresponding API Key as the secret key.
This allows you to verify that the request is actually coming from our system and has not been altered, similar to what Shopify does with
its webhooks system .
⚠️ Important: Signature validation is currently optional, but its implementation is recommended to strengthen security.
🛍️ Order Status Update
When the status of an order is updated, the system sends a notification to the configured webhook with the following event structure:
❌ Example 1: Order goes from Confirmed to Cancelled (Payload to Receive)
- {"topic":"order:status_update","order_id":265494,"prev_status":"confirmed","new_status":"cancelled","updated_at":"2025-05-29 14:14:58"}
✅ Example 2: Order goes from Pending to Confirmed (Payload to Receive)
- {"topic":"order:status_update","order_id":265494,"prev_status":"pending","new_status":"confirmed","updated_at":"2025-05-29 14:14:58"}
🔁 Example 3: Order goes from Error to Pending (Payload to Receive)
- {"topic":"order:status_update",
- "order_id":265496,"prev_status":"error","new_status":"pending","updated_at":"2025-05-29 14:38:05"}
🛠️ Incidence Update
📌 Example: Incident goes from Pending to Customer Handled (Payload to Receive)
- {
- "topic": "incidence:status_update",
- "new_status": "client_managed",
- "updated_at": "2025-02-13 14:23:56",
- "prev_status": "pending",
- "incidence_id": 189044
- }
🔄 Example 2: Incident goes from Pending to Solution Sent
- {
- "topic": "incidence:status_update",
- "incidence_id": 265494,
- "prev_status": "client_managed",
- "new_status": "resolution_send",
- "updated_at": "2025-05-29 16:10:45"
- }
✅ Example 3: Incident goes from Solution Sent to Resolved (Payload to Receive)
- {
- "topic": "incidence:status_update",
- "incidence_id": 265494,
- "prev_status": "solution_send",
- "new_status": "resolved",
- "updated_at": "2025-05-29 17:42:30"
- }
📌 Details by field