Tabla de contenidos
- Introducción
 - Casos de uso
 - Métodos disponibles
 - Tabla de parámetros
 - Ejemplos
 
- Petición (POST)
 - Respuesta (POST)
 - Petición (GET)
 - Respuesta (GET)
 - Petición (PATCH)
 - Respuesta (PATCH)
 
Introducción:
En este artículo hablamos sobre las peticiones de la API relacionadas con los Movimientos(Entries).
- Crear movimiento
 - Actualizar movimiento
 - Listar y filtrar movimientos
 
Se entiende por movimiento cualquier conjunto de datos que implique una acción de un cliente a través de una plataforma de terceros, como por ejemplo:
- Una reserva desde el motor de la web.
 - Una estancia desde el PMS.
 - Una conexión desde el portal cautivo.
 - La compra de un servicio del hotel desde una aplicación de conserjería virtual...
 
El endpoint que utilizamos es: https://app.hoteldatahub.io/api/v1/entries/ y el apartado del Swagger es: https://app.hoteldatahub.io/swagger/#/entries
Casos de uso:
La gestión de movimientos resulta de gran utilidad para segmentar y automatizar el envío de campañas de email marketing, o para añadir puntos a la ficha de un contacto fidelizado.
- Gestión de campañas: en Fideltour, las campañas de email marketing pueden automatizarse en base a los datos de un movimiento. Por ejemplo, es posible enviar campañas según la fecha de entrada o salida de un huésped, también podemos utilizar la fecha de creación de la reserva para enviar un correo de agradecimiento, de venta cruzada o simplemente informativo.
 
- Programa de fidelización: si el cliente tiene contratado el módulo Loyalty de Fideltour, se utilizan los movimientos para otorgar puntos de fidelización a los contactos.
 
Métodos disponibles:
Todos los métodos y filtros disponibles para trabajar con movimientos se pueden consultar aquí.
En este artículo nos centramos en los siguientes:
En este artículo nos centramos en los siguientes:
- GET: Consulta de datos de uno o varios movimientos
 - POST: Creación de un nuevo movimiento
 - PATCH: Actualización de los datos de un movimiento ya existente
 
En algunos métodos es necesario conocer el ID del entry, y para obtener dicho ID, recomendamos utilizar el endpoint https://app.hoteldatahub.io/api/v1/entries/ con los siguientes parámetros de URL:
- Localizador (localizer)
 - ID del contacto al que pertenece (contact)
 - Canal de entrada del movimiento(input_channel)
 
Tabla de parámetros:
Campo  | Tipo  | Obl.  | Descripción  | 
hotel_chain  | String  | Si  | Código de la empresa.  Proporcionado por HotelDataHub.  | 
contact  | Integer  | Si  | Identificador en HotelDataHub, del contacto que realiza el movimiento.  | 
date  | Datetime YYYY-MM-DDTHH:MM:SS  | Si  | Fecha del movimiento  | 
entrance  | Date YYYY-MM-DD  | Si  | Fecha de entrada  | 
departure  | Date YYYY-MM-DD  | Si  | Fecha de salida  | 
localizer  | String  | Si  | Localizador  | 
hotel  | Integer  | Si  | Identificador del hotel. Proporcionado por HotelDataHub.  | 
agency  | String  | No  | Dos opciones: 
  | 
booking_type  | Integer  | No  | Tipo de movimiento 
  | 
amount  | Float  | No  | Importe total.  | 
currency  | String  | No  | Moneda.  | 
status  | Integer  | No  | Estado del movimiento 
 Default= 1  | 
sub_status  | Integer  | No  | Estado del movimiento 
  | 
room_number  | String  | No  | Número de habitación  | 
adults  | Integer  | No  | Cantidad de adultos en el movimiento  | 
juniors  | Integer  | No  | Cantidad de juniors en el movimiento  | 
children  | Integer  | No  | Cantidad de niños en el movimiento  | 
babies  | Integer  | No  | Cantidad de bebés en el movimiento  | 
input_channel  | Integer  | No  | Canal de entrada del movimiento 
  | 
is_checkin_realized  | Booleano  | No  | Indica si se ha confirmado/realizado el checkin. Default: False  | 
is_checkout_realized  | Booleano  | No  | Indica si se ha confirmado/realizado el checkout. Default: False  | 
url  | String (máx. 1024 caracteres)  | No  | Permite enviar una URL asociada al movimiento. Este campo puede ser aprovechado en el editor de campañas gracias a la etiqueta [BOOKING_URL]. Utiliza este campo si quieres incluir en tus campañas un enlace a un servicio externo a Fideltour, como podría ser un enlace a un sistema de check-in online o un portal externo de encuestas de satisfacción, para el que además necesitas una URL única para cada reserva.  | 
notes  | String (máx. 1024 caracteres)  | No  | Comentarios sobre la reserva  | 
regime  | String  | No  | Dos opciones: 
  | 
room_type  | String  | No  | Dos opciones: 
  | 
fare_type  | String  | No  | Nombre del tipo de tarifa. El sistema la crea si no existe ninguna con ese nombre  | 
offer  | String  | No  | Nombre de la oferta. El sistema la crea si no existe ninguna con ese nombre  | 
event_type  | String  | No  | Nombre del tipo de evento. El sistema lo crea si no existe ninguno con ese nombre  | 
package  | String  | No  | Nombre del paquete. El sistema lo crea si no existe ninguno con ese nombre  | 
category  | String  | No  | Nombre de la categoría(segmento). El sistema la crea si no existe ninguna con ese nombre  | 
Ejemplos:
A continuación mostramos algunos ejemplos de creación, actualización y visualización de movimientos.
Petición (POST):
En el siguiente ejemplo se muestra una solicitud para crear un movimiento de reserva del contacto con identificador 12345.
PROTOCOLO: HTTP/1.1
METODO: POST
HEADERS: 
Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BODY: se añade un ejemplo a continuación.
- {
 - "hotel_chain": "HotelChain",
 - "room_number": "315",
 - "input_channel": 1,
 - "status": 1,
 - "localizer": "XxXxXx-A",
 - "adults": 2,
 - "childs": 3,
 - "babies": 1,
 - "date": "2022-12-12T12:12:12",
 - "entrance": "2022-12-12",
 - "departure": "2022-12-12",
 - "amount": "576,56",
 - "booking_type": 0,
 - "is_checkout_realized": true,
 - "url": "urldelmoviento.com",
 - "currency": "euro",
 - "hotel": 50,
 - "contact": 12345,
 - "room_type": "Suite",
 - "regime": "Media pensión",
 - "agency": "Agencia de prueba"
 - }
 
Respuesta (POST):
- {
 - "id": 71.8011,
 - "hotel_chain": "HotelChain",
 - "room_number": "315",
 - "input_channel": 1,
 - "status": 1,
 - "localizer": "XxXxXx-A",
 - "adults": 2,
 - "childs": 3,
 - "babies": 1,
 - "date": "2022-12-12T12:12:12",
 - "entrance": "2022-12-12",
 - "departure": "2022-12-12",
 - "amount": "576.56",
 - "booking_type": 0,
 - "is_checkout_realized": true,
 - "url": "urldelmoviento.com",
 - "currency": "euro",
 - "hotel": 1779,
 - "contact": 7272998,
 - "room_type": 98,
 - "regime": 34,
 - "agency": 4
 - }
 
Petición (GET):
En el siguiente ejemplo se muestra una solicitud para consultar la información de la reserva con localizador " XxXxXx-A", perteneciente al contacto 12345 y realizada por el canal de entrada 1(WEB).
PROTOCOLO: HTTP/1.1
METODO: GET
HOST/ENDPOINT:  https://app.hoteldatahub.io/api/v1/entries/?contact=12345&localizer=XxXxXx-A&input_cannel=1 
HEADERS: 
- Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
BODY: En este caso al ser un método de tipo GET no incluimos datos en el cuerpo de la petición, ya que se incluyen en la url.
Respuesta (GET):
- {
 - "id": 71.8011,
 - "hotel_chain": "HotelChain",
 - "room_number": "315",
 - "input_channel": 1,
 - "status": 1,
 - "localizer": "XxXxXx-A",
 - "adults": 2,
 - "childs": 3,
 - "babies": 1,
 - "date": "2022-12-12T12:12:12",
 - "entrance": "2022-12-12",
 - "departure": "2022-12-12",
 - "amount": "576.56",
 - "booking_type": 0,
 - "is_checkout_realized": true,
 - "url": "urldelmoviento.com",
 - "currency": "euro",
 - "hotel": 1779,
 - "contact": 7272998,
 - "room_type": 98,
 - "regime": 34,
 - "agency": 4
 - }
 
Petición (PATCH):
En el siguiente ejemplo se muestra una solicitud para actualizar la reserva con ID "71.8011".
PROTOCOLO: HTTP/1.1
METODO: PATCH
HEADERS: 
Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BODY: se añade un ejemplo a continuación.
- {
 - "hotel_chain": "HotelChain",
 - "room_number": "Suite Junior",
 - "adults": 5,
 - "childs": 3,
 - "babies": 0,
 - "date": "2022-12-12T12:12:12",
 - "entrance": "2022-12-22",
 - "departure": "2022-12-26",
 - "amount": "876,56",
 - "hotel": 50,
 - "contact": 12345
 - }
 
Respuesta (PATCH):
- {
 - "id": 71.8011,
 - "hotel_chain": "HotelChain",
 - "room_number": "245",
 - "input_channel": 1,
 - "status": 1,
 - "localizer": "XxXxXx-A",
 - "adults": 5,
 - "childs": 3,
 - "babies": 0,
 - "date": "2022-12-12T12:12:12",
 - "entrance": "2022-12-22",
 - "departure": "2022-12-26",
 - "amount": "876.56",
 - "booking_type": 0,
 - "is_checkout_realized": true,
 - "url": "urldelmoviento.com",
 - "currency": "euro",
 - "hotel": 50,
 - "contact": 12345,
 - "room_type": 98,
 - "regime": 34,
 - "agency": 4
 - }