Reservas

Tabla de Contenidos

Introducción

En este artículo hablamos sobre las peticiones de la API relacionadas con los Bookings.

Procesar un booking

El endpoint se encarga de verificar la creación/actualización de la reserva en cuestión, así como de las estancias, contactos asociados.

Es necesario que el apiuser posea el permiso "bookings" para la utilización de este endpoint.

  • Endpoint: https://app.hoteldatahub.io/api/v1/bookings/
  • Swagger: https://app.hoteldatahub.io/swagger/#/bookings

Casos de uso

El endpoint para la gestión de reservas resulta de gran utilidad para incorporar nuevas reservas en Fideltour procedentes de distintas fuentes. Para el caso de reservas ya existentes, permite ampliar la información contenida en su ficha enriqueciendo así la calidad de la base de datos. Múltiples orígenes de datos permiten obtener distinta información que después se centraliza en Fideltour.

Métodos disponibles

Método Endpoint
POST https://app.hoteldatahub.io/api/v1/bookings/

Tabla de parámetros

Booking

Clave Tipo Obligatorio Descripción
hotel_chain String Código de la empresa. Proporcionado por HotelDataHub.
external_object_id String Identificador externo de la reserva en HotelDataHub
date Datetime (YYYY-MM-DDTHH:MM:SS) Fecha de creación
entrance Date (YYYY-MM-DD) Fecha de entrada
departure Date (YYYY-MM-DD) Fecha de salida
localizer String Localizador
hotel Integer Identificador del hotel. Proporcionado por HotelDataHub.
agency String No Nombre de la agencia
amount Float No Importe total
currency String No Moneda en ISO 4217
status Integer No Estado:
1 = Anulado
2 = Confirmado
3 = Pendiente
4 = Cancelado
5 = No show
6 = Modificado
7 = Cotización
8 = Estancia
9 = Salida
input_channel Integer No Canal de entrada del movimiento:
0 = Teléfono
1 = Web
2 = App
3 = Wifi
4 = PMS
5 = API
6 = Import
7 = BE
8 = Chatbot
9 = Concierge
10 = Call center
11 = IBE (BE ad-hoc)
12 = Channel manager
14 = PMS Restaurant
15 = PMS Spa
17 = BE Restaurant
18 = BE Spa
19 = Connector HUB
20 = Digital key platform
21 = CRM corporativo
22 = Social media form
regime String No Nombre del tipo de regimen
room_type String No Nombre del tipo de habitación
fare_type String No Nombre del tipo de tarifa
offer String No Nombre de la oferta
event_type String No Nombre del tipo de evento
package String No Nombre del paquete
category String No Nombre de la categoría (segmento)
url String (máx. 2048 caracteres) No Permite enviar una URL asociada a la reserva
notes String (máx. 1024 caracteres) No Comentarios sobre la reserva
tags List[String] No Listado de etiquetas asociadas a la reserva
stays List[Stay] Consultar tabla de Stay abajo
extras List[Extra] No Consultar tabla de Extra abajo

Stay

Nota: Para temas de comodidad, campos ya presentes en el booking con el mismo valor en el stay se pueden omitir, de esta forma el stay inferirá dichos valores del booking.

Clave Tipo Obligatorio Descripción
hotel_chain String Código de la empresa. Proporcionado por HotelDataHub.
external_object_id Integer Identificador en HotelDataHub
date Datetime (YYYY-MM-DDTHH:MM:SS) Fecha de creación
entrance Date (YYYY-MM-DD) Fecha de entrada
departure Date (YYYY-MM-DD) Fecha de salida
localizer String Localizador
hotel Integer Identificador del hotel. Proporcionado por HotelDataHub.
agency String No Nombre de la agencia
amount Float No Importe total
currency String No Moneda en ISO 4217
status Integer No Estado del movimiento:
1 = Anulado
2 = Confirmado
3 = Pendiente
4 = Cancelado
5 = No show
6 = Modificado
7 = Cotización
8 = Estancia
9 = Salida
room 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
regime String No Nombre del tipo de regimen
contracted_regime String No Régimen contratado originalmente
upgraded_regime String No Régimen asignado tras upgrade
room_type String No Nombre del tipo de habitación
contracted_room_type String No Tipo de habitación contratada
upgraded_room_type String No Tipo de habitación asignada tras upgrade
fare_type String No Nombre del tipo de tarifa
offer String No Nombre de la oferta
event_type String No Nombre del tipo de evento
package String No Nombre del paquete
category String No Nombre de la categoría (segmento)
url String (máx. 2048 caracteres) No Permite enviar una URL asociada a la estancia
notes String (máx. 1024 caracteres) No Comentarios sobre la estancia
guests List[Guest] Consultar tabla de Guest abajo

Extra

Clave Tipo Obligatorio Descripción
id String Id del Extra
localizer String Localizer del extra
name String Nombre del extra
date Datetime (YYYY-MM-DDTHH:MM:SS) No Fecha de creación del extra
start Date (YYYY-MM-DD) No Fecha de inicio del extra
end Date (YYYY-MM-DD) No Fecha de finalización del extra
amount Numérico No Total del extra
currency String No Moneda de pago del extra

Guest

Clave Tipo Obligatorio Descripción
email String Campo único en la DB de Fideltour, usado como identificador del huésped
external_object_id String No Identificador externo del huésped
is_owner Booleano No Indica si el huésped principal de la reserva
name String No Nombre
surname String No Apellidos
phone String No Teléfono
birthday Date (YYYY-MM-DD) No Fecha de nacimiento
gender Integer No Género:
0 = no especificado (default)
1 = hombre
2 = mujer
3 = no binario
4 = género fluido
5 = prefiere no decirlo
address String No Dirección
post_code String No Código postal
zone String No Nombre de la zona
town String No Nombre de la ciudad
province String No Nombre de la provincia
country String No ISO 3166-1 alpha-2
language String No ISO 639-1 Code
identification_document_type Numérico No Tipo de documento de identidad:
0 = Otros
1 = DNI
2 = NIE
3 = Pasaporte
identification_number String No Número de documento de identidad
business_name String No Nombre de la empresa
work_place String No Cargo empresarial
business_address String No Dirección de la empresa
fiscal_address String No Dirección fiscal
url String (máx. 2048 caracteres) No URL asociada al huésped
notes String No Notas
custom_tags List[String] No Listado formado por nombres de etiquetas
custom_fields Objeto No Diccionario clave-valor con campos personalizados del contacto
subscribed Booleano No Suscrito a comunicaciones comerciales. true = suscrito, false = no suscrito (por defecto)
accept_terms Booleano No Acepta los términos y condiciones
accept_personalized_communications Booleano No Acepta comunicaciones comerciales personalizadas
accept_sms Booleano No Acepta comunicaciones comerciales por SMS
accept_webpush Booleano No Acepta notificaciones web push
accept_whatsapp Booleano No Acepta comunicaciones comerciales por WhatsApp
subscribed_datetime Datetime (YYYY-MM-DDTHH:MM:SS) No Fecha y hora de la suscripción
opt_in String No Tipo de opt-in:
S = Simple opt-in
D = Doble opt-in
P = Doble opt-in pendiente
loyalty_subscribed Booleano No Si true, registra al huésped en el programa de fidelización
loyalty_unsubscribed Booleano No Si true, da de baja al huésped del programa de fidelización
loyalty_datetime Datetime (YYYY-MM-DDTHH:MM:SS) No Fecha y hora de alta en el programa de fidelización
loyalty_id String No Número de tarjeta del programa de fidelización
loyalty_level String No Identificador del nivel de fidelización
loyalty_nights Integer No Total de noches acumuladas en el programa
loyalty_bookings Integer No Total de reservas acumuladas en el programa
loyalty_last_booking Date (YYYY-MM-DD) No Fecha de la última reserva en el programa

Ejemplos

A continuación mostramos un ejemplo de procesamiento de reserva:

Petición (POST)

Protocolo: HTTP/1.1 Método: POST Endpoint: https://app.hoteldatahub.io/api/v1/bookings/

Headers:

Content-Type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Body:

{
  "hotel": 2293,
  "hotel_chain": "6NOK",
  "date": "2025-11-27T10:08:08",
  "entrance": "2026-10-02",
  "departure": "2026-10-04",
  "localizer": "91764088833/6",
  "external_object_id": "12345726",
  "agency": "Empresa de prueba",
  "offer": "Black Friday",
  "category": "Adultos consumistas",
  "amount": 280,
  "currency": "EUR",
  "input_channel": 4,
  "status": 2,
  "stays": [
    {
      "entrance": "2026-10-02",
      "departure": "2026-10-04",
      "localizer": "91764088833/6",
      "external_object_id": "123456112",
      "amount": 280,
      "currency": "EUR",
      "room": "0A Doble 2 camas",
      "room_type": "Habitación Doble",
      "regime": "Alojamiento",
      "adults": 2,
      "children": 0,
      "status": 2,
      "guests": [
        {
          "id": "3183465",
          "name": "BETTINA",
          "is_owner": true,
          "surname": "STROBEL",
          "email": "bettinastrobel@web.de",
          "phone": "0049772691980",
          "gender": 2,
          "language": "es",
          "birthday": "1990-12-12",
          "post_code": "07009",
          "notes": "",
          "country": "DE",
          "custom_tags": [],
          "subscribed": false
        }
      ]
    }
  ]
}