Gestión de reservas

Gestión de reservas

Introducción

Este endpoint del Webservice permite la creación y actualización de reservas asociadas a contactos en Fideltour de forma externa.


Casos de uso

Las reservas son movimientos de contactos con mucha utilidad en Fideltour. El endpoint para la gestión de reservas resulta de gran utilidad para automatizar el envío de campañas de email marketing o para añadir puntos a la ficha de un contacto fidelizado si estás utilizando el módulo loyalty de Fideltour.

  1. Gestión de campañas: las campañas de email marketing pueden automatizarse en base a los datos de una reserva. Podemos enviar campañas según la fecha de entrada o salida de un huésped de un hotel, incluso indicando un offset de varios días anteriores o posteriores a esta fecha. También podemos utilizar la fecha de realización de la reserva para enviar un correo de agradecimiento, de venta cruzada o simplemente informativo.
  2. Programa de fidelización: Si tienes contratado el módulo loyalty de Fideltour puedes utilizar los datos de las reservas de un miembro del club para otorgarle puntos según su estancia. En Fideltour el programa de fidelización toma como referencia las reservas efectuadas -con checkout realizado en el hotel- para calcular los puntos que obtendrá el huésped. Utilizando este endpoint desde tu PMS puedes indicar a Fideltour cuándo un huésped ha abandonado tu establecimiento y añadirle automáticamente los puntos sin necesidad de añadirle los puntos de forma manual.

Métodos disponibles

  1. GET: Consulta de datos de una reserva
  2. POST: Inserción de una nueva reserva
  3. PATCH: Actualización de los datos de una reserva existente
Para el uso de los métodos GET y PATCH se debe indicar el ID interno de la reserva en Fideltour. Para obtener el ID de la reserva en Fideltour es posible filtrar estos movimientos utilizando el localizador de la reserva, enviándolo como un parámetro de la URL en el momento de realizar la petición:

GET {{backend_url}}/api/3rd-party/bookings/?localizer=localizadordelareserva

También es posible realizar este filtrado utilizando los parámetros opcionales email, date, checkin o checkout.

Se debe tener en cuenta también que en Fideltour hay distintos tipos de canales de entrada de movimientos:

Se debe tener en cuenta que en Fideltour hay diferentes tipos de canales de entrada para las reservas -ver detalles del parámetro input_channel en la tabla a continuación- y, por tanto, cuando se introduce o modifica una reserva se deberá revisar si ya existe la misma reserva para el canal de entrada correspondiente.


Tabla de parámetros

Campo

Tipo

Obl.

Descripción

hc

Cadena de caracteres

Si

Código de la empresa

email

Cadena de caracteres

Si

Email del contacto, campo único, usado como identificador del contacto.

date

Date DD/MM/YYYY

Si

Fecha de la reserva

checkin

Date DD/MM/YYYY

Si

Fecha de entrada

checkout

Date DD/MM/YYYY

Si

Fecha de salida

localizer

Cadena de caracteres

Si

Localizador

hotel

Cadena de caracteres

Si

Código del hotel

agency

Cadena de caracteres

No

Agencia

contact_first_name

Cadena de caracteres

No

Nombre del contacto

contact_last_name

Cadena de caracteres

No

Apellido del contacto

contact_email

Cadena de caracteres

No

Email del contacto

contact_phone

Cadena de caracteres

No

Teléfono del contacto

status

Numérico

No

Estado de la reserva: Activa=1; Inactiva=0; Defecto=1

room_number

Cadena de caracteres

No

Número de habitación

amount

Numérico (decimal)

No

Importe (€)

room_type

Cadena de caracteres

No

Código del tipo de habitación. Ha de coincidir con los códigos que tenga dados de alta la cadena hotelera.

regime

Cadena de caracteres (máx. 20 caracteres)

No

Código del tipo de régimen. Si el código no está dado de alta en la cuenta de la cadena, se creará uno nuevo en el momento del envío de la petición.

adults

Numérico

No

Cantidad de adultos en la reserva

childs

Numérico

No

Cantidad de niños en la reserva

babies

Numérico

No

Cantidad de bebés en la reserva

input_channel

Numérico

No

Canal de entrada de la reserva

  • 0 = Teléfono

  • 1 = Web

  • 2 = App

  • 3 = Wifi

  • 4 = PMS

  • 5 = API

  • 6 = IMPORT

  • 7 = BE

is_checkout_realized

Booleano

No

Indica si se ha confirmado/realizado el checkout. Default: False


Ejemplo

En el siguiente ejemplo se muestra una solicitud para insertar una reserva del cliente pablo@customia.com.


Petición (POST)

POST: {{backend_url}}/api/3rd-party/bookings/
HTTP/1.1

HOST: backend.fideltour.com
content-type: application/json
authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
content-length: 203
{
"hc": "XXXXXX",
"hotel": "YYY",
"email": "pablo@customia.com",
"date": "2019-02-26",
"checkin": "2020-04-04",
"checkout": "2020-04-06",
"localizer": "FDSA1234ASDF",
"input_channel": 5
}

Respuesta (POST)

{
"hc": "XXXXXX",
"email": "pablo@customia.com",
"date": "26/02/2019",
"checkin": "2020-04-04",
"checkout": "2020-04-06",
"localizer": "FDSA1234ASDF",
"hotel": "YYY",
"status": 0,
"room_number": "120",
"amount": "1150",
"room_type": "VSUITE",
"regime": "MP",
"adults": 2,
"childs": 1,
"babies": 1,
"input_channel": 5
}


En el siguiente ejemplo se muestra una solicitud para consultar la información de la reserva con localizador "FDSA1234ASDF".

Petición (GET)

GET: {{backend_url}}/api/3rd-party/bookings/
HTTP/1.1

HOST: backend.fideltour.com
authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
content-length: 203
?hc=XXXX&localizer=FDSA1234ASDF

Respuesta (GET)

{
"hc": "XXXXXX",
"email": "pablo@customia.com",
"date": "20219-02-26",
"checkin": "2020-04-04",
"checkout": "2020-04-06",
"localizer": "FDSA1234ASDF",
"hotel": "YYY",
"status": 0,
"room_number": "120",
"amount": "1150",
"room_type": "VSUITE",
"regime": "MP",
"adults": 2,
"childs": 1,
"babies": 1,
"input_channel": 5
}


En el siguiente ejemplo se muestra una solicitud para actualizar la reserva con ID "1234".

Petición (PATCH)

PATCH: {{backend_url}}/api/3rd-party/bookings/1234/
HTTP/1.1

HOST: backend.fideltour.com
content-type: application/json
authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
content-length: 203
{
"hc": "XXXXXX",
"hotel": "YYY",
"email": "pablo@customia.com",
"date": "2019-02-26",
"checkin": "2020-04-04",
"checkout": "2020-04-06",
"localizer": "FDSA1234ASDF",
"input_channel": 5
}

Respuesta (PATCH)

{
"hc": "XXXXXX",
"email": "pablo@customia.com",
"date": "26/02/2019",
"checkin": "2020-04-04",
"checkout": "2020-04-06",
"localizer": "FDSA1234ASDF",
"hotel": "YYY",
"status": 0,
"room_number": "120",
"amount": "1150",
"room_type": "VSUITE",
"regime": "MP",
"adults": 2,
"childs": 1,
"babies": 1,
"input_channel": 5
}

Importación de fichero JSON

Es posible realizar la importación de nuevas reservas y sus contactos asociados mediante un fichero JSON. Con este fichero de pueden importar los mismos campos que se mencionan en la tabla de parámetros de este documento y en la tabla de parámetros del endpoint para la creación de contactos (que puedes consultar aquí).

Detalles del endpoint

La URL del Webservice es:

Recuerda que este endpoint se utiliza para el envío de nuevas reservas, por lo que debes utilizar el método POST a la hora de realizar la petición.

Ejemplo (POST JSON)

POST: /api/3rd-party/bookings/import-json/ HTTP/1.1

HOST:
 backend.fideltour.com
content-type: multipart/form-data
authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Ejemplo de archivo (JSON)

[{
"status": "1",
"hotel_code": "HCUSTOMIA",
"localizer": "GF58DWE",
"room_type": "DVM",
"regime": "MP",
"adults": "5",
"childs": "0",
"babies": "0",
"date": "2019-06-25",
"entrance": "2019-08-25",
"departure": "2019-10-09",
"room_number": "203",
"pvp": "1240.5",
"services": [{
"name": "restaurante",
"service_id": "rest"
},
{
"name": "spa",
"service_id": "s"
}
],
"guests": [{
"first_name": "Coromoto",
"last_name": "Beltran",
"phone1": "7888015693",
"phone2": "6959635439",
"gender": "1",
"language": "ES",
"birthdate": "1990-07-06",
"notes": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
"address": "C/Isidoro Antillon 30",
"work_place": "CEO",
"business_name": "CUSTOMIA",
"business_address": "C/Gremi Fusters 33, 314",
"fiscal_address": "C/Gremi Fusters 33, 314",
"country": "ES",
"subscribed": true
},
{
"first_name": "Dayanara",
"last_name": "Cossio Alegria",
"phone1": "8970954019",
"phone2": "6874064585",
"gender": "2",
"language": "EN",
"birthdate": "1989-05-02",
"notes": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s",
"address": "C/Son Rapinya 33",
"work_place": "Comercial",
"business_name": "FIDELTOUR",
"business_address": "C/Gremi Fusters 33, 314",
"fiscal_address": "C/Gremi Fusters 33, 314",
"country": "EN",
"subscribed": false
}
]
}, {
"status": "1",
"hotel_code": "HCUSTOMIA",
"localizer": "GF58DWE",
"room_type": "DVM",
"regime": "MP",
"adults": "5",
"childs": "0",
"babies": "0",
"date": "25/06/2019",
"entrance": "2019-08-25",
"departure": "2019-09-10",
"room_number": "203",
"pvp": "1240.5",
"services": [{
"name": "restaurante",
"service_id": "rest"
},
{
"name": "spa",
"service_id": "s"
}
],
"guests": [{
"first_name": "Coromoto",
"last_name": "Beltran",
"phone1": "7888015693",
"phone2": "6959635439",
"gender": "1",
"language": "ES",
"birthdate": "1990-07-06",
"notes": "It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.",
"address": "C/Isidoro Antillon 30",
"work_place": "CEO",
"business_name": "CUSTOMIA",
"business_address": "C/Gremi Fusters 33, 314",
"fiscal_address": "C/Gremi Fusters 33, 314",
"country": "ES",
"subscribed": true
},
{
"first_name": "Dayanara",
"last_name": "Cossio Alegria",
"phone1": "8970954019",
"phone2": "6874064585",
"gender": "2",
"language": "EN",
"birthdate": "1989-05-02",
"notes": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s",
"address": "C/Son Rapinya 33",
"work_place": "Comercial",
"business_name": "FIDELTOUR",
"business_address": "C/Gremi Fusters 33, 314",
"fiscal_address": "C/Gremi Fusters 33, 314",
"country": "EN",
"subscribed": false
}
]
}]

    • Related Articles

    • Conexiones de entrada

      Introducción Este endpoint del Webservice permite incorporar en Fideltour movimientos de conexión realizados desde plataformas de terceros. La URL de este Webservice es:  https://backend.fideltour.com/api/3rd-party/entries/ Casos de uso En muchas ...
    • Programa de fidelización

      Introducción Este endpoint del Webservice permite, desde plataformas externas, realizar la consulta y gestión de los miembros del programa de fidelización, su membresía, sus puntos, productos y canjeos realizados. Para el uso de este endpoint es ...
    • Introducción

      Presentación Bienvenido a la documentación de la API pública de Fideltour, una API para la comunicación entre Fideltour y otras aplicaciones como motores de reservas, PMS, plataformas de gestión de contenidos, portales WiFi, etc. Esta guía se centra ...
    • Gestión de contactos

      Introducción Este endpoint del Webservice permite la creación y actualización de fichas de contacto en Fideltour de forma externa. La URL de este Webservice es: https://backend.fideltour.com/api/3rd-party/contacts/ Casos de uso El endpoint para la ...
    • Formularios de suscripción

      Introducción En el presente documento se describen los pasos a seguir para la implementación del formulario de suscripción de contactos de Fideltour en su página web. Es esencial el cumplimiento minucioso de las especificaciones que se describen para ...