Webhooks

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

Introducci贸n

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 peri贸dicamente la API (polling), tu servidor recibe los datos autom谩ticamente 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

Configuraci贸n

Configura tus webhooks desde el Dashboard:

  1. Ve a Configuraci贸n → Integraciones
  2. En la secci贸n 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 p煤blicamente
  • 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 (var铆an seg煤n el tipo)
    }
}

Campos del webhook

Campo Tipo Descripci贸n
id string ID 煤nico 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 espec铆ficos del evento

Headers de la petici贸n

Cada webhook incluye estos headers:

Header Descripci贸n
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 envi贸

Respuesta esperada

Tu servidor debe responder con un c贸digo 2xx (200, 201, 202, 204) para indicar que el webhook se recibi贸 correctamente.

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

{"received": true}
Responde r谩pido

Responde antes de 10 segundos. Si necesitas procesar datos pesados, guarda el evento y proc茅salo de forma as铆ncrona.

Pol铆tica de reintentos

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

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

Despu茅s de 5 intentos fallidos, el webhook se marca como fallido y no se reintenta m谩s. Puedes ver los webhooks fallidos en el Dashboard.

Siguientes pasos