Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Inicio de Sirvoy
  • Contacto
  • Iniciar sesión
Spanish
ES Spanish
DE German
US English (US)
DA Danish
FI Finnish
SE Swedish
NO Norwegian
NL Dutch
FR French
  • Inicio
  • Mi cuenta
  • Exportar & API

Usa webhooks de evento de reserva

Cómo enviar datos de una reserva a un sistema externo cuando se crean, modifican, cancelan o restauran reservas.

Written by johana

Updated at June 25th, 2026

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Empieza a usar Sirvoy
    Guías de Configuración Importación de reservas
  • Acerca de Sirvoy
    General Técnico Seguridad y copias de seguridad
  • Habitaciones y tipos de habitación
    Habitaciones y tipos de habitación Clasificación de tipos de habitación Oferta de complementos o extras
  • Motores de reservas
    Creador de Páginas Web Instalación en tu sitio web Ajustar el motor de reservas Diseño & CSS Campos de entrada Portal del huésped Rastreo
  • Administrador de canales
    Configurar nuevos canales Mapeo de los tipos de habitación General Actualizaciones de tarifas y disponibilidad Sobreventa
  • Finanzas
    Establecer una solución de pago Gestión de pagos Facturas y comprobantes Contabilidad Impuestos y recargos
  • Reservas
    Modificar reservas Ver reservas Plantillas de mesajes y mensajeria automatizada Comunicación Programación de limpieza y tareas
  • Tarifas y restricciones
    Tarifas y descuentos Restricciones Promociones y códigos de cupón
  • Mi cuenta
    Personaliza tu cuenta Suscripción Estadísticas Exportar & API
+ Más

En este artículo

Crear un nuevo webhook de evento de reserva Cómo funcionan los callbacks y qué se requiere Evita que tu firewall bloquee los callbacks Ejemplo de callbak en JSON Ejemplo: Callback de nueva reserva Ejemplo: Callback de nueva reserva con datos financieros

Los webhooks permiten que Sirvoy se comunique automáticamente con otras herramientas, para por ejemplo informar a un sistema de entrada sin llave cuándo crear un código de habitación, o enviar detalles de facturación a tu software de contabilidad.

Con un webhook, Sirvoy envía detalles de reserva en formato JSON (una forma estándar para que las aplicaciones compartan datos) a una dirección web (URL) que tu elijes. Un callback es cuando se envían datos a esa URL.

Otros programas pueden recibir los detalles enviados a la URL y utilizar los datos para tareas automatizadas.

Nota: Los webhooks están disponibles solo en Sirvoy Pro. Puedes agregar hasta diez webhooks por cuenta. Configurar y gestionar webhooks requiere conocimientos técnicos, así que considera consultar a un desarrollador web.

 

Crear un nuevo webhook de evento de reserva

  1. Ve a Configuración > Cuenta Sirvoy
  2. Bajo Webhook de evento de reserva, haz clic en Agregar
  3. Ingresa la URL de Callback
  4. Dale un nombre al webhook
  5. Da clic en Guardar

Sirvoy ahora enviará un callback a esa URL cada vez que se cree, modifique, cancele o restaure una reserva.


Cómo funcionan los callbacks y qué se requiere

  • Manejo de respuestas: El servidor que recibe el callback necesita responder con un código de estado 200 OK, que significa "todo funcionó". Si no lo hace, Sirvoy intentará enviar el callback hasta 10 veces, espaciando cada intento más y más, antes de detenerse por completo. Si los callbacks siguen fallando, te notificaremos por correo electrónico y eliminaremos el webhook después de un aviso final.
  • HTTPS y TLS: La URL de tu webhook debe ser segura (comenzar con https://) y usar TLS versión 1.2 o superior. TLS (Transport Layer Security) cifra los datos para que nadie pueda leerlos mientras se envían. Si tu certificado HTTPS no es válido, Sirvoy no enviará ningún dato.
  • Comprobaciones de estado: Sirvoy verifica ocasionalmente si tu URL está activa enviando una solicitud simple HTTP GET, una forma de preguntar a tu servidor "¿estás ahí?" sin enviar datos. Tu servidor debe responder con 200 OK ("todo bien") para que estas comprobaciones se completen correctamente.
  • Orden de eventos: Se envía un webhook para cada evento de reserva, pero los eventos pueden llegar fuera de orden. Por ejemplo, una modificación puede llegar antes del evento de reserva original. Utiliza la marca de tiempo generatedAt en cada mensaje para organizarlos en el orden correcto.

Evita que tu firewall bloquee los callbacks

Si tu sistema utiliza un firewall (software o hardware que bloquea el tráfico no deseado de internet), es posible que debas agregar a la lista de permitidos ciertas direcciones IP. Agregar a la lista de permitidos significa permitir el tráfico de fuentes específicas mientras se bloquean otras.

Agrega a la lista de permitidos estas direcciones IP:

34.243.166.60
52.18.11.99
63.34.80.48
54.194.0.85
2a05:d018:e34:5300::/56

Los callbacks se envían desde servidores que admiten tanto IPv4 (el estándar de direccionamiento de internet más antiguo) como IPv6 (el más nuevo).


Ejemplo de callbak en JSON

Estos ejemplos muestran el tipo de datos que Sirvoy envía a tu URL de webhook y cómo están formateados.

Son útiles para desarrolladores o cualquier persona que esté construyendo un sistema que necesite recibir y procesar datos de reservas de Sirvoy.

El primer ejemplo muestra un callback básico para una nueva reserva. El segundo incluye más detalles, como facturas y pagos, para mostrar lo que se incluye cuando se trata de datos financieros.

Ejemplo: Callback de nueva reserva

"version": "2.0",
	"generatedAt": "2024-05-31T12:11:53.639+00:00",
	"event": "new",
	"propertyId": 1,
	"bookingId": 26006,
	"channelBookingId": null,
	"bookingDate": "2024-05-31T12:09:16+00:00",
	"arrivalDate": "2024-06-01",
	"departureDate": "2024-06-04",
	"cancelled": false,
	"eta": "10:00",
	"totalAdults": 4,
	"guest": {
    	"firstName": "John",
    	"lastName": "Doe",
    	"businessName": "Acme",
    	"address": "Fancy street",
    	"postcode": "11-111",
    	"city": "York",
    	"state": "NY",
    	"country": "US",
    	"phone": "+16033336666",
    	"email": "guest@email.com",
    	"passportNo": "XX11122223333",
    	"language": "en",
    	"message": "Additional comment added by guest"
	},
	"guestReference": "2103001",
	"internalComment": null,
	"couponCode": null,
	"bookingSource": "Front desk",
	"bookingIsCheckedIn": false,
	"bookingIsCheckedOut": false,
	"bookingIsConfirmed": true,
	"customFields": [
    	{
        	"name": "Custom text field name",
        	"value": "text added by guest"
    	},
    	{
        	"name": "Custom checkbox unchecked",
        	"value": false
    	},
    	{
        	"name": "Custom checkbox checked",
        	"value": true
    	}
	],
	"rooms": [
    	{
        	"RoomTypeName": "Basic room",
        	"RoomTypeDescription": "Basic room",
        	"RoomName": "101",
        	"RoomId": 2,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	},
    	{
        	"RoomTypeName": "Fancy room",
        	"RoomTypeDescription": "Fancy room",
        	"RoomName": "182",
        	"RoomId": 83,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	}
	],
	"additionalItems": [
    	{
        	"description": "Breakfast",
        	"specificDate": null,
        	"quantity": 12,
        	"price": 20,
        	"itemTotal": 240,
        	"ledgerAccount": null
    	}
	],
	"bookedCategory": null,
	"currency": "EUR",
	"totalPrice": 840,
	"totalSurcharges": 84,
	"totalPriceIncludingSurcharges": 924,
	"payments": [],
	"invoices": []
}
 
 

Ejemplo: Callback de nueva reserva con datos financieros

{
	"version": "2.0",
	"generatedAt": "2024-05-31T12:15:23.895+00:00",
	"event": "modified",
	"propertyId": 1,
	"bookingId": 26006,
	"channelBookingId": null,
	"bookingDate": "2024-05-31T12:09:16+00:00",
	"arrivalDate": "2024-06-01",
	"departureDate": "2024-06-04",
	"cancelled": false,
	"eta": "10:00",
	"totalAdults": 4,
	"guest": {
    	"firstName": "John",
    	"lastName": "Doe",
    	"businessName": "Acme",
    	"address": "Fancy street",
    	"postcode": "11-111",
    	"city": "York",
    	"state": "NY",
    	"country": "US",
    	"phone": "+16033336666",
    	"email": "guest@email.com",
    	"passportNo": "XX11122223333",
    	"language": "en",
    	"message": "Additional comment added by guest"
	},
	"guestReference": "2103001",
	"internalComment": null,
	"couponCode": null,
	"bookingSource": "Front desk",
	"bookingIsCheckedIn": false,
	"bookingIsCheckedOut": false,
	"bookingIsConfirmed": true,
	"customFields": [
    	{
        	"name": "Custom text field name",
        	"value": "text added by guest"
    	},
    	{
        	"name": "Custom checkbox unchecked",
        	"value": false
    	},
    	{
        	"name": "Custom checkbox checked",
        	"value": true
    	}
	],
	"rooms": [
    	{
        	"RoomTypeName": "Basic room",
        	"RoomTypeDescription": "Basic room",
        	"RoomName": "101",
        	"RoomId": 2,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	},
    	{
        	"RoomTypeName": "Fancy room",
        	"RoomTypeDescription": "Fancy room",
        	"RoomName": "182",
        	"RoomId": 83,
        	"arrivalDate": "2024-06-01",
        	"departureDate": "2024-06-04",
        	"adults": 2,
        	"quantity": 3,
        	"price": 100,
        	"roomTotal": 300,
        	"guestName": null,
        	"comment": null,
        	"ledgerAccount": null
    	}
	],
	"additionalItems": [
    	{
        	"description": "Breakfast",
        	"specificDate": null,
        	"quantity": 12,
        	"price": 20,
        	"itemTotal": 240,
        	"ledgerAccount": null
    	}
	],
	"bookedCategory": null,
	"currency": "EUR",
	"totalPrice": 840,
	"totalSurcharges": 84,
	"totalPriceIncludingSurcharges": 924,
	"payments": [],
	"invoices": [
    	{
        	"invoiceNumber": "41002",
        	"invoiceDate": "2024-06-01",
        	"dueDate": "2024-06-01",
        	"receiver": "Acme",
        	"address": [
            	"John Doe",
            	"Fancy street",
            	"York, NY 11-111",
            	"United States"
        	],
        	"roundingAmount": 0,
        	"invoiceTotal": 924,
        	"originInvoice": null,
        	"invoiceRows": [
            	{
                	"quantity": 3,
                	"price": 100,
                	"rowTotal": 300,
                	"ledgerAccount": "100",
                	"rowText": "Basic room",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	},
            	{
                	"quantity": 3,
                	"price": 100,
                	"rowTotal": 300,
                	"ledgerAccount": "100",
                	"rowText": "Fancy room",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	},
            	{
                	"quantity": 12,
                	"price": 20,
                	"rowTotal": 240,
                	"ledgerAccount": "200",
                	"rowText": "Breakfast",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	},
            	{
                	"quantity": 1,
                	"price": 84,
                	"rowTotal": 84,
                	"ledgerAccount": "300",
                	"rowText": "surcharge",
                	"vatRate": 0,
                	"vatAmount": 0,
                	"bookingId": 26006
            	}
        	],
        	"payments": [
            	{
                	"paymentId": 28,
                	"createdAt": "2024-05-31T12:15:09+00:00",
                	"valueDate": "2024-06-01",
                	"amount": 924,
                	"ledgerAccount": "3606",
                	"paymentReference": null,
                	"comment": null
            	}
        	]
    	}
	]
}
 
 
webhooks automatización de reservas de hotel callback de evento de reserva herramientas para desarrolladores de software hotelero webhook tls seguro datos de reserva en json automatización de software de hospitalidad api de datos de reserva integración de software de contabilidad acceso a habitaciones sin llave automatización de facturas de reserva integración con sistemas de reservas externos actualización de reservas automatizadas webhook de evento de reserva webhook de sirvoy integraciones de tecnología hotelera sistemas de entrada remota integración de software

¿Te resultó útil este artículo?

Sí
No
¿Notaste algo raro? Cuéntanoslo.

Artículos relacionados

  • Controlar la activación del seguimiento de terceros en el motor de reservas y el formulario de revisión de reserva
  • ¿Tiene Sirvoy una API abierta para las integraciones?
  • Exportar detalles de reserva a CSV

¿Necesitas ayuda con Sirvoy?

Estás en el lugar adecuado.

  • Sirvoy
  • Ingresar
  • Contacto

©2026 Sirvoy . All Rights reserved.

Knowledge Base Software by Helpjuice

Expand