Dashboard

Webhooks

Recibe notificaciones en tiempo real cuando ocurren eventos en tu negocio.

Introduccion

Los webhooks te permiten recibir notificaciones HTTP en tu servidor cuando ocurren eventos importantes, como:

  • Se crea una nueva reserva
  • Se cancela una reserva
  • Se completa un pago
  • Se registra un nuevo cliente

En lugar de consultar periodicamente la API (polling), tu servidor recibe los datos automaticamente cuando ocurren los eventos.

1

Evento ocurre

Un cliente hace una reserva

2

SalonBookIt notifica

Enviamos POST a tu URL

3

Tu servidor procesa

Actualiza tu sistema

Configuracion

Configura tus webhooks desde el Dashboard:

  1. Ve a Configuracion → Integraciones
  2. En la seccion Webhooks, haz clic en AƱadir Webhook
  3. Introduce la URL de tu endpoint (debe ser HTTPS)
  4. Selecciona los eventos que quieres recibir
  5. Guarda y copia el Secret para verificar las firmas
Requisitos de la URL
  • Debe usar HTTPS (no HTTP)
  • Debe ser accesible publicamente
  • Debe responder en menos de 10 segundos

Formato del payload

Cada webhook incluye la siguiente estructura:

JSON
{
    "id": "evt_abc123xyz789",
    "type": "booking.created",
    "created": "2024-01-20T10:30:00Z",
    "tenant_id": "uuid-del-tenant",
    "data": {
        // Datos del evento (varian segun el tipo)
    }
}

Campos del webhook

Campo Tipo Descripcion
id string ID unico del evento (para idempotencia)
type string Tipo de evento (ej: booking.created)
created string Timestamp ISO 8601 del evento
tenant_id string UUID del negocio
data object Datos especificos del evento

Headers de la peticion

Cada webhook incluye estos headers:

Header Descripcion
Content-Type application/json
X-SalonBookIt-Signature Firma HMAC para verificar autenticidad
X-SalonBookIt-Event Tipo de evento
X-SalonBookIt-Delivery ID de la entrega (para debugging)
X-SalonBookIt-Timestamp Timestamp de cuando se envio

Respuesta esperada

Tu servidor debe responder con un codigo 2xx (200, 201, 202, 204) para indicar que el webhook se recibio correctamente.

HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json

{"received": true}
Responde rapido

Responde antes de 10 segundos. Si necesitas procesar datos pesados, guarda el evento y procesalo de forma asincrona.

Politica de reintentos

Si tu servidor no responde o devuelve un error (4xx o 5xx), reintentamos automaticamente:

Intento Espera
1 Inmediato
2 5 minutos
3 30 minutos
4 2 horas
5 24 horas (final)

Despues de 5 intentos fallidos, el webhook se marca como fallido y no se reintenta mas. Puedes ver los webhooks fallidos en el Dashboard.

Siguientes pasos