Un webhook es una llamada automática que nuestro sistema realiza a una URL que vos configures, cada vez que ocurre un evento relevante (como un cambio de estado en una orden o incidencia). De esta forma, tu sistema puede reaccionar de inmediato ante estos cambios.
✅ Seguridad: Firmas HMAC (opcional por ahora)
Para validar la autenticidad de los eventos que recibís, cada webhook puede incluir una firma digital en el header:
- Header: X-Dropea-Hmac-Sha256
- Contenido: un hash SHA256 generado usando el cuerpo del POST (payload) y tu API Key correspondiente como clave secreta.
Esto te permite verificar que la solicitud proviene realmente de nuestro sistema y no ha sido alterada, de forma similar a como lo hace Shopify en
su sistema de webhooks.
⚠️ Importante: La validación mediante firma es opcional por el momento, pero se recomienda su implementación para reforzar la seguridad.
🛍️ Order Status Update
Cuando se actualiza el estado de una orden, el sistema envía una notificación al webhook configurado con la siguiente estructura de evento:
❌ Ejemplo 1: Pedido pasa de Confirmado a Cancelado (Payload a Recibir)
- {"topic":"order:status_update","order_id":265494,"prev_status":"confirmed","new_status":"cancelled","updated_at":"2025-05-29 14:14:58"}
✅ Ejemplo 2: Pedido pasa de Pendiente a Confirmado (Payload a Recibir)
- {"topic":"order:status_update","order_id":265494,"prev_status":"pending","new_status":"confirmed","updated_at":"2025-05-29 14:14:58"}
🔁 Ejemplo 3: Pedido pasa de Error a Pendiente (Payload a Recibir)
- {"topic":"order:status_update",
- "order_id":265496,"prev_status":"error","new_status":"pending","updated_at":"2025-05-29 14:38:05"}
🛠️ Incidence Update
📌 Ejemplo: Incidencia pasa de Pendiente a Manejado por el Cliente (Payload a Recibir)
- {
- "topic": "incidence:status_update",
- "new_status": "client_managed",
- "updated_at": "2025-02-13 14:23:56",
- "prev_status": "pending",
- "incidence_id": 189044
- }
🔄 Ejemplo 2: Incidencia pasa de Pendiente a Solución Enviada
- {
- "topic": "incidence:status_update",
- "incidence_id": 265494,
- "prev_status": "client_managed",
- "new_status": "solution_send",
- "updated_at": "2025-05-29 16:10:45"
- }
✅ Ejemplo 3: Incidencia pasa de Solución Enviada a Resuelto (Payload a Recibir)
- {
- "topic": "incidence:status_update",
- "incidence_id": 265494,
- "prev_status": "solution_send",
- "new_status": "resolved",
- "updated_at": "2025-05-29 17:42:30"
- }
📌 Detalles por campo