Webhook Events
Complete list of available events and their payloads.
Available events
| Event | Description |
|---|---|
booking.created |
New booking created |
booking.updated |
Booking modified |
booking.cancelled |
Booking cancelled |
booking.completed |
Booking completed (service performed) |
booking.no_show |
Customer did not show up |
payment.completed |
Payment completed |
payment.failed |
Payment failed |
payment.refunded |
Payment refunded |
customer.created |
New customer registered |
customer.updated |
Customer updated |
order.created |
New order created |
order.shipped |
Order shipped |
order.delivered |
Order delivered |
booking.created
Triggered when a new booking is created.
JSON Payload
{
"id": "evt_abc123",
"type": "booking.created",
"created": "2024-01-20T10:30:00Z",
"tenant_id": "uuid-tenant",
"data": {
"booking": {
"id": 12345,
"codigo": "ABC123XY",
"fecha": "2024-01-25",
"hora_inicio": "10:30",
"hora_fin": "11:00",
"servicios": [
{
"id": 15,
"nombre": "Corte Clásico",
"precio": 25.00,
"duracion_minutos": 30
}
],
"profesional": {
"id": 5,
"nombre": "Carlos GarcÃa"
},
"cliente": {
"id": 456,
"nombre": "Juan Pérez",
"email": "juan@email.com",
"telefono": "+34612345678"
},
"total": 25.00,
"estado": "confirmada",
"notas": "Primera visita",
"created_at": "2024-01-20T10:30:00Z"
}
}
}
booking.updated
Triggered when a booking is modified (date, time, professional change, etc).
JSON Payload
{
"id": "evt_def456",
"type": "booking.updated",
"created": "2024-01-20T11:00:00Z",
"tenant_id": "uuid-tenant",
"data": {
"booking": {
"id": 12345,
"codigo": "ABC123XY",
"fecha": "2024-01-26",
"hora_inicio": "11:00",
"hora_fin": "11:30"
// ... complete booking data
},
"changes": {
"fecha": {
"old": "2024-01-25",
"new": "2024-01-26"
},
"hora_inicio": {
"old": "10:30",
"new": "11:00"
}
}
}
}
booking.cancelled
Triggered when a booking is cancelled.
JSON Payload
{
"id": "evt_ghi789",
"type": "booking.cancelled",
"created": "2024-01-20T12:00:00Z",
"tenant_id": "uuid-tenant",
"data": {
"booking": {
"id": 12345,
"codigo": "ABC123XY",
"estado": "cancelada"
// ... complete data
},
"cancellation": {
"cancelled_by": "cliente",
"reason": "Cambio de planes",
"cancelled_at": "2024-01-20T12:00:00Z"
},
"refund": {
"applicable": true,
"amount": 25.00,
"status": "pending"
}
}
}
booking.completed
Triggered when the service has been performed and the booking is marked as completed.
JSON Payload
{
"id": "evt_jkl012",
"type": "booking.completed",
"created": "2024-01-25T11:05:00Z",
"tenant_id": "uuid-tenant",
"data": {
"booking": {
"id": 12345,
"estado": "completada",
"completed_at": "2024-01-25T11:05:00Z"
// ... complete data
},
"points_earned": 25
}
}
booking.no_show
Triggered when the customer doesn't show up for the appointment.
JSON Payload
{
"id": "evt_mno345",
"type": "booking.no_show",
"created": "2024-01-25T11:30:00Z",
"tenant_id": "uuid-tenant",
"data": {
"booking": {
"id": 12345,
"estado": "no_show",
"marked_at": "2024-01-25T11:30:00Z"
}
}
}
payment.completed
Triggered when a payment completes successfully.
JSON Payload
{
"id": "evt_pqr678",
"type": "payment.completed",
"created": "2024-01-20T10:35:00Z",
"tenant_id": "uuid-tenant",
"data": {
"payment": {
"id": 789,
"amount": 25.00,
"currency": "EUR",
"method": "card",
"stripe_payment_intent_id": "pi_abc123",
"status": "succeeded"
},
"booking": {
"id": 12345,
"codigo": "ABC123XY"
},
"cliente": {
"id": 456,
"nombre": "Juan Pérez",
"email": "juan@email.com"
}
}
}
payment.failed
Triggered when a payment attempt fails.
JSON Payload
{
"id": "evt_stu901",
"type": "payment.failed",
"created": "2024-01-20T10:35:00Z",
"tenant_id": "uuid-tenant",
"data": {
"payment": {
"id": 790,
"amount": 25.00,
"currency": "EUR",
"status": "failed",
"error_code": "card_declined",
"error_message": "Tu tarjeta fue rechazada"
},
"booking": {
"id": 12346
}
}
}
payment.refunded
Triggered when a refund is made.
JSON Payload
{
"id": "evt_vwx234",
"type": "payment.refunded",
"created": "2024-01-21T09:00:00Z",
"tenant_id": "uuid-tenant",
"data": {
"refund": {
"id": 100,
"amount": 25.00,
"currency": "EUR",
"reason": "Cancelación por cliente",
"stripe_refund_id": "re_abc123"
},
"original_payment": {
"id": 789,
"amount": 25.00
},
"booking": {
"id": 12345
}
}
}
customer.created
Triggered when a new customer registers.
JSON Payload
{
"id": "evt_yza567",
"type": "customer.created",
"created": "2024-01-20T10:25:00Z",
"tenant_id": "uuid-tenant",
"data": {
"customer": {
"id": 456,
"nombre": "Juan Pérez",
"email": "juan@email.com",
"telefono": "+34612345678",
"source": "widget",
"created_at": "2024-01-20T10:25:00Z"
}
}
}
customer.updated
Triggered when a customer updates their profile.
JSON Payload
{
"id": "evt_bcd890",
"type": "customer.updated",
"created": "2024-01-22T15:00:00Z",
"tenant_id": "uuid-tenant",
"data": {
"customer": {
"id": 456,
"nombre": "Juan Pérez GarcÃa",
"email": "juan@email.com",
"telefono": "+34612345678"
},
"changes": {
"nombre": {
"old": "Juan Pérez",
"new": "Juan Pérez GarcÃa"
}
}
}
}
order.created
Triggered when a new product order is created.
JSON Payload
{
"id": "evt_ord123",
"type": "order.created",
"created": "2024-01-20T14:30:00Z",
"tenant_id": "uuid-tenant",
"data": {
"order": {
"id": 789,
"numero": "PED-2024-0789",
"cliente": {
"id": 456,
"nombre": "Juan Pérez",
"email": "juan@email.com"
},
"items": [
{
"producto_id": 12,
"nombre": "Shampoo Profesional",
"cantidad": 2,
"precio_unitario": 15.00,
"subtotal": 30.00
}
],
"subtotal": 30.00,
"envio": 5.00,
"total": 35.00,
"estado": "pending",
"created_at": "2024-01-20T14:30:00Z"
}
}
}
order.shipped
Triggered when an order is shipped.
JSON Payload
{
"id": "evt_ord456",
"type": "order.shipped",
"created": "2024-01-21T10:00:00Z",
"tenant_id": "uuid-tenant",
"data": {
"order": {
"id": 789,
"numero": "PED-2024-0789",
"estado": "shipped",
"tracking_number": "1Z999AA10123456784",
"tracking_url": "https://tracking.example.com/1Z999AA10123456784",
"shipped_at": "2024-01-21T10:00:00Z"
}
}
}
order.delivered
Triggered when an order is delivered.
JSON Payload
{
"id": "evt_ord789",
"type": "order.delivered",
"created": "2024-01-23T16:45:00Z",
"tenant_id": "uuid-tenant",
"data": {
"order": {
"id": 789,
"numero": "PED-2024-0789",
"estado": "delivered",
"delivered_at": "2024-01-23T16:45:00Z"
}
}
}