NAV
xml json

Introducción

Aquí podrá encontrar ejemplos de las diferente peticiones y repuestas soportadas por la API

Bienvenido a la documentación online de las especificaciones PUSH de descarga de reservas a través de la API Supplier-Phoenix. A través de esta API PUSH el proveedor podrá consultar y descargar las reservas realizadas en la plataforma Hotetec.

La creación y configuración inicial del hotel, así como de sus tarifas e inventario, se realizará a través de la extranet web https://hotel.new.hotetec.com. Funcionalidad soportada:

Control de versiones

Fecha Autor Versión Cambios realizados
07/04/2017 Tomeu Roig 1.0.0 Especificaciones PUSH de la API Supplier-Phoenix
28/01/2019 Rafel Mestre 1.1.0 Se añade el nodo PaymentDetail para el histórico de pagos de la reserva
26/04/2019 Rafel Mestre 1.1.1 Se añade el campo modificationDate para las modificaciones de reserva
21/11/2019 Rafel Mestre 1.1.2 Se añaden nuevos valores informativos en el nodo ExtraCustomData
20/03/2020 Rafel Mestre 1.1.3 Se añade el valor ota del método de pago. Se añade el país de orígen de la reserva.
23/03/2020 Rafel Mestre 1.1.3 Se añaden los nombres de los pasajeros de la reserva.
10/06/2020 Rafel Mestre 1.1.4 Se añade información adicional en los pasajeros, necesaria para efectuar el check-in
06/07/2020 Rafel Mestre 1.1.5 Se añade el nombre interno de las políticas comerciales aplicadas a una reserva. Se añade también la marca de 'NoShow' a nivel de habitación, en las reservas.
10/07/2020 Rafel Mestre 1.1.6 Se añaden más campos (fecha de expedición del documento, fecha de caducidad del documento y el código postal) en la información de los pasajeros.
17/07/2020 Rafel Mestre 1.1.7 Se añade el importe original de la reserva en el nodo ExtraCustomData (OriginalAmount)
29/07/2020 Rafel Mestre 1.1.8 Se añade el tipo de suplemento y los códigos promocionales aplicados
03/11/2020 Rafel Mestre 1.1.9 Se añaden el campo 'gender' para el check-in online. Se añade el código ISO3166 en la nacionalidad.
04/11/2020 Rafel Mestre 1.1.10 Se añade la comisión a nivel de reserva. También se añade el tipo de suplemento interno en la reserva.
03/02/2021 Rafel Mestre 1.1.11 Se añaden los gastos de cancelación en la reserva.
10/03/2021 Rafel Mestre 1.1.12 Se añade la información de los vuelos en los suplementos de transfer.
12/03/2021 Rafel Mestre 1.1.13 Se añade el nuevo valor 'CostDate' en el ExtraCustomData.
09/07/2021 Rafel Mestre 1.1.14 Se añade el nuevo mensaje de confirmación de reservas (BookingConfirmMessage)
09/08/2021 Rafel Mestre 1.1.15 Se añaden las reglas de venta en la descarga de reservas (Esta opción se tiene que activar desde Connectivity).
08/09/2021 Rafel Mestre 1.1.16 Se añaden campos a nivel de habitación y de suplemento, para la ayuda en la facturación.
17/12/2021 Rafel Mestre 1.1.17 Se añade nueva información referente al cliente de la reserva.
26/01/2022 Rafel Mestre 1.1.18 Se añade el parámetro 'card' en la petición de notificación de reservas por push
23/03/2022 Rafel Mestre 1.1.19 Se añade el documento de identificación a la persona de contacto.
24/08/2022 Rafel Mestre 1.1.21 Se añade el nuevo mensaje para añadir pagos a reservas (bookingAddPaymentMessage)
19/12/2022 Rafel Mestre 1.1.22 Se cambia el tipo del id de habitación de Integer a String
09/05/2023 Isaac Fullana 1.1.23 Se añade el elemento breakdown a nivel de PaymentDetail
27/06/2023 Rafel Mestre 1.1.24 Se añade el elemento loyalty que identifica las reservas de tipo GENIUS de Booking.com
11/07/2023 Rafel Mestre 1.1.25 Se permite la recuperación de reservas por localizador externo (clientReference).
21/07/2023 Rafel Mestre 1.1.26 Se cambia el tipo del campo BookingRoomId de Integer a String
24/07/2023 Rafel Mestre 1.1.27 Se añade el campo 'address' en los datos del cliente final de reserva (endCustomer).
24/01/2024 Rafel Mestre 1.1.28 Se cambia el tipo del campo serviceId del nodo commission, de Integer a String.
07/03/2024 Rafel Mestre 1.1.29 Se añade el elemento extraCustomData a nivel de habitación (BookingRoom).
15/05/2024 Rafel Mestre 1.1.30 Se añade el elemento language (idioma) a nivel de cliente final (endCustomer).
20/08/2024 Rafel Mestre 1.1.31 Nuevo mensaje de reventa de reservas (BookingResaleMessage)
20/08/2024 Rafel Mestre 1.1.32 Nuevo mensaje de cancelación de reservas (BookingCancelMessage)
11/12/2024 Rafel Mestre 1.1.33 Envío de las etiquetas asignadas a la persona de contacto de la reserva
09/04/2025 Rafel Mestre 1.1.34 Actualización de ejemplos de reserva (BookingRetrievalResponse).
09/04/2025 Rafel Mestre 1.1.35 Actualización de los valores devueltos en el campo ExtraCustomData.

Protocolo de conexión

Accept-encoding: gzip

Autenticación

Ejemplo elemento credentials, presente en todas las peticiones XML

<credentials>
    <systemCode>SFO</systemCode>
    <vendorCode>FOO</vendorCode>
    <user>BAR</user>
    <password>FOOBAR</password>
</credentials>
{
   "credentials": {
       "systemCode": "SFO",
       "vendorCode": "FOO",
       "user": "BAR",
       "password": "FOOBAR"
   }
}

Todas las peticiones contienen el elemento credentials (ejemplo a la derecha), el cuál contiene las credenciales de autenticación.

HotelConfiguration

Ejemplo petición HotelConfigurationRequest para recuperar la configuración del hotel 1234   Run in Postman

<?xml version="1.0" encoding="UTF-8"?>
<HotelConfigurationRequest>
   <credentials>
      <systemCode>SFO</systemCode>
      <vendorCode>FOO</vendorCode>
      <user>BAR</user>
      <password>FOOBAR</password>
   </credentials>
   <hotelCode>1234</hotelCode>
</HotelConfigurationRequest>
{
  "HotelConfigurationRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234"
  }
}

Ejemplo respuesta HotelConfigurationResponse

<?xml version="1.0" encoding="UTF-8"?>
<HotelConfigurationResponse>
    <sessionId>SUP#FOO#123456789</sessionId>
    <hotelConfig>
        <hotelCode>1234</hotelCode>
        <name>Hotetec Test</name>
        <currencyCode>EUR</currencyCode>
        <roomConfig>
            <roomCode>SGL#STD</roomCode>
            <name>Individual Estándar</name>
            <occupancy>
                <adults>1</adults>
                <children>0</children>
            </occupancy>
            <occupancy>
                <adults>1</adults>
                <children>1</children>
            </occupancy>
        </roomConfig>        
        <roomConfig>
            <roomCode>DBL#STD</roomCode>
            <name>Doble Estándar</name>
            <occupancy>
                <adults>1</adults>
                <children>0</children>
            </occupancy>
            <occupancy>
                <adults>2</adults>
                <children>0</children>
            </occupancy>
            <occupancy>
                <adults>2</adults>
                <children>1</children>
            </occupancy>
        </roomConfig>
        <mealPlanConfig>
            <mealPlanCode>RO</mealPlanCode>
            <name>Sólo alojamiento</name>
        </mealPlanConfig>
        <mealPlanConfig>
            <mealPlanCode>BB</mealPlanCode>
            <name>Alojamiento y desayuno</name>
        </mealPlanConfig>
        <mealPlanConfig>
            <mealPlanCode>HB</mealPlanCode>
            <name>Media pensión</name>
        </mealPlanConfig>
        <inventoryConfig>
            <inventoryCode>1</inventoryCode>
            <name>Inventario general</name>
        </inventoryConfig>
        <rateConfig>
            <rateCode>BASE</rateCode>
            <name>Tarifa Base</name>
            <inventoryCode>1</inventoryCode>
            <managedByPush>false</managedByPush>
            <cancelPolicyType>Variable</cancelPolicyType>
        </rateConfig>
        <rateConfig>
            <rateCode>OFENRE</rateCode>
            <name>Tarifa No Reembolsable</name>
            <inventoryCode>1</inventoryCode>
            <managedByPush>false</managedByPush>
            <rateProperty>
                <name>Destacada</name>
            </rateProperty>
            <cancelPolicyType>NonRefundable</cancelPolicyType>
        </rateConfig>        
    </hotelConfig>
</HotelConfigurationResponse>
{
  "HotelConfigurationResponse": {
    "sessionId": "SUP#FOO#123456789",
    "hotelConfig": {
      "hotelCode": "1234",
      "name": "Hotetec Test",
      "currencyCode": "EUR",
      "roomConfig": [
        {
          "roomCode": "SGL#STD",
          "name": "Individual Estándar",
          "occupancy": [
            {
              "adults": "1",
              "children": "0"
            },
            {
              "adults": "1",
              "children": "1"
            }
          ]
        },
        {
          "roomCode": "DBL#STD",
          "name": "Doble Estándar",
          "occupancy": [
            {
              "adults": "1",
              "children": "0"
            },
            {
              "adults": "2",
              "children": "0"
            },
            {
              "adults": "2",
              "children": "1"
            }
          ]
        }
      ],
      "mealPlanConfig": [
        {
          "mealPlanCode": "RO",
          "name": "Sólo alojamiento"
        },
        {
          "mealPlanCode": "BB",
          "name": "Alojamiento y desayuno"
        },
        {
          "mealPlanCode": "HB",
          "name": "Media pensión"
        }
      ],
      "inventoryConfig": {
        "inventoryCode": "1",
        "name": "Inventario general"
      },
      "rateConfig": [
        {
          "rateCode": "BASE",
          "name": "Tarifa Base",
          "inventoryCode": "1",
          "managedByPush": "false",
          "cancelPolicyType": "Variable"
        },
        {
          "rateCode": "OFENRE",
          "name": "Tarifa No Reembolsable",
          "inventoryCode": "1",
          "managedByPush": "false",
          "rateProperty": { "name": "Destacada" },
          "cancelPolicyType": "NonRefundable"
        }
      ]
    }
  }
}

Mensaje utilizado para obtener la configuración del hotel. A través de este mensaje, el proveedor podrá obtener todos los códigos y tipología del hotel. Típicamente, este mensaje es el que utiliza el proveedor para recuperar los elementos a mapear. En resumen:

HotelConfigurationRequest

Mensaje petición para recuperar la configuración de los hoteles del proveedor. Opcionalmente se puede filtrar por código de hotel (hotelCode). Si no se indica, en la respuesta aparecerán todos los hoteles que gestiona el proveedor.

Elemento Tipo Obl? Descripción
credentials Credentials Credenciales de autenticación del usuario (Ver Autenticación)
hotelCode Integer No Código de hotel

HotelConfigurationResponse

Mensaje respuesta que contiene la configuración de los hoteles del proveedor (modalidades, regímenes, tarifas...)

Elemento Tipo Obl? Descripción
sessionId String Identificador de la sesión que ha procesado la transacción
hotelConfig[] HotelConfig No Elemento que contiene la configuración del hotel
hotelCode Integer Código de hotel
name String Nombre de hotel
currencyCode String Código de divisa (Códigos ISO 4217)
roomConfig[] RoomConfig Configuración de la modalidad de hotel
↳ roomCode String Código de modalidad
↳ name String Nombre de modalidad
↳ nestedInventoryRoomCode String No Código de la modalidad sobre la cuál anida el inventario 1
↳ babiesCountInOccupancy Boolean Indica si los bebés ocupan plaza 2
↳ occupancy Occupancy Ocupación permitida en la modalidad
↳↳ adults Integer Número de adultos de la ocupación
↳↳ children Integer Número de niños de la ocupación
mealPlanConfig[] MealPlanConfig Configuración de la regímenes alimenticios de hotel
↳ mealPlanCode String Código de régimen alimentício
↳ name String Nombre de régimen alimentício
inventoryConfig[] InventoryConfig Configuración de los inventarios del hotel 3
↳ inventoryCode Integer Código de inventario
↳ name String Nombre de inventario
rateConfig[] RateConfig Configuración de las tarifas del hotel
↳ rateCode String Código de tarifa
↳ name String Nombre de tarifa
↳ inventoryCode Integer Inventario asociado a la tarifa
↳ managedByPush Boolean Indica si la tarifa es gestionable a través de PUSH. Si se informa false, no se podrán realizar actualizaciones sobre la misma a través del API
↳ rateProperty RateProperty No Propiedad de la tarifa
↳↳ name String Nombre de la propiedad
↳↳ value String No Valor de la propiedad. Ej: Propiedad Mayores de, value 55
↳ cancelPolicyType Enum Políticas de cancelación de la tarifa (Free/NonRefundable/Variable)

BookingRetrieval

Ejemplo BookingRetrievalRequest para recuperar una reserva en particular   Run in Postman

<?xml version="1.0" encoding="UTF-8"?>
<BookingRetrievalRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials>   
    <hotelCode>1234</hotelCode>
    <reference>EPL10032017140800-SALE</reference>
</BookingRetrievalRequest>
{
  "BookingRetrievalRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234",
    "reference": "EPL10032017140800-SALE"
  }
}

Ejemplo BookingRetrievalRequest para recuperar una reserva a partir del localizador externo   Run in Postman

<?xml version="1.0" encoding="UTF-8"?>
<BookingRetrievalRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials>   
    <hotelCode>1234</hotelCode>
    <clientReference>23564378</clientReference>
</BookingRetrievalRequest>
{
  "BookingRetrievalRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234",
    "clientReference": "23564378"
  }
}

Ejemplo BookingRetrievalRequest para para recuperar las reservas de un hotel en un determinado rango de fechas (creadas, canceladas o modificadas)   Run in Postman

<?xml version="1.0" encoding="UTF-8"?>
<BookingRetrievalRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials>   
    <hotelCode>1234</hotelCode>
    <dateFrom>10/03/2017 14:30</dateFrom>
    <dateTo>10/03/2017 15:00</dateTo>
</BookingRetrievalRequest>
{
  "BookingRetrievalRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234",
    "dateFrom": "10/03/2017 14:30",
    "dateTo": "10/03/2017 15:00"
  }
}

Ejemplo respuesta BookingRetrievalResponse procesada correctamente La reserva recuperada contiene dos habitaciones: 1 doble + 1 individual

<?xml version="1.0" encoding="UTF-8"?>
<BookingRetrievalResponse>
    <sessionId>SUP#FOO#123456789</sessionId>
    <booking>
        <reference>EPL10032017140800-SALE</reference>
        <creationDate>10/03/2017 14:15</creationDate>
        <modificationDate>10/03/2017 14:17</modificationDate>
        <country>ES</country>
        <checkIn>15/04/2017</checkIn>
        <checkOut>18/04/2017</checkOut>
        <numPax>4</numPax>
        <status>Confirmed</status>
        <amount>550.00</amount>
        <amountToInvoice>625.25</amountToInvoice>
        <bookingClient>
            <clientCode>EPL</clientCode>
            <clientName>Europlayas</clientName>
            <fiscalClientName>Europlayas S.L.</fiscalClientName>
            <addressClient>Parc Bit, 14</addressClient>
            <postalClientCode>07001</postalClientCode>
            <countryClient>ES</countryClient>
            <cifClient>A00000000</cifClient>
            <emailClient>europlayas@test.com</emailClient>
            <clientReference>AA45645D55</clientReference>
        </bookingClient>
        <endCustomer>
            <name>Elena Ballester</name>
            <firstName>Elena</firstName>
            <lastName>Ballester</lastName>
            <mail>elena_ballester1234@mail.com</mail>
            <phone>003466667788</phone>
            <document>
                <typeDocument>Passport</typeDocument>
                <numberDocument>A123456789</numberDocument>
            </document>
            <labels>
                <label>ORO</label>
                <label>REPETIDOR</label>
            </labels>
            <language>ES</language>
        </endCustomer>
        <commission>
            <serviceCommission>
                <serviceId>1</serviceId>
                <commissionAmount>0</commissionAmount>
                <commissionPercentage>0</commissionPercentage>
            </serviceCommission>
            <serviceCommission>
                <serviceId>2</serviceId>
                <commissionAmount>0</commissionAmount>
                <commissionPercentage>0</commissionPercentage>
            </serviceCommission>
        </commission>
        <hotelCode>1234</hotelCode>
        <currencyCode>EUR</currencyCode>
        <bookingRoom id="1">
            <checkIn>15/04/2017</checkIn>
            <checkOut>17/04/2017</checkOut>
            <status>Confirmed</status>
            <roomCode>DBL#STD</roomCode>
            <internalRoomName>Nombre interno de la habitacion DBL#STD</internalRoomName>
            <mealPlanCode>BB</mealPlanCode>
            <amount>350.00</amount>
            <totalRoomAmount>350.00</totalRoomAmount>
            <commissionRoomAmount>0.0</commissionRoomAmount>
            <netRoomAmount>350.00</netRoomAmount>
            <amountRoomToInvoice>350.00</amountRoomToInvoice>
            <roomRateDay>
                <day>15/04/2017</day>
                <rateCode>BASE</rateCode>
                <rateName>BASE VERANO</rateName>
                <internalRateName>BASEVER</internalRateName>
                <amount>116.67</amount>
            </roomRateDay>
            <roomRateDay>
                <day>16/04/2017</day>
                <rateCode>BASE</rateCode>
                <rateName>BASE VERANO</rateName>
                <internalRateName>BASEVER</internalRateName>
                <amount>116.67</amount>
            </roomRateDay>
            <roomRateDay>
                <day>17/04/2017</day>
                <rateCode>BASE</rateCode>
                <rateName>BASE VERANO</rateName>
                <internalRateName>BASEVER</internalRateName>
                <amount>116.67</amount>
            </roomRateDay>
            <guest id="1">
                <type>Adult</type>
                <name>Juan Ballester</name>
                <firstName>Juan</firstName>
                <lastName>Ballester</lastName>
                <birthDate>19/06/1993</birthDate>
                <amount>175.00</amount>
                <age>33</age>
            </guest>
            <guest id="2">
                <type>Adult</type>
                <name>Elena Ballester</name>
                <firstName>Elena</firstName>
                <lastName>Ballester</lastName>
                <birthDate>23/08/1993</birthDate>
                <amount>175.00</amount>
                <age>33</age>
            </guest>
            <numPax>2</numPax>
            <cancellationData>
                <cancelPenaltyPolicy id="5">
                    <date>18/05/2023 00:00</date>
                    <timeRelevant>false</timeRelevant>
                    <amount>625.25</amount>
                </cancelPenaltyPolicy>
            </cancellationData>
            <extraCustomData>
                <customData>
                    <key>CreationSystem</key>
                    <value>HPH</value>
                </customData>
                <customData>
                    <key>ParentSystem</key>
                    <value>WEB</value>
                </customData>
                <customData>
                    <key>Country</key>
                    <value>ES</value>
                </customData>
                <customData>
                    <key>PriceType</key>
                    <value>PVP</value>
                </customData>
                <customData>
                    <key>ClientType</key>
                    <value>A</value>
                </customData>
            </extraCustomData>
        </bookingRoom>
        <bookingRoom id="2">
            <checkIn>15/04/2017</checkIn>
            <checkOut>17/04/2017</checkOut>
            <status>Confirmed</status>
            <roomCode>SGL#STD</roomCode>
            <totalRoomAmount>150.00</totalRoomAmount>
            <commissionRoomAmount>0.0</commissionRoomAmount>
            <netRoomAmount>150.00</netRoomAmount>
            <amountRoomToInvoice>150.00</amountRoomToInvoice>
            <internalRoomName>Nombre interno de la habitacion SGL#STD</internalRoomName>
            <mealPlanCode>BB</mealPlanCode>
            <amount>150.00</amount>
            <roomRateDay>
                <day>15/04/2017</day>
                <rateCode>BASE</rateCode>
                <rateName>BASE VERANO</rateName>
                <internalRateName>BASEVER</internalRateName>
                <amount>50.00</amount>
            </roomRateDay>
            <roomRateDay>
                <day>16/04/2017</day>
                <rateCode>BASE</rateCode>
                <rateName>BASE VERANO</rateName>
                <internalRateName>BASEVER</internalRateName>
                <amount>50.00</amount>
            </roomRateDay>
            <roomRateDay>
                <day>17/04/2017</day>
                <rateCode>BASE</rateCode>
                <rateName>BASE VERANO</rateName>
                <internalRateName>BASEVER</internalRateName>
                <amount>50.00</amount>
            </roomRateDay>
            <guest id="3">
                <type>Adult</type>
                <name>Elena Ballester</name>
                <firstName>Elena</firstName>
                <lastName>Ballester</lastName>
                <birthDate>23/08/1993</birthDate>
                <gender>Female</gender>
                <amount>100.00</amount>
                <age>33</age>
            </guest>
            <guest id="4">
                <type>Child</type>
                <name>Maria Ballester</name>
                <firstName>Maria</firstName>
                <lastName>Maria</lastName>
                <birthDate>25/03/2015</birthDate>
                <gender>Female</gender>
                <amount>50.00</amount>
                <age>33</age>
            </guest>
            <numPax>2</numPax>
        </bookingRoom>
        <bookingSupplement>
            <code>[EtT]Supplement(PpT)DEMOHTT@30621@20054@1@EUR</code>
            <name>PARK - 1</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <description>Suplemento Parking toda la estancia</description>
            <checkIn>15/04/2017</checkIn>
            <checkOut>17/04/2017</checkOut>
            <bookingRoomId>1</bookingRoomId>
            <amount>50.00</amount>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingSupplement>
            <code>[EtT]Supplement(PpT)TESTHTT@53089@21599@1@EUR</code>
            <name>TEST 2 - 1</name>
            <typeSupplement>Optional</typeSupplement>
            <internalTypeSupplement>ESP</internalTypeSupplement>
            <bookingRoomId>1</bookingRoomId>
            <amount>10.0</amount>
            <commissionSupplementAmount>0.0</commissionSupplementAmount>
            <netSupplementAmount>10.0</netSupplementAmount>
            <mandatory>false</mandatory>
        </bookingSupplement>
        <remark>
            <code>Informative</code>
            <from>Hotel</from>
            <to>Client</to>
            <text>Piscina cerrada hasta el 15/04/2017</text>
        </remark>
        <remark>
            <code>Informative</code>
            <from>Client</from>
            <to>Hotel</to>
            <bookingRoomId>2</bookingRoomId>
            <text>Por favor, habitaciones no fumadores</text>
        </remark>
        <remark>
            <code>ArrivalTime</code>
            <from>Client</from>
            <to>Hotel</to>
            <text>12:00</text>
        </remark>
        <bookingPayment>
            <modality>Establishment</modality>
            <internalModalityName>Descripcion interna modalidad de pago</internalModalityName>
            <type>PrepaidCard</type>
            <otaType>PC</otaType>
            <description>Tarjeta de prepago</description>
            <status>Pending</status>
        </bookingPayment>
            <paymentCardDetail>
            <holder>John Smith</holder>
            <number>cust_677b20db-a28b-4e2a-b3e0-da8c19e2fec3#1DCA3173-9DD0-4F2D-8420-266808C0A4EB</number>
            <expiryDate>01/10/2027</expiryDate>
        </paymentCardDetail>
        <paymentDetail>
            <action>Charge</action>
            <paymentStatus>Ok</paymentStatus>
            <type>ExternalManaged</type>
            <date>24/01/2019 17:18</date>
            <amount>2635.663</amount>
            <cardDetail>
                <card>
                    <holder>John Smith</holder>
                    <number>5004</number>
                    <expiryDate>01/10/2027</expiryDate>
                </card>
                <systemCode>PNN</systemCode>
                <reference>677b20db-a28b-4e2a-b3e0-da8c19e2fec3</reference>
                <authorizedCode>075128</authorizedCode>
            </cardDetail>
            <breakdown>
                <bookingRoomId>1</bookingRoomId>
                <amount>350.0</amount>
            </breakdown>
            <breakdown>
                <bookingRoomId>2</bookingRoomId>
                <amount>150.0</amount>
            </breakdown>
        </paymentDetail>
        <paymentDetail>
            <action>Charge</action>
            <paymentStatus>Pending</paymentStatus>
            <type>PrepaidCard</type>
            <otaType>PC</otaType>
            <date>23/07/2019 09:42</date>
            <amount>2635.66</amount>
            <prepaidCardDetail>
                <status>Pending</status>
                <card>
                    <cardTypeCode>Visa</cardTypeCode>
                    <holder>Elena Ballester</holder>
                    <number>4111111111111111</number>
                    <expiryDate>01/01/2020</expiryDate>
                    <securityCode>123</securityCode>
                </card>
            </prepaidCardDetail>
            <breakdown>
                <bookingRoomId>1</bookingRoomId>
                <amount>350.0</amount>
            </breakdown>
            <breakdown>
                <bookingRoomId>2</bookingRoomId>
                <amount>150.0</amount>
            </breakdown>
        </paymentDetail>
        <extraCustomData>
            <customData>
                <key>CreationSystem</key>
                <value>HPH</value>
            </customData>
            <customData>
                <key>ParentSystem</key>
                <value>WEB</value>
            </customData>
            <customData>
                <key>Country</key>
                <value>ES</value>
            </customData>
            <customData>
                <key>PriceType</key>
                <value>PVP</value>
            </customData>
            <customData>
                <key>ClientType</key>
                <value>A</value>
            </customData>
        </extraCustomData>
        <saleRules>
            <bookingRoom id="1">
                <saleRulesByDay>
                    <day>27/11/2024</day>
                    <saleRule>
                        <name>EBB PLAYA SUMMER 0.7</name>
                        <percentage>-18.0</percentage>
                    </saleRule>
                </saleRulesByDay>
            </bookingRoom>
        </saleRules>
    </booking>
</BookingRetrievalResponse>
{
  "BookingRetrievalResponse": {
    "sessionId": "SUP#FOO#123456789",
    "booking": {
      "reference": "EPL10032017140800-SALE",
      "creationDate": "10/03/2017 14:15",
      "modificationDate": "10/03/2017 14:17",
      "country": "ES",
      "checkIn": "15/04/2017",
      "checkOut": "18/04/2017",
      "numPax":  "4",
      "status": "Confirmed",
      "amount": 550,
      "amountToInvoice": 625.25,
      "bookingClient": {
        "clientCode": "EPL",
        "clientName": "Europlayas",
        "fiscalClientName": "Europlayas S.L.",
        "addressClient": "Parc Bit, 14",
        "postalClientCode": 7001,
        "countryClient": "ES",
        "cifClient": "A00000000",
        "emailClient": "europlayas@test.com",
        "clientReference": "AA45645D55"
      },
      "endCustomer": {
        "name": "Elena Ballester",
        "firstName": "Elena",
        "lastName": "Ballester",
        "mail": "elena_ballester1234@mail.com",
        "phone": 3466667788,
        "document": {
          "typeDocument": "Passport",
          "numberDocument": "A123456789"
        },
        "labels": {
          "label": [
            "ORO",
            "REPETIDOR"
          ]
        },
        "language": "ES"
      },
      "commission": {
        "serviceCommission": [
          {
            "serviceId": 1,
            "commissionAmount": 0,
            "commissionPercentage": 0
          },
          {
            "serviceId": 2,
            "commissionAmount": 0,
            "commissionPercentage": 0
          }
        ]
      },
      "hotelCode": 1234,
      "currencyCode": "EUR",
      "bookingRoom": [
        {
          "checkIn": "15/04/2017",
          "checkOut": "17/04/2017",
          "status": "Confirmed",
          "roomCode": "DBL#STD",
          "internalRoomName": "Nombre interno de la habitacion DBL#STD",
          "mealPlanCode": "BB",
          "amount": 350,
          "totalRoomAmount": 350,
          "commissionRoomAmount": 0,
          "netRoomAmount": 350,
          "amountRoomToInvoice": 350,
          "roomRateDay": [
            {
              "day": "15/04/2017",
              "rateCode": "BASE",
              "rateName": "BASE VERANO",
              "internalRateName": "BASEVER",
              "amount": 116.67
            },
            {
              "day": "16/04/2017",
              "rateCode": "BASE",
              "rateName": "BASE VERANO",
              "internalRateName": "BASEVER",
              "amount": 116.67
            },
            {
              "day": "17/04/2017",
              "rateCode": "BASE",
              "rateName": "BASE VERANO",
              "internalRateName": "BASEVER",
              "amount": 116.67
            }
          ],
          "guest": [
            {
              "type": "Adult",
              "name": "Juan Ballester",
              "firstName": "Juan",
              "lastName": "Ballester",
              "birthDate": "19/06/1993",
              "amount": 175,
              "age": 33
            },
            {
              "type": "Adult",
              "name": "Elena Ballester",
              "firstName": "Elena",
              "lastName": "Ballester",
              "birthDate": "23/08/1993",
              "amount": 175,
              "age": 33
            }
          ],
          "numPax":  "2",
          "cancellationData": {
            "cancelPenaltyPolicy": {
              "date": "18/05/2023 00:00",
              "timeRelevant": false,
              "amount": 625.25
            }
          },
          "extraCustomData": {
            "customData": [
              {
                "key": "CreationSystem",
                "value": "HPH"
              },
              {
                "key": "ParentSystem",
                "value": "WEB"
              },
              {
                "key": "Country",
                "value": "ES"
              },
              {
                "key": "PriceType",
                "value": "PVP"
              },
              {
                "key": "ClientType",
                "value": "A"
              }
            ]
          }
        },
        {
          "checkIn": "15/04/2017",
          "checkOut": "17/04/2017",
          "status": "Confirmed",
          "roomCode": "SGL#STD",
          "totalRoomAmount": 150,
          "commissionRoomAmount": 0,
          "netRoomAmount": 150,
          "amountRoomToInvoice": 150,
          "internalRoomName": "Nombre interno de la habitacion SGL#STD",
          "mealPlanCode": "BB",
          "amount": 150,
          "roomRateDay": [
            {
              "day": "15/04/2017",
              "rateCode": "BASE",
              "rateName": "BASE VERANO",
              "internalRateName": "BASEVER",
              "amount": 50
            },
            {
              "day": "16/04/2017",
              "rateCode": "BASE",
              "rateName": "BASE VERANO",
              "internalRateName": "BASEVER",
              "amount": 50
            },
            {
              "day": "17/04/2017",
              "rateCode": "BASE",
              "rateName": "BASE VERANO",
              "internalRateName": "BASEVER",
              "amount": 50
            }
          ],
          "guest": [
            {
              "type": "Adult",
              "name": "Elena Ballester",
              "firstName": "Elena",
              "lastName": "Ballester",
              "birthDate": "23/08/1993",
              "gender": "Female",
              "amount": 100,
              "age": 33
            },
            {
              "type": "Child",
              "name": "Maria Ballester",
              "firstName": "Maria",
              "lastName": "Maria",
              "birthDate": "25/03/2015",
              "gender": "Female",
              "amount": 50,
              "age": 33
            }
          ]
        }
      ],
      "numPax":  "2",
      "bookingSupplement": [
        {
          "code": "[EtT]Supplement(PpT)DEMOHTT@30621@20054@1@EUR",
          "name": "PARK - 1",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "description": "Suplemento Parking toda la estancia",
          "checkIn": "15/04/2017",
          "checkOut": "17/04/2017",
          "bookingRoomId": 1,
          "amount": 50,
          "mandatory": true
        },
        {
          "code": "[EtT]Supplement(PpT)TESTHTT@53089@21599@1@EUR",
          "name": "TEST 2 - 1",
          "typeSupplement": "Optional",
          "internalTypeSupplement": "ESP",
          "bookingRoomId": 1,
          "amount": 10,
          "commissionSupplementAmount": 0,
          "netSupplementAmount": 10,
          "mandatory": false
        }
      ],
      "remark": [
        {
          "code": "Informative",
          "from": "Hotel",
          "to": "Client",
          "text": "Piscina cerrada hasta el 15/04/2017"
        },
        {
          "code": "Informative",
          "from": "Client",
          "to": "Hotel",
          "bookingRoomId": 2,
          "text": "Por favor, habitaciones no fumadores"
        },
        {
          "code": "ArrivalTime",
          "from": "Client",
          "to": "Hotel",
          "text": "12:00"
        }
      ],
      "bookingPayment": {
        "modality": "Establishment",
        "internalModalityName": "Descripcion interna modalidad de pago",
        "type": "PrepaidCard",
        "otaType": "PC",
        "description": "Tarjeta de prepago",
        "status": "Pending"
      },
      "paymentCardDetail": {
        "holder": "John Smith",
        "number": "cust_677b20db-a28b-4e2a-b3e0-da8c19e2fec3#1DCA3173-9DD0-4F2D-8420-266808C0A4EB",
        "expiryDate": "01/10/2027"
      },
      "paymentDetail": [
        {
          "action": "Charge",
          "paymentStatus": "Ok",
          "type": "ExternalManaged",
          "date": "24/01/2019 17:18",
          "amount": 2635.663,
          "cardDetail": {
            "card": {
              "holder": "John Smith",
              "number": 5004,
              "expiryDate": "01/10/2027"
            },
            "systemCode": "PNN",
            "reference": "677b20db-a28b-4e2a-b3e0-da8c19e2fec3",
            "authorizedCode": 75128
          },
          "breakdown": [
            {
              "bookingRoomId": 1,
              "amount": 350
            },
            {
              "bookingRoomId": 2,
              "amount": 150
            }
          ]
        },
        {
          "action": "Charge",
          "paymentStatus": "Pending",
          "type": "PrepaidCard",
          "otaType": "PC",
          "date": "23/07/2019 09:42",
          "amount": 2635.66,
          "prepaidCardDetail": {
            "status": "Pending",
            "card": {
              "cardTypeCode": "Visa",
              "holder": "Elena Ballester",
              "number": 4111111111111111,
              "expiryDate": "01/01/2020",
              "securityCode": 123
            }
          },
          "breakdown": [
            {
              "bookingRoomId": 1,
              "amount": 350
            },
            {
              "bookingRoomId": 2,
              "amount": 150
            }
          ]
        }
      ],
      "extraCustomData": {
        "customData": [
          {
            "key": "CreationSystem",
            "value": "HPH"
          },
          {
            "key": "ParentSystem",
            "value": "WEB"
          },
          {
            "key": "Country",
            "value": "ES"
          },
          {
            "key": "PriceType",
            "value": "PVP"
          },
          {
            "key": "ClientType",
            "value": "A"
          }
        ]
      },
      "saleRules": {
        "bookingRoom": {
          "saleRulesByDay": {
            "day": "27/11/2024",
            "saleRule": {
              "name": "EBB PLAYA SUMMER 0.7",
              "percentage": -18
            }
          }
        }
      }
    }
  }
}

Mensaje utilizado para recuperación de reservas. Se puede recuperar una reserva en particular (filtrando por reference), o bien las reservas de un hotel creadas, canceladas o modificadas dentro de un rango de fechas.

BookingRetrievalRequest

Mensaje petición de recuperación de reservas

Elemento Tipo Obl? Descripción
credentials Credentials Credenciales de autenticación del usuario (Ver Autenticación)
reference String No1 Localizador de la reserva
clientReference String No1 Localizador externo de la reserva
hotelCode Integer Código de hotel
dateFrom DateTime No1 Fecha desde. Devolverá todas las reservas que se hayan creado, cancelado o modificado a partir de esta fecha (dd/MM/yyy HH:mm)
dateTo DateTime No1 Fecha hasta. Devolverá todas las reservas que se hayan creado, cancelado o modificado hasta esta fecha (dd/MM/yyy HH:mm)
notificationStatus Enum No1 Filtro por estado de notificación de reserva (Delivered: Notificada / UnDelivered: No notificada) No2

BookingRetrievalResponse

Mensaje respuesta de recuperación de reservas

Elemento Tipo Obl? Descripción
sessionId String Identificador de la sesión que ha procesado la transacción
booking[] Booking No Información de una reserva de hotel
↳ reference String Localizador de la reserva
↳ creationDate DateTime Fecha de creación de la reserva (dd/MM/yyy HH:mm)
↳ modificationDate DateTime No Fecha de creación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una modificación de reserva
↳ cancellationDate DateTime No Fecha de cancelación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una cancelación de reserva
↳ country String No Código del país de origen de la reserva (2 letter ISO 3166). Sólo vendrá informado en la reservas propias de Hotetec
↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳ numPax Integer Número de pasajeros total de la reserva
↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳ amount Double Importe total de la reserva (#.##)
↳ bookingClient BookingClient Información del cliente que ha realizado la reserva, refiriéndose a la agencia (Ej: Logitravel), OTA (Ej: Booking.com), o el propio hotel
↳↳ clientCode String Código de cliente
↳↳ clientName String Nombre de cliente
↳↳ fiscalClientName String No Nombre fiscal referente al cliente de la reserva
↳↳ addressClient String No Dirección física de la empresa cliente
↳↳ postalClientCode String No Código postal de la empresa cliente
↳↳ countryClient String No País de la empresa cliente
↳↳ cifClient String No Número CIF de la empresa cliente
↳↳ emailClient String No Correo electrónico de la empresa cliente
↳↳ clientReference String No Referencia de la reserva del cliente (habitualmente su localizador)
↳ endCustomer EndCustomer Información del cliente final de la reserva
↳↳ name String Nombre del cliente final
↳↳ birthDate Date No Fecha de nacimiento (dd/MM/yyy)
↳↳ mail String No Email del cliente final
↳↳ phone String No Teléfono de contacto del cliente final
↳↳ nationality String No Nacionadlidad (2 letter ISO 3166)
↳↳ language String No Idioma del cliente
↳↳ address String No Dirección indicada para el cliente
↳↳ document Document No Información referente al documento de identificación de la persona de contacto
↳↳↳ typeDocument String No Tipo de documento (DNI, NIE, Passport o IdentityCard)
↳↳↳ numberDocument String No Número de documento
↳↳ labels Labels No Información referente a las etiquetas asignadas a la persona de contacto
↳↳↳ label[] String No Etiqueta asignada a la persona de contacto. Estas etiquetas se definen en el apartado CRM del backOffice de Hotetec.
↳ commision Commission No Información sobre las comisiones aplicadas en la reserva
↳↳ serviceCommission[] ServiceCommission No Información específica sobre un servicio reservado
↳↳↳ serviceId String Identificador que identifica la habitación reservada
↳↳↳ commissionAmount Double No Importe de la comisión aplicada
↳↳↳ commissionPercentage Double No Porcentage de la comisión aplicada
↳ hotelCode Integer Código de hotel
↳ currencyCode String Código de divisa (Códigos ISO 4217)
↳ bookingRoom[] BookingRoom Información de habitación de hotel reservada
↳↳ @id String Identificador de la habitación
↳↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳↳ roomCode String Código de habitación
↳↳ internalRoomName String No Nombre interno de la habitación
↳↳ mealPlanCode String Código de régimen alimenticio
↳↳ amount Double Importe de la habitación reservada (#.##)
↳↳ totalRoomAmount Double No Coste de la habitación: Precio Hab x Noches + Suplementos Obligatorios (#.##)
↳↳ commissionRoomAmount Double No Comisión de la habitación: Coste de la habitación * Porcentaje comisión (#.##)
↳↳ netRoomAmount Double No Coste neto de la habitación: Coste de la habitación - Comisión habitación (#.##)
↳↳ amountRoomToInvoice Double No Coste a facturar de la habitación: Amount - porcentaje de comisión (#.##)
↳↳ roomRateDay[] RoomRateDay Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia
↳↳↳ day Date Día de la estancia (dd/MM/yyy)
↳↳↳ rateCode String No Código de tarifa
↳↳↳ rateName String No Nombre de la tarifa
↳↳↳ internalRateName String No Nombre interno de la tarifa
↳↳↳ amount String Importe del día
↳↳ guest[] Guest Pasajero de la reserva
↳↳↳ @id Integer Identificador del pasajero
↳↳↳ name String Nombre del pasajero. Si el nombre no ha sido informado en la reserva, se substituirá por el nombre de la persona de contacto
↳↳↳ gender String No Género del pasajero ('Male': Hombre, 'Female': Mujer y 'Undefined': Indefinido).
↳↳↳ type Enum Tipo (Adult, Child, Baby)
↳↳↳ amount Double Importe correspondiente al pasajero
↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳ nationality[] String No Nacionalidad del huésped. Se incorpora el código ISO-3166. Ejemplo: España (ES).
↳↳↳ document[] Document No Información relativa a los documentos aportados por el huésped
↳↳↳ age String No Edad del huésped
↳↳↳↳ typeDocument String No Tipo del documento aportado ('D': Dni, 'E': Nie y 'P':Pasaporte)
↳↳↳↳ numberDocument String No Número del documento aportado
↳↳↳↳ expeditionDate Date No Fecha de expedición del documento (dd/MM/yyyy)
↳↳↳↳ expiryDocument Date No Fecha de caducidad del documento (dd/MM/yyyy)
↳↳↳ contact[] ContactAddress No Información relativa a los datos de contacto aportados por el huésped
↳↳↳↳ phone String No Teléfono aportado por el huésped
↳↳↳↳ email String No Email aportado por el huésped
↳↳↳↳ addressText String No Dirección aportada por el huésped
↳↳↳↳ postalCode String No Código postal
↳↳ cancellationData CancellationData No Gastos de cancelación de la habitación
↳↳ numPax Integer Número de pasajeros de la habitación
↳↳↳ cancelPenaltyPolicy[] CancelPenaltyPolicy Gasto de cancelación aplicable a partir de una fecha de cancelación
↳↳↳↳ @id Integer Identificador del gasto de cancelación
↳↳↳↳ date Calendar Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación
↳↳↳↳ timeRelevant Boolean Elemento que indica si las horas en la fecha de cancelación son relevantes o se debe tomar sólo la fecha como dato significativo
↳↳↳↳ amount Double Importe que se aplicará al cancelar la habitación
↳↳↳↳ description String No Descripción de los gastos de cancelación
↳ extraCustomData ExtraCustomData No Indica diversos aspectos de la reserva que no tienen cabida en el formato básico de la reserva.
↳↳ customData[] CustomData No Valor de la reserva que no tiene cabida en el formato básico de la misma.
↳↳↳ key String Clave que referencia el valor. Ver apartado de ExtraCustomData de la documentación para ver los posibles valores.
↳↳↳ value String Valor de la reserva referenciado por el campo 'Key'.
↳ bookingSupplement[] BookingSupplement No Información de suplemento reservado
↳↳ code String No Código del suplemento opcional reservado. Sólo se informará si se dispone del mismo, lo cual será siempre en las reservas internas, y de forma opcional en las externas.
↳↳ name String Nombre del suplemento opcional reservado
↳↳ typeSupplement String Indica el tipo de suplemento que tratamos (Mandatory / Optional / SalePolicy)
↳↳ internalName String No Nombre interno de la política comercial (suplementos del tipo SP) aplicada en la reserva.
↳↳ description String No Descripción detallada del suplemento opcional reservado
↳↳ checkIn Date No Fecha de inicio del suplemento (dd/MM/yyy)
↳↳ checkOut Date No Fecha de fin del suplemento (dd/MM/yyy)
↳↳ bookingRoomId String No Identificador de la habitación reservada, si el suplemento referencia a una habitación en concreto
↳↳ guestId[] Integer No Identificador del pasajero al que se hace referencia, si el suplemento referencia a un pasajero/os en concreto
↳↳ amount Double Importe total del suplemento opcional reservado
↳↳ commissionSupplementAmount Double No Comisión del suplemento (#.##)
↳↳ netSupplementAmount Double No Coste neto del suplemento: Valor total del Suplemento - Importe de Comisión del suplemento (#.##)
↳↳ promotionalCode[] String No Indica los códigos aplicados en el suplemento en cuestión
↳↳ mandatory Boolean Indica si el suplemento es obligatorio (true) o opcional (false)
↳↳ detail SupplementDetail No Indica los detalles del suplemento.
↳↳↳ shuttleDetail SupplementShuttleDetail No Indica los detalles de transporte (siempre y cuando el suplemento sea de tipo TRF)
↳↳↳↳ mailTransferProvider String No Indica el email del proveedor del transfer
↳↳↳↳ arrivalFlight ShuttleFlightDetail No Indica los detalles del vuelo de llegada
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳↳↳↳ departureFlight ShuttleFlightDetail No Indica los detalles del vuelo de salida
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳ remark Remark No Notas de la reserva
↳↳ code Enum Si Código de la nota (ArrivalTime, Attachment, Informative, Warning, General)
↳↳ from Enum Si Indica quien notifica la nota (Hotel, Client)
↳↳ to Enum Si Indica para quien es la nota (Hotel, Client)
↳↳ bookingRoomId String No Indica a que habitación hace referencia la nota
↳↳ text String Si Texto de la nota
↳↳ customerReference String No Referencia del cliente
↳ bookingPayment BookingPayment No Información del último pago de la reserva1
↳↳ modality Enum Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ internalModalityName String No Descripcion interna de la modalidad de pago
↳↳ type Enum Tipo de pago (BankTransfer / Card / VirtualCard / PrepaidCard / WarrantyCard / Cash / Cheque / Credit / Voucher / ExternalManaged / PinPad)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ status Enum Estado de pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ description String No Contiene el nombre comercial asignado a a la modalidad de pago
↳ paymentCardDetail PaymentCardDetail No Detalles de la tarjeta que ha realizado el último pago (sólo viene informado si bookingPayment.type es Card, PrepaidCard, VirtualCard o WarrantyCard)
↳↳ holder String Nombre del titular de la tarjeta
↳↳ number String Número de la tarjeta tokenizado
↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳ securityCode String No Código de seguridad (cvc2)
↳ paymentDetail[] PaymentDetail No Log con todos los pagos realizados en la reserva
↳↳ action String Tipo de operación (charge / refund)
↳↳ paymentStatus String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ type String Código del tipo de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ date Calendar Fecha de la transacción
↳↳ amount Double Importe (#.##)
↳↳↳ breakdown[] Breakdown No Desglose de pago por habitación
↳↳↳↳ bookingRoomId Integer Id de referencia a la habitacion
↳↳↳↳ amount Double Importe del pago (#.##)
↳↳↳ cardDetail PaymentDetailCardDetail No Detalle pago con tarjeta de crédito
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ card CreditCard Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳↳ systemCode String Identificador del sistema de pago
↳↳↳↳ reference String Localizador de la reserva
↳↳↳↳ authorizedCode String Código de autorización
↳↳↳↳ errorDescription String No Descripción del error en el pago
↳↳↳ externalManagedDetail PaymentExternalManagedDetail No Datos detallados de un sistema de pago externo, por ejemplo Paypal
↳↳↳↳ externalSystemCode String Código del sistema externo
↳↳↳↳ externalReference String Referencia externa
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳ virtualCard VirtualCard No Información de la tarjeta virtual
↳↳↳↳ code String Código de tarjeta virtual
↳↳↳↳ accountCode String Código de la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ authorizedCode String Código de autorización del pago
↳↳↳↳ currencyCode String Código de divisa asociada al usuario
↳↳↳↳ availableAmount String Importe disponible en la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ status String Estado de la tarjeta virtual (Active / Inactive / Blocked / Close)
↳↳↳↳ referencePayClient String eferencia del pago para el cliente
↳↳↳↳ description String No Descripción del elemento
↳↳↳↳ person BasePerson No Persona con los datos básicos
↳↳↳↳↳ firstName String No Nombre de la persona
↳↳↳↳↳ firstLastName String No Primer apellido de la persona
↳↳↳↳↳ secondLastName String No Segundo apellido de la persona
↳↳↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳↳ contact BaseContact No Contacto con los datos básicos
↳↳↳↳↳ phone String No Número de teléfono
↳↳↳↳↳ fax String No Número de Fax
↳↳↳↳↳ email String No Dirección de e-mail
↳↳↳↳↳ web Date No Dirección de la página web
↳↳↳↳ address Address No Información de Dirección
↳↳↳↳↳ countryCode String No Código del país
↳↳↳↳↳ countryName String No Nombre del país
↳↳↳↳↳ state String No Estado
↳↳↳↳↳ county Date No Condado
↳↳↳↳↳ province String No Provincia
↳↳↳↳↳ locationCode String No Código de la localidad, ciudad, zona rural
↳↳↳↳↳ locationName String No Nombre de la localidad, ciudad, zona rural
↳↳↳↳↳ postalCode Date No Código postal
↳↳↳↳ creditCard CreditCard No Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ prepaidCardDetail PrepaidCardDetail No Detalle pago con tarjeta de prepago
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta prepago
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ warrantyCardDetail WarrantyCardDetail No Detalle pago con tarjeta de garantía
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta de garantía
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳ extraCustomData ExtraCustomData No Indica diversos aspectos de la reserva que no tienen cabida en el formato básico de la reserva.
↳↳ customData[] CustomData No Valor de la reserva que no tiene cabida en el formato básico de la misma.
↳↳↳ key String Clave que referencia el valor. Ver apartado de ExtraCustomData de la documentación para ver los posibles valores.
↳↳↳ value String Valor de la reserva referenciado por el campo 'Key'.
↳ saleRules SaleRules No Elemento que contiene las reglas de ventas cargadas en Hotetec, y que se han aplicado en la reserva.
↳↳ bookingRoom[] Room No Elemento que contiene las reglas de venta aplicadas en una habitación en concreto.
↳↳↳ @id Integer Identificador de la habitación
↳↳↳ saleRulesByDay[] SaleRulesByDay Elemento que contiene un desglose de las reglas de venta aplicadas por día.
↳↳↳↳ day Date Día aplicado
↳↳↳↳ saleRule[] SaleRule No Elemento que contiene una regla de venta aplicada en el día concreto.
↳↳↳↳↳ name String Nombre de la regla de venta.
↳↳↳↳↳ amount String No Importe cargado en la regla de venta aplicada.
↳↳↳↳↳ percentage String No Percentaje cargado en la regla de venta aplicada.

ExtraCustomData

Detalle del elemento ExtraCustomData del mensaje BookingRetrieval.

<?xml version="1.0" encoding="UTF-8"?>
<BookingRetrievalResponse>
    <sessionId>SUP#FOO#123456789</sessionId>
    <booking>
       ...
       <extraCustomData>
          <customData>
             <key>Key1</key> 
             <value>Value1</value>
           </customData>
           <customData>
              <key>Key2</key>
              <value>Value2</value>
           </customData>
       </extraCustomData>
    </booking>
</BookingRetrievalResponse>
{
  "BookingRetrievalResponse": {
    "sessionId": "SUP#FOO#123456789",
    "booking": {
      ...   
      "extraCustomData": {
        "customData": [
          {
            "key": "Key1",
            "value": "Value1"
          },
          {
            "key": "Key2",
            "value": "Value2"
          }
        ]
      }
    }
  }
}

Elemento Opcional utilizado para indicar diversos aspectos de la reserva que no tienen cabida en el formato básico de la reserva.

Solo se notificarán aquellos elementos que estén informados.

CustomData Keys

A continuación se detallan los distintos valores que pueden llegar en el elemento key.

Key Tipo Descripción
LastMinute S / N (Si/No) Indica si se trata de una reserva realizada a traves del componente LastMinute de la web
SEMCODE String Indica el código de SEM
BookingEngineCode Integer Indica el código de motor de la web
WebsiteUrl String Indica la url de la web donde se ha realizado la reserva.
CreationSystemBudget String Indica el sistema de creacion del presupuesto.
IpAdress String Indica la ip desde la cual se ha realizado la reserva.
Country String Indica el pais desde el cual se ha realizado la reserva. (ISO 3166)
ReferredByUrl String Indica la Url desde la cual ha llegado la reserva.
ReferredBySystem String Indica el sistema desde el cual ha llegado la reserva. (GHF -Google Hotel Finder-, TVG -Trivago-).
ParentSystem String Indica el sistema padre desde el cual ha llegado la reserva. (XML -Xml-, STK -Canal externo-, WEB -Web, Web móvil y B2B- y CCH -Call Center-).
Affiliate String
Medium String
Source String
PriceType String Indica el tipo de precio enviado en la reserva (Net: Precio Neto / PVP : Precio Comisionable).
ClientType String Indica el tipo1 de cliente que ha realizado la reserva.
StatusPaymentBooking String Indica si la reserva ha sido pagada o no. Valores: Charged / Pending
NoShow String Indica que la habitación con el id indicado ha sido marcada como 'No show'.
OriginalAmount String Indica el importe original de la reserva.
Agency String Indica el código de la agencia enviado por el canal en la reserva
AgencyReference String Indica el localizador de reserva de la agencia enviado por el canal en la reserva
Flight_Arrival String Indica la información recibida en la reserva sobre el vuelo de llegada. Tiene un formato específico y es: IdHabitación@NumeroVuelo#DiayHoraLlegada (dd/MM/yyyy HH:mm)
Flight_Departure String Indica la información recibida en la reserva sobre el vuelo de salida. Tiene un formato específico y es: IdHabitación@NumeroVuelo#DiayHoraLlegada (dd/MM/yyyy HH:mm)
CostDate String Indica la fecha en que se realizó la valoración de los costes de la reserva (dd/MM/yyyy). Específico de la integración con el canal TUI.
CreationSystem String Indica el sistema de creacion de la reserva
Loyalty String Si viene informado, indica que la reserva es de tipo GENIUS (para las reservas de Booking.com)
WEB.HOTEL.Hotelverse.Locator String Si viene informado, indica el localizador de la reserva de Hotelverse
WEB.HOTEL.Hotelverse.RoomNumber String Si viene informado, indica el número de habitación de Hotelverse
WEB.HOTEL.Hotelverse.IsOnRequest String Si viene informado, indica si la habitación es de tipo 'OnRequest' en Hotelverse
WEB.HOTEL.Hotelverse.Status String Si viene informado, indica si la reserva está confirmada o no, en Hotelverse
FareName String Indica el nombre de la tarifa.
Touroperator String Indica el código del tour operador informado en la reserva.
Hotel_Arrival String Hora informada de la llegada al hotel (HH:mm).
Hotel_Departure String Hora informada de la salida del hotel (HH:mm).
Room String Indica el código de la habitación en el canal de venta.
CompanyCode String Específico de la integración con el canal OTS. Indica el código de la empresa facturadora de la reserva.
CompanyName String Específico de la integración con el canal OTS. Indica el nombre de la empresa facturadora de la reserva.
AgencyCountry String Indica el país de la agencia compradora de la reserva.
AgencyAddress String Indica el domicilio de la agencia compradora de la reserva.
AgencyEmail String Indica el email de la agencia compradora de la reserva.
AgencyPhone String Indica el teléfono de la agencia compradora de la reserva.
AgencyCode String Indica el código de la agencia compradora de la reserva.
CommissionHotusaByRoom String Específico de la integración con los canales del grupo Hotusa (Keytel y Beds4Travel). Indica la comisión asociada a cada una de las habitaciones de la reserva, en caso de que sea una reserva multihabitación.

Notificación de reservas PUSH

Soporte para que el proveedor reciba una notificación PUSH cuando se crea una nueva reserva o bien se cancela o modifica una reserva ya existente. Una vez recibida la notifiación, el proveedor puede utilizar el mensaje BookingRetrievalRequest (filtrando por localizador) para recuperar la información actual de la reserva y actualizarla en su sistema.

Formato notificación PUSH

Por simplicidad, la notificación PUSH se realizará mediante una llamada HTTP GET a una URL de libre elección por parte del proveedor, informando los siguientes parámetros:

Parámetro Tipo Obl? Descripción
hotelCode Integer Identificador de hotel
reference String Localizador de la reserva
action Enum Acción que se ha realizado sobre la reserva (Creation: Creación de una nueva reserva, Cancellation: Cancelación de la reserva, Modification: Modificación de la reserva)
card Boolean Indica si la reserva contiene datos sobre una tarjeta de crédito (true/false)

Ejemplo llamadas:

BookingAddPayment

Ejemplo BookingAddPayment para añadir un pago de tipo inmediato

<?xml version="1.0" encoding="UTF-8"?>
<BookingAddPaymentRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials> 
    <hotelCode>1234</hotelCode>
    <reference>DEMOHTT221017XFCN-SALE</reference>
    <paymentDetail>
        <action>Charge</action>
        <paymentStatus>Ok</paymentStatus>
        <type>Inmediate</type>
        <date>02/08/2022 09:43</date>
        <amount>500</amount>
        <externalSystemCode>SER</externalSystemCode>
        <externalReference>12345</externalReference>
    </paymentDetail>
</BookingAddPaymentRequest>
{
  "BookingAddPaymentRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234",
    "reference": "DEMOHTT221017XFCN-SALE",
    "paymentDetail": {
      "action": "Charge",
      "paymentStatus": "Ok",
      "type": "Inmediate",
      "date": "02/08/2022 09:43",
      "amount": "500",
      "externalSystemCode": "SER",
      "externalReference": "12345"
    }
  }
}

Ejemplo BookingAddPayment para añadir un pago de tipo transferencia bancaria

<?xml version="1.0" encoding="UTF-8"?>
<BookingAddPaymentRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials> 
    <hotelCode>1234</hotelCode>
    <reference>DEMOHTT221017XFCN-SALE</reference>
    <paymentDetail>
        <action>Charge</action>
        <paymentStatus>Ok</paymentStatus>
        <type>BankTransfer</type>
        <date>02/08/2022 09:43</date>
        <amount>500</amount>
        <externalReference>12345</externalReference>
    </paymentDetail>
</BookingAddPaymentRequest>
{
  "BookingAddPaymentRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234",
    "reference": "DEMOHTT221017XFCN-SALE",
    "paymentDetail": {
      "action": "Charge",
      "paymentStatus": "Ok",
      "type": "BankTransfer",
      "date": "02/08/2022 09:43",
      "amount": "500",
      "externalReference": "12345"
    }
  }
}

Ejemplo BookingAddPayment para añadir un pago de tipo payByLink

<?xml version="1.0" encoding="UTF-8"?>
<BookingAddPaymentRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials> 
    <hotelCode>1234</hotelCode>
    <reference>DEMOHTT221017XFCN-SALE</reference>
    <paymentDetail>
        <action>Charge</action>
        <paymentStatus>Ok</paymentStatus>
        <type>PayByLink</type>
        <date>02/08/2022 09:43</date>
        <amount>500</amount>
        <externEmail>soportetecnico@hotetec.com</externEmail>
    </paymentDetail>
</BookingAddPaymentRequest>
{
  "BookingAddPaymentRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234",
    "reference": "DEMOHTT221017XFCN-SALE",
    "paymentDetail": {
      "action": "Charge",
      "paymentStatus": "Ok",
      "type": "PayByLink",
      "date": "02/08/2022 09:43",
      "amount": "500",
      "externEmail": "soportetecnico@hotetec.com"
    }
  }
}

Ejemplo respuesta BookingConfirmResponse procesada correctamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingAddPaymentResponse>
    <sessionId>SUP#FOO#123456789</sessionId>
    <booking>
        <reference>DEMOHTT221017XFCN-SALE</reference>
        <creationDate>06/07/2022 12:25</creationDate>
        <modificationDate>12/08/2022 12:47</modificationDate>
        <checkIn>17/10/2022</checkIn>
        <checkOut>19/10/2022</checkOut>
        <status>Confirmed</status>
        <amount>132</amount>
        <amountToInvoice>145.2</amountToInvoice>
        <bookingClient>
            <clientCode>XXX</clientCode>
            <clientReference>6666</clientReference>
        </bookingClient>
        <endCustomer>
            <name>TEST TEST TEST</name>
            <mail>soportetecnico@hotetec.com</mail>
            <phone>+34935500145</phone>
            <country>ES</country>
        </endCustomer>
        <commission>
            <serviceCommission>
                <serviceId>1</serviceId>
                <commissionPercentage>10</commissionPercentage>
            </serviceCommission>
        </commission>
        <hotelCode>1234</hotelCode>
        <currencyCode>EUR</currencyCode>
        <bookingRoom id="1">
            <checkIn>17/10/2022</checkIn>
            <checkOut>19/10/2022</checkOut>
            <status>Confirmed</status>
            <roomCode>DBL#STD</roomCode>
            <mealPlanCode>RO</mealPlanCode>
            <amount>132</amount>
            <totalRoomAmount>132</totalRoomAmount>
            <commissionRoomAmount>13.2</commissionRoomAmount>
            <netRoomAmount>118.8</netRoomAmount>
            <amountRoomToInvoice>118.8</amountRoomToInvoice>
            <roomRateDay>
                <day>17/10/2022</day>
                <rateCode>14426</rateCode>
                <rateName>TEST</rateName>
                <amount>66</amount>
            </roomRateDay>
            <roomRateDay>
                <day>18/10/2022</day>
                <rateCode>14426</rateCode>
                <rateName>TEST</rateName>
                <amount>66</amount>
            </roomRateDay>
            <guest id="0">
                <type>Adult</type>
                <amount>132</amount>
                <name>TEST TEST TEST</name>
                <birthDate>06/07/1989</birthDate>
            </guest>
        </bookingRoom>
        <bookingPayment>
            <modality>ExternManagement</modality>
            <type>ExternalManaged</type>
            <status>Ok</status>
        </bookingPayment>
        <paymentDetail>
            <action>Charge</action>
            <paymentStatus>Inapplicable</paymentStatus>
            <type>Card</type>
            <date>06/07/2022 12:25</date>
            <cardDetail>
                <status>Inapplicable</status>
                <card>
                    <holder>TEST HOLDER</holder>
                    <number>1234123412341234</number>
                    <hashedValue>1234123412341234</hashedValue>
                    <seriesCode>123</seriesCode>
                    <expiryDate>01/06/2027</expiryDate>
                </card>
            </cardDetail>
        </paymentDetail>
        <paymentDetail>
            <action>Charge</action>
            <paymentStatus>Ok</paymentStatus>
            <type>ExternalManaged</type>
            <date>02/08/2022 09:43</date>
            <amount>500</amount>
            <externalManagedDetail>
                <externalSystemCode>SER</externalSystemCode>
                <externalReference>12345</externalReference>
                <status>Ok</status>
            </externalManagedDetail>
        </paymentDetail>
        <extraCustomData>
            <customData>
                <key>CreationSystem</key>
                <value>EDR</value>
            </customData>
            <customData>
                <key>ParentSystem</key>
                <value>STK</value>
            </customData>
            <customData>
                <key>PriceType</key>
                <value>Net</value>
            </customData>
            <customData>
                <key>StatusPaymentBooking</key>
                <value>Pending</value>
            </customData>
            <customData>
                <key>OriginalAmount</key>
                <value>132.0</value>
            </customData>
        </extraCustomData>
    </booking>
</BookingAddPaymentResponse>
{
  "BookingAddPaymentResponse": {
    "sessionId": "SUP#FOO#123456789",
    "booking": {
      "reference": "DEMOHTT221017XFCN-SALE",
      "creationDate": "06/07/2022 12:25",
      "modificationDate": "12/08/2022 12:47",
      "checkIn": "17/10/2022",
      "checkOut": "19/10/2022",
      "status": "Confirmed",
      "amount": "132",
      "amountToInvoice": "145.2",
      "bookingClient": {
        "clientCode": "XXX",
        "clientReference": "6666"
      },
      "endCustomer": {
        "name": "TEST TEST TEST",
        "mail": "soportetecnico@hotetec.com",
        "phone": "+34935500145",
        "country": "ES"
      },
      "commission": {
        "serviceCommission": {
          "serviceId": "1",
          "commissionPercentage": "10"
        }
      },
      "hotelCode": "1234",
      "currencyCode": "EUR",
      "bookingRoom": {
        "-id": "1",
        "checkIn": "17/10/2022",
        "checkOut": "19/10/2022",
        "status": "Confirmed",
        "roomCode": "DBL#STD",
        "mealPlanCode": "RO",
        "amount": "132",
        "totalRoomAmount": "132",
        "commissionRoomAmount": "13.2",
        "netRoomAmount": "118.8",
        "amountRoomToInvoice": "118.8",
        "roomRateDay": [
          {
            "day": "17/10/2022",
            "rateCode": "14426",
            "rateName": "TEST",
            "amount": "66"
          },
          {
            "day": "18/10/2022",
            "rateCode": "14426",
            "rateName": "TEST",
            "amount": "66"
          }
        ],
        "guest": {
          "-id": "0",
          "type": "Adult",
          "amount": "132",
          "name": "TEST TEST TEST",
          "birthDate": "06/07/1989"
        }
      },
      "bookingPayment": {
        "modality": "ExternManagement",
        "type": "ExternalManaged",
        "status": "Ok"
      },
      "paymentDetail": [
        {
          "action": "Charge",
          "paymentStatus": "Inapplicable",
          "type": "Card",
          "date": "06/07/2022 12:25",
          "cardDetail": {
            "status": "Inapplicable",
            "card": {
              "holder": "TEST HOLDER",
              "number": "1234123412341234",
              "hashedValue": "1234123412341234",
              "seriesCode": "123",
              "expiryDate": "01/06/2027"
            }
          }
        },
        {
          "action": "Charge",
          "paymentStatus": "Ok",
          "type": "ExternalManaged",
          "date": "02/08/2022 09:43",
          "amount": "500",
          "externalManagedDetail": {
            "externalSystemCode": "SER",
            "externalReference": "12345",
            "status": "Ok"
          }
        }
      ],
      "extraCustomData": {
        "customData": [
          {
            "key": "CreationSystem",
            "value": "EDR"
          },
          {
            "key": "ParentSystem",
            "value": "STK"
          },
          {
            "key": "PriceType",
            "value": "Net"
          },
          {
            "key": "StatusPaymentBooking",
            "value": "Pending"
          },
          {
            "key": "OriginalAmount",
            "value": "132.0"
          }
        ]
      }
    }
  }
}

Ejemplo respuesta BookingConfirmResponse procesada incorrectamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingAddPaymentResponse>
    <sessionId>SUP#FOO#123456789</sessionId>
    <notification code="DSUP-7">
        <type>E</type>
        <text>La funcionalidad ConfirmBooking-Inbound no está activada. Por favor, consulte su Account Manager</text>
    </notification>
</BookingAddPaymentResponse>
{
  "BookingAddPaymentResponse": {
    "sessionId": "SUP#FOO#123456789",
    "notification": {
      "code": "DSUP-7",
      "type": "E",
      "text": "La funcionalidad ConfirmBooking-Inbound no está activada. Por favor, consulte su Account Manager"
    }
  }
}

Mensaje utilizado para pagos a reservas reservas.

BookingAddPaymentRequest

Mensaje petición de recuperación de reservas

Elemento Tipo Obl? Descripción
credentials Credentials Credenciales de autenticación del usuario (Ver Autenticación)
reference String Localizador de la reserva de Hotetec
hotelCode Integer Código de hotel
paymentDetail BookingPaymentDetail Elemento que contiene el pago a añadir
↳ action String Indica si el pago es un cobro (Charge) o una devolución (Refund).
↳ paymentStatus String Estado del pago (Tendría que ser siempre Ok, aunque acepta Error)
↳ type String Indica el tipo de pago realizado (Inmediato (Inmediate), Transferencia bancaria (BankTransfer) o PayByLink (PayByLink))
↳ date DateTime Fecha del pago (dd/MM/yyyy HH:mm)
↳ amount Double Importe total del pago (#.##)
↳ externalSystemCode String No1 Indica el código del sistema externo utilizado para el pago. (PayComet PAC o Transfermovil TFM)
↳ externalReference String No2 Indica la referencia del pago externo.
↳ externEmail String No3 Indica el email asociado al pago.

BookingAddPaymentResponse

Mensaje respuesta de confirmación de reservas

Elemento Tipo Obl? Descripción
sessionId String Identificador de la sesión que ha procesado la transacción
booking Booking No Información de una reserva de hotel
↳ reference String Localizador de la reserva
↳ creationDate DateTime Fecha de creación de la reserva (dd/MM/yyy HH:mm)
↳ modificationDate DateTime No Fecha de modificación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una modificación de reserva
↳ cancellationDate DateTime No Fecha de cancelación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una cancelación de reserva
↳ country String No Código del país de origen de la reserva (2 letter ISO 3166). Sólo vendrá informado en la reservas propias de Hotetec
↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳ amount Double Importe total de la reserva (#.##)
↳ bookingClient BookingClient Información del cliente que ha realizado la reserva, refiriéndose a la agencia (Ej: Logitravel), OTA (Ej: Booking.com), o el propio hotel
↳↳ clientCode String Código de cliente
↳↳ clientName String Nombre de cliente
↳↳ fiscalClientName String No Nombre fiscal referente al cliente de la reserva
↳↳ addressClient String No Dirección física de la empresa cliente
↳↳ postalClientCode String No Código postal de la empresa cliente
↳↳ countryClient String No País de la empresa cliente
↳↳ cifClient String No Número CIF de la empresa cliente
↳↳ emailClient String No Correo electrónico de la empresa cliente
↳↳ clientReference String No Referencia de la reserva del cliente (habitualmente su localizador)
↳ endCustomer EndCustomer Información del cliente final de la reserva
↳↳ name String Nombre del cliente final
↳↳ birthDate Date No Fecha de nacimiento (dd/MM/yyy)
↳↳ mail String No Email del cliente final
↳↳ phone String No Teléfono de contacto del cliente final
↳↳ nationality String No Nacionadlidad (2 letter ISO 3166)
↳↳ document Document No Información referente al documento de identificación de la persona de contacto
↳↳↳ typeDocument String No Tipo de documento (DNI, NIE, Passport o IdentityCard)
↳↳↳ numberDocument String No Número de documento
↳↳ labels Labels No Información referente a las etiquetas asignadas a la persona de contacto
↳↳↳ label[] String No Etiqueta asignada a la persona de contacto. Estas etiquetas se definen en el apartado CRM del backOffice de Hotetec.
↳ commision Commission No Información sobre las comisiones aplicadas en la reserva
↳↳ serviceCommission[] ServiceCommission No Información específica sobre un servicio reservado
↳↳↳ serviceId String Identificador que identifica la habitación reservada
↳↳↳ commissionAmount Double No Importe de la comisión aplicada
↳↳↳ commissionPercentage Double No Porcentage de la comisión aplicada
↳ hotelCode Integer Código de hotel
↳ currencyCode String Código de divisa (Códigos ISO 4217)
↳ bookingRoom[] BookingRoom Información de habitación de hotel reservada
↳↳ @id String Identificador de la habitación
↳↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳↳ roomCode String Código de habitación
↳↳ mealPlanCode String Código de régimen alimenticio
↳↳ amount Double Importe de la habitación reservada (#.##)
↳↳ totalRoomAmount Double No Coste de la habitación: Precio Hab x Noches + Suplementos Obligatorios (#.##)
↳↳ commissionRoomAmount Double No Comisión de la habitación: Coste de la habitación * Porcentaje comisión (#.##)
↳↳ netRoomAmount Double No Coste neto de la habitación: Coste de la habitación - Comisión habitación (#.##)
↳↳ amountRoomToInvoice Double No Coste a facturar de la habitación: Amount - porcentaje de comisión (#.##)
↳↳ roomRateDay[] RoomRateDay Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia
↳↳↳ day Date Día de la estancia (dd/MM/yyy)
↳↳↳ rateCode String No Código de tarifa
↳↳↳ amount String Importe del día
↳↳ guest[] Guest Pasajero de la reserva
↳↳↳ @id Integer Identificador del pasajero
↳↳↳ name String Nombre del pasajero. Si el nombre no ha sido informado en la reserva, se substituirá por el nombre de la persona de contacto
↳↳↳ gender String No Género del pasajero ('Male': Hombre, 'Female': Mujer y 'Undefined': Indefinido).
↳↳↳ type Enum Tipo (Adult, Child, Baby)
↳↳↳ amount Double Importe correspondiente al pasajero
↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳ nationality[] String No Nacionalidad del huésped
↳↳↳ document[] Document No Información relativa a los documentos aportados por el huésped
↳↳↳↳ typeDocument String No Tipo del documento aportado ('D': Dni, 'E': Nie y 'P':Pasaporte)
↳↳↳↳ numberDocument String No Número del documento aportado
↳↳↳↳ expeditionDate Date No Fecha de expedición del documento (dd/MM/yyyy)
↳↳↳↳ expiryDocument Date No Fecha de caducidad del documento (dd/MM/yyyy)
↳↳↳ contact[] ContactAddress No Información relativa a los datos de contacto aportados por el huésped
↳↳↳↳ phone String No Teléfono aportado por el huésped
↳↳↳↳ email String No Email aportado por el huésped
↳↳↳↳ addressText String No Dirección aportada por el huésped
↳↳↳↳ postalCode String No Código postal
↳↳ cancellationData CancellationData No Gastos de cancelación de la habitación
↳↳↳ cancelPenaltyPolicy[] CancelPenaltyPolicy Gasto de cancelación aplicable a partir de una fecha de cancelación
↳↳↳↳ @id Integer Identificador del gasto de cancelación
↳↳↳↳ date Calendar Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación
↳↳↳↳ timeRelevant Boolean Elemento que indica si las horas en la fecha de cancelación son relevantes o se debe tomar sólo la fecha como dato significativo
↳↳↳↳ amount Double Importe que se aplicará al cancelar la habitación
↳↳↳↳ description String No Descripción de los gastos de cancelación
↳ bookingSupplement[] BookingSupplement No Información de suplemento reservado
↳↳ code String No Código del suplemento opcional reservado. Sólo se informará si se dispone del mismo, lo cual será siempre en las reservas internas, y de forma opcional en las externas.
↳↳ name String Nombre del suplemento opcional reservado
↳↳ typeSupplement String Indica el tipo de suplemento que tratamos (Mandatory / Optional / SalePolicy)
↳↳ internalName String No Nombre interno de la política comercial (suplementos del tipo SP) aplicada en la reserva.
↳↳ description String No Descripción detallada del suplemento opcional reservado
↳↳ checkIn Date No Fecha de inicio del suplemento (dd/MM/yyy)
↳↳ checkOut Date No Fecha de fin del suplemento (dd/MM/yyy)
↳↳ bookingRoomId String No Identificador de la habitación reservada, si el suplemento referencia a una habitación en concreto
↳↳ guestId[] Integer No Identificador del pasajero al que se hace referencia, si el suplemento referencia a un pasajero/os en concreto
↳↳ amount Double Importe total del suplemento opcional reservado
↳↳ commissionSupplementAmount Double No Comisión del suplemento (#.##)
↳↳ netSupplementAmount Double No Coste neto del suplemento: Valor total del Suplemento - Importe de Comisión del suplemento (#.##)
↳↳ promotionalCode[] String No Indica los códigos aplicados en el suplemento en cuestión
↳↳ mandatory Boolean Indica si el suplemento es obligatorio (true) o opcional (false)
↳↳ detail SupplementDetail No Indica los detalles del suplemento.
↳↳↳ shuttleDetail SupplementShuttleDetail No Indica los detalles de transporte (siempre y cuando el suplemento sea de tipo TRF)
↳↳↳↳ mailTransferProvider String No Indica el email del proveedor del transfer
↳↳↳↳ arrivalFlight ShuttleFlightDetail No Indica los detalles del vuelo de llegada
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳↳↳↳ departureFlight ShuttleFlightDetail No Indica los detalles del vuelo de salida
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳ bookingPayment BookingPayment No Información del pago de la reserva1
↳↳ modality Enum Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ type Enum Tipo de pago (BankTransfer / Card / VirtualCard / PrepaidCard / WarrantyCard / Cash / Cheque / Credit / Voucher / ExternalManaged / PinPad)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ status Enum Estado de pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ description String No Contiene el nombre comercial asignado a a la modalidad de pago
↳ paymentCardDetail PaymentCardDetail No Detalles de la tarjeta que ha realizado el pago (sólo viene informado si bookingPayment.type es Card, PrepaidCard, VirtualCard o WarrantyCard)
↳↳ holder String Nombre del titular de la tarjeta
↳↳ number String Número de la tarjeta
↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳ securityCode String No Código de seguridad (cvc2)
↳ paymentDetail[] PaymentDetail No Log con todos los pagos realizados en la reserva
↳↳ action String Tipo de operación (charge / refund)
↳↳ paymentStatus String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ type String Código del tipo de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ date Calendar Fecha de la transacción
↳↳ amount Double Importe (#.##)
↳↳↳ cardDetail PaymentDetailCardDetail No Detalle pago con tarjeta de crédito
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ card CreditCard Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳↳ systemCode String Identificador del sistema de pago
↳↳↳↳ reference String Localizador de la reserva
↳↳↳↳ authorizedCode String Código de autorización
↳↳↳↳ errorDescription String No Descripción del error en el pago
↳↳↳ externalManagedDetail PaymentExternalManagedDetail No Datos detallados de un sistema de pago externo, por ejemplo Paypal
↳↳↳↳ externalSystemCode String Código del sistema externo
↳↳↳↳ externalReference String Referencia externa
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳ virtualCard VirtualCard No Información de la tarjeta virtual
↳↳↳↳ code String Código de tarjeta virtual
↳↳↳↳ accountCode String Código de la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ authorizedCode String Código de autorización del pago
↳↳↳↳ currencyCode String Código de divisa asociada al usuario
↳↳↳↳ availableAmount String Importe disponible en la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ status String Estado de la tarjeta virtual (Active / Inactive / Blocked / Close)
↳↳↳↳ referencePayClient String eferencia del pago para el cliente
↳↳↳↳ description String No Descripción del elemento
↳↳↳↳ person BasePerson No Persona con los datos básicos
↳↳↳↳↳ firstName String No Nombre de la persona
↳↳↳↳↳ firstLastName String No Primer apellido de la persona
↳↳↳↳↳ secondLastName String No Segundo apellido de la persona
↳↳↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳↳ contact BaseContact No Contacto con los datos básicos
↳↳↳↳↳ phone String No Número de teléfono
↳↳↳↳↳ fax String No Número de Fax
↳↳↳↳↳ email String No Dirección de e-mail
↳↳↳↳↳ web Date No Dirección de la página web
↳↳↳↳ address Address No Información de Dirección
↳↳↳↳↳ countryCode String No Código del país
↳↳↳↳↳ countryName String No Nombre del país
↳↳↳↳↳ state String No Estado
↳↳↳↳↳ county Date No Condado
↳↳↳↳↳ province String No Provincia
↳↳↳↳↳ locationCode String No Código de la localidad, ciudad, zona rural
↳↳↳↳↳ locationName String No Nombre de la localidad, ciudad, zona rural
↳↳↳↳↳ postalCode Date No Código postal
↳↳↳↳ creditCard CreditCard No Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ prepaidCardDetail PrepaidCardDetail No Detalle pago con tarjeta de prepago
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta prepago
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ warrantyCardDetail WarrantyCardDetail No Detalle pago con tarjeta de garantía
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta de garantía
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳ saleRules SaleRules No Elemento que contiene las reglas de ventas cargadas en Hotetec, y que se han aplicado en la reserva.
↳↳ bookingRoom[] Room No Elemento que contiene las reglas de venta aplicadas en una habitación en concreto.
↳↳↳ @id Integer Identificador de la habitación
↳↳↳ saleRulesByDay[] SaleRulesByDay Elemento que contiene un desglose de las reglas de venta aplicadas por día.
↳↳↳↳ day Date Día aplicado
↳↳↳↳ saleRule[] SaleRule No Elemento que contiene una regla de venta aplicada en el día concreto.
↳↳↳↳↳ name String Nombre de la regla de venta.
↳↳↳↳↳ amount String No Importe cargado en la regla de venta aplicada.
↳↳↳↳↳ percentage String No Percentaje cargado en la regla de venta aplicada.

BookingCancel

Ejemplo BookingCancelRequest para cancelar una reserva en particular

<?xml version="1.0" encoding="UTF-8"?>
<BookingCancelRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials>
    <hotelCode>1234</hotelCode>
    <reference>TESTHTT240326SFESKH</reference>
</BookingCancelRequest>
{
  "BookingCancelRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": 1234,
    "reference": "TESTHTT240326SFESKH",
  }
}

Ejemplo respuesta BookingCancelResponse procesada correctamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingCancelResponse>
    <sessionId>SFO#12345#199934329361320</sessionId>
    <booking>
        <reference>TESTHTT240326SFESKH</reference>
        <creationDate>26/03/2024 16:11</creationDate>
        <cancellationDate>28/05/2024 14:25</cancellationDate>
        <country>ES</country>
        <checkIn>14/05/2024</checkIn>
        <checkOut>15/05/2024</checkOut>
        <status>Cancelled</status>
        <amount>18.17</amount>
        <amountToInvoice>18.17</amountToInvoice>
        <bookingClient>
            <clientCode>TESTHTT</clientCode>
            <clientName>Test Hotetec</clientName>
            <fiscalClientName>Test Hotetec</fiscalClientName>
            <addressClient>Parc Bit</addressClient>
            <postalClientCode>07079</postalClientCode>
            <countryClient>ES</countryClient>
            <cifClient>A00000000</cifClient>
            <emailClient>soporte@hotetec.com</emailClient>
        </bookingClient>
        <endCustomer>
            <name>Customer Name</name>
            <firstName>Customer</firstName>
            <lastName>Name</lastName>
            <mail>customername@hotetec.com</mail>
            <phone>+34666777888</phone>
            <nationality>es</nationality>
            <language>ES</language>
        </endCustomer>
        <commission>
            <serviceCommission>
                <serviceId>1</serviceId>
                <commissionAmount>0.0</commissionAmount>
                <commissionPercentage>0.0</commissionPercentage>
            </serviceCommission>
        </commission>
        <hotelCode>1234</hotelCode>
        <currencyCode>EUR</currencyCode>
        <bookingRoom id="1">
            <checkIn>14/05/2024</checkIn>
            <checkOut>15/05/2024</checkOut>
            <status>Cancelled</status>
            <roomCode>DBL#STD</roomCode>
            <mealPlanCode>RO</mealPlanCode>
            <amount>18.17</amount>
            <totalRoomAmount>18.17</totalRoomAmount>
            <commissionRoomAmount>0.0</commissionRoomAmount>
            <netRoomAmount>18.17</netRoomAmount>
            <amountRoomToInvoice>18.17</amountRoomToInvoice>
            <roomRateDay>
                <day>14/05/2024</day>
                <rateCode>31299</rateCode>
                <rateName>Semiflexible</rateName>
                <internalRateName>Semiflexible</internalRateName>
                <amount>28.86</amount>
            </roomRateDay>
            <guest id="1">
                <type>Adult</type>
                <amount>30.28</amount>
                <name>Guest 1</name>
                <firstName>Guest</firstName>
                <lastName>1</lastName>
                <birthDate>14/05/1994</birthDate>
                <age>30</age>
            </guest>
            <guest id="2">
                <type>Adult</type>
                <amount>30.28</amount>
                <name>Guest 2</name>
                <firstName>Guest</firstName>
                <lastName>2</lastName>
                <birthDate>14/05/1994</birthDate>
                <age>30</age>
            </guest>
            <guest id="3">
                <type>Baby</type>
                <name>Guest 3</name>
                <firstName>Guest</firstName>
                <lastName>3</lastName>
                <birthDate>14/05/2023</birthDate>
                <age>1</age>
            </guest>
            <cancellationData>
                <cancelPenaltyPolicy id="3">
                    <date>19/08/2021 00:00</date>
                    <timeRelevant>false</timeRelevant>
                    <amount>18.17</amount>
                </cancelPenaltyPolicy>
            </cancellationData>
        </bookingRoom>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@71244</code>
            <name>Detalle de bienvenida</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <bookingRoomId>1</bookingRoomId>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@71242</code>
            <name>Cliente registrado</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <checkIn>14/05/2024</checkIn>
            <checkOut>14/05/2024</checkOut>
            <bookingRoomId>1</bookingRoomId>
            <amount>-10.69</amount>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@71660</code>
            <name>TEST VIRTUAL Increment</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <checkIn>14/05/2024</checkIn>
            <checkOut>14/05/2024</checkOut>
            <bookingRoomId>1</bookingRoomId>
            <amount>47.5</amount>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@-71660</code>
            <name>TEST VIRTUAL Decrement</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <checkIn>14/05/2024</checkIn>
            <checkOut>14/05/2024</checkOut>
            <bookingRoomId>1</bookingRoomId>
            <amount>-47.5</amount>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingPayment>
            <modality>ExternManagement</modality>
            <internalModalityName>Transferencia bancaria del 50%</internalModalityName>
            <type>BankTransfer</type>
            <status>Pending</status>
        </bookingPayment>
        <paymentDetail>
            <action>Charge</action>
            <paymentStatus>Pending</paymentStatus>
            <type>BankTransfer</type>
            <date>26/03/2024 00:00</date>
            <amount>30.28</amount>
            <breakdown>
                <bookingRoomId>1</bookingRoomId>
                <amount>30.28</amount>
            </breakdown>
        </paymentDetail>
        <extraCustomData>
            <customData>
                <key>CreationSystem</key>
                <value>HPH</value>
            </customData>
            <customData>
                <key>ParentSystem</key>
                <value>WEB</value>
            </customData>
            <customData>
                <key>Country</key>
                <value>ES</value>
            </customData>
            <customData>
                <key>IpAddress</key>
                <value>206.204.156.105</value>
            </customData>
            <customData>
                <key>BookingEngineCode</key>
                <value>120</value>
            </customData>
            <customData>
                <key>WebsiteUrl</key>
                <value>webtest.hotetec.in</value>
            </customData>
            <customData>
                <key>PriceType</key>
                <value>PVP</value>
            </customData>
            <customData>
                <key>ClientType</key>
                <value>A</value>
            </customData>
            <customData>
                <key>StatusPaymentBooking</key>
                <value>Pending</value>
            </customData>
            <customData>
                <key>OriginalAmount</key>
                <value>60.560</value>
            </customData>
            <customData>
                <key>SUPPLIER.Tripresale.Resaled</key>
                <value>S</value>
            </customData>
            <customData>
                <key>Agency</key>
                <value>1234</value>
            </customData>
            <customData>
                <key>NotSendTimonFare</key>
                <value>S</value>
            </customData>
        </extraCustomData>
        <saleRules/>
    </booking>
</BookingCancelResponse>
{
  "BookingCancelResponse": {
    "sessionId": "SFO#12345#199934329361320",
    "booking": {
      "reference": "TESTHTT240326SFESKH",
      "creationDate": "26/03/2024 16:11",
      "cancellationDate": "28/05/2024 14:25",
      "country": "ES",
      "checkIn": "14/05/2024",
      "checkOut": "15/05/2024",
      "status": "Cancelled",
      "amount": 18.17,
      "amountToInvoice": 18.17,
      "bookingClient": {
        "clientCode": "TESTHTT",
        "clientName": "Test Hotetec",
        "fiscalClientName": "Test Hotetec",
        "addressClient": "Parc Bit",
        "postalClientCode": 7079,
        "countryClient": "ES",
        "cifClient": "A00000000",
        "emailClient": "soporte@hotetec.com"
      },
      "endCustomer": {
        "name": "Customer Name",
        "firstName": "Customer",
        "lastName": "Name",
        "mail": "customername@hotetec.com",
        "phone": 34666777888,
        "nationality": "es",
        "language": "ES"
      },
      "commission": {
        "serviceCommission": {
          "serviceId": 1,
          "commissionAmount": 0,
          "commissionPercentage": 0
        }
      },
      "hotelCode": 1234,
      "currencyCode": "EUR",
      "bookingRoom": {
        "checkIn": "14/05/2024",
        "checkOut": "15/05/2024",
        "status": "Cancelled",
        "roomCode": "DBL#STD",
        "mealPlanCode": "RO",
        "amount": 18.17,
        "totalRoomAmount": 18.17,
        "commissionRoomAmount": 0,
        "netRoomAmount": 18.17,
        "amountRoomToInvoice": 18.17,
        "roomRateDay": {
          "day": "14/05/2024",
          "rateCode": 31299,
          "rateName": "Semiflexible",
          "internalRateName": "Semiflexible",
          "amount": 28.86
        },
        "guest": [
          {
            "type": "Adult",
            "amount": 30.28,
            "name": "Guest 1",
            "firstName": "Guest",
            "lastName": 1,
            "birthDate": "14/05/1994",
            "age": 30
          },
          {
            "type": "Adult",
            "amount": 30.28,
            "name": "Guest 2",
            "firstName": "Guest",
            "lastName": 2,
            "birthDate": "14/05/1994",
            "age": 30
          },
          {
            "type": "Baby",
            "name": "Guest 3",
            "firstName": "Guest",
            "lastName": 3,
            "birthDate": "14/05/2023",
            "age": 1
          }
        ],
        "cancellationData": {
          "cancelPenaltyPolicy": {
            "date": "19/08/2021 00:00",
            "timeRelevant": false,
            "amount": 18.17
          }
        }
      },
      "bookingSupplement": [
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@71244",
          "name": "Detalle de bienvenida",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "bookingRoomId": 1,
          "mandatory": true
        },
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@71242",
          "name": "Cliente registrado",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "checkIn": "14/05/2024",
          "checkOut": "14/05/2024",
          "bookingRoomId": 1,
          "amount": -10.69,
          "mandatory": true
        },
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@71660",
          "name": "TEST VIRTUAL Increment",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "checkIn": "14/05/2024",
          "checkOut": "14/05/2024",
          "bookingRoomId": 1,
          "amount": 47.5,
          "mandatory": true
        },
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@-71660",
          "name": "TEST VIRTUAL Decrement",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "checkIn": "14/05/2024",
          "checkOut": "14/05/2024",
          "bookingRoomId": 1,
          "amount": -47.5,
          "mandatory": true
        }
      ],
      "bookingPayment": {
        "modality": "ExternManagement",
        "internalModalityName": "Transferencia bancaria del 50%",
        "type": "BankTransfer",
        "status": "Pending"
      },
      "paymentDetail": {
        "action": "Charge",
        "paymentStatus": "Pending",
        "type": "BankTransfer",
        "date": "26/03/2024 00:00",
        "amount": 30.28,
        "breakdown": {
          "bookingRoomId": 1,
          "amount": 30.28
        }
      },
      "extraCustomData": {
        "customData": [
          {
            "key": "CreationSystem",
            "value": "HPH"
          },
          {
            "key": "ParentSystem",
            "value": "WEB"
          },
          {
            "key": "Country",
            "value": "ES"
          },
          {
            "key": "IpAddress",
            "value": "206.204.156.105"
          },
          {
            "key": "BookingEngineCode",
            "value": 120
          },
          {
            "key": "WebsiteUrl",
            "value": "webtest.hotetec.in"
          },
          {
            "key": "PriceType",
            "value": "PVP"
          },
          {
            "key": "ClientType",
            "value": "A"
          },
          {
            "key": "StatusPaymentBooking",
            "value": "Pending"
          },
          {
            "key": "OriginalAmount",
            "value": 60.56
          },
          {
            "key": "SUPPLIER.Tripresale.Resaled",
            "value": "S"
          },
          {
            "key": "Agency",
            "value": 1234
          },
          {
            "key": "NotSendTimonFare",
            "value": "S"
          }
        ]
      },
      "saleRules": ""
    }
  }
}

Ejemplo respuesta BookingCancelResponse procesada incorrectamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingCancelResponse>
    <sessionId>SFO#12345#199934329361320</sessionId>
    <notification code="DSUP-7">
        <type>E</type>
        <text>La funcionalidad CancelBooking-Inbound no está activada. Por favor, consulte su Account Manager</text>
    </notification>
</BookingCancelResponse>
{
  "BookingCancelResponse": {
    "sessionId": "SFO#12345#199934329361320",
    "notification": {
      "-code": "DSUP-7",
      "type": "E",
      "text": "La funcionalidad CancelBooking-Inbound no está activada. Por favor, consulte su Account Manager"
    }
  }
}

Mensaje utilizado para la cancelación de reservas.

BookingCancelRequest

Mensaje petición para la cancelación de reserva

Elemento Tipo Obl? Descripción
credentials Credentials Credenciales de autenticación del usuario (Ver Autenticación)
reference String Localizador de la reserva de Hotetec
hotelCode Integer Código de hotel

BookingCancelResponse

Mensaje respuesta de cancelación de reserva

Elemento Tipo Obl? Descripción
sessionId String Identificador de la sesión que ha procesado la transacción
booking Booking No Información de una reserva de hotel
↳ reference String Localizador de la reserva
↳ creationDate DateTime Fecha de creación de la reserva (dd/MM/yyy HH:mm)
↳ modificationDate DateTime No Fecha de modificación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una modificación de reserva
↳ cancellationDate DateTime No Fecha de cancelación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una cancelación de reserva
↳ country String No Código del país de origen de la reserva (2 letter ISO 3166). Sólo vendrá informado en la reservas propias de Hotetec
↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳ amount Double Importe total de la reserva (#.##)
↳ bookingClient BookingClient Información del cliente que ha realizado la reserva, refiriéndose a la agencia (Ej: Logitravel), OTA (Ej: Booking.com), o el propio hotel
↳↳ clientCode String Código de cliente
↳↳ clientName String Nombre de cliente
↳↳ fiscalClientName String No Nombre fiscal referente al cliente de la reserva
↳↳ addressClient String No Dirección física de la empresa cliente
↳↳ postalClientCode String No Código postal de la empresa cliente
↳↳ countryClient String No País de la empresa cliente
↳↳ cifClient String No Número CIF de la empresa cliente
↳↳ emailClient String No Correo electrónico de la empresa cliente
↳↳ clientReference String No Referencia de la reserva del cliente (habitualmente su localizador)
↳ endCustomer EndCustomer Información del cliente final de la reserva
↳↳ name String Nombre del cliente final
↳↳ birthDate Date No Fecha de nacimiento (dd/MM/yyy)
↳↳ mail String No Email del cliente final
↳↳ phone String No Teléfono de contacto del cliente final
↳↳ nationality String No Nacionadlidad (2 letter ISO 3166)
↳↳ document Document No Información referente al documento de identificación de la persona de contacto
↳↳↳ typeDocument String No Tipo de documento (DNI, NIE, Passport o IdentityCard)
↳↳↳ numberDocument String No Número de documento
↳↳ labels Labels No Información referente a las etiquetas asignadas a la persona de contacto
↳↳↳ label[] String No Etiqueta asignada a la persona de contacto. Estas etiquetas se definen en el apartado CRM del backOffice de Hotetec.
↳ commision Commission No Información sobre las comisiones aplicadas en la reserva
↳↳ serviceCommission[] ServiceCommission No Información específica sobre un servicio reservado
↳↳↳ serviceId String Identificador que identifica la habitación reservada
↳↳↳ commissionAmount Double No Importe de la comisión aplicada
↳↳↳ commissionPercentage Double No Porcentage de la comisión aplicada
↳ hotelCode Integer Código de hotel
↳ currencyCode String Código de divisa (Códigos ISO 4217)
↳ bookingRoom[] BookingRoom Información de habitación de hotel reservada
↳↳ @id String Identificador de la habitación
↳↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳↳ roomCode String Código de habitación
↳↳ mealPlanCode String Código de régimen alimenticio
↳↳ amount Double Importe de la habitación reservada (#.##)
↳↳ totalRoomAmount Double No Coste de la habitación: Precio Hab x Noches + Suplementos Obligatorios (#.##)
↳↳ commissionRoomAmount Double No Comisión de la habitación: Coste de la habitación * Porcentaje comisión (#.##)
↳↳ netRoomAmount Double No Coste neto de la habitación: Coste de la habitación - Comisión habitación (#.##)
↳↳ amountRoomToInvoice Double No Coste a facturar de la habitación: Amount - porcentaje de comisión (#.##)
↳↳ roomRateDay[] RoomRateDay Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia
↳↳↳ day Date Día de la estancia (dd/MM/yyy)
↳↳↳ rateCode String No Código de tarifa
↳↳↳ amount String Importe del día
↳↳ guest[] Guest Pasajero de la reserva
↳↳↳ @id Integer Identificador del pasajero
↳↳↳ name String Nombre del pasajero. Si el nombre no ha sido informado en la reserva, se substituirá por el nombre de la persona de contacto
↳↳↳ gender String No Género del pasajero ('Male': Hombre, 'Female': Mujer y 'Undefined': Indefinido).
↳↳↳ type Enum Tipo (Adult, Child, Baby)
↳↳↳ amount Double Importe correspondiente al pasajero
↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳ nationality[] String No Nacionalidad del huésped
↳↳↳ document[] Document No Información relativa a los documentos aportados por el huésped
↳↳↳↳ typeDocument String No Tipo del documento aportado ('D': Dni, 'E': Nie y 'P':Pasaporte)
↳↳↳↳ numberDocument String No Número del documento aportado
↳↳↳↳ expeditionDate Date No Fecha de expedición del documento (dd/MM/yyyy)
↳↳↳↳ expiryDocument Date No Fecha de caducidad del documento (dd/MM/yyyy)
↳↳↳ contact[] ContactAddress No Información relativa a los datos de contacto aportados por el huésped
↳↳↳↳ phone String No Teléfono aportado por el huésped
↳↳↳↳ email String No Email aportado por el huésped
↳↳↳↳ addressText String No Dirección aportada por el huésped
↳↳↳↳ postalCode String No Código postal
↳↳ cancellationData CancellationData No Gastos de cancelación de la habitación
↳↳↳ cancelPenaltyPolicy[] CancelPenaltyPolicy Gasto de cancelación aplicable a partir de una fecha de cancelación
↳↳↳↳ @id Integer Identificador del gasto de cancelación
↳↳↳↳ date Calendar Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación
↳↳↳↳ timeRelevant Boolean Elemento que indica si las horas en la fecha de cancelación son relevantes o se debe tomar sólo la fecha como dato significativo
↳↳↳↳ amount Double Importe que se aplicará al cancelar la habitación
↳↳↳↳ description String No Descripción de los gastos de cancelación
↳ bookingSupplement[] BookingSupplement No Información de suplemento reservado
↳↳ code String No Código del suplemento opcional reservado. Sólo se informará si se dispone del mismo, lo cual será siempre en las reservas internas, y de forma opcional en las externas.
↳↳ name String Nombre del suplemento opcional reservado
↳↳ typeSupplement String Indica el tipo de suplemento que tratamos (Mandatory / Optional / SalePolicy)
↳↳ internalName String No Nombre interno de la política comercial (suplementos del tipo SP) aplicada en la reserva.
↳↳ description String No Descripción detallada del suplemento opcional reservado
↳↳ checkIn Date No Fecha de inicio del suplemento (dd/MM/yyy)
↳↳ checkOut Date No Fecha de fin del suplemento (dd/MM/yyy)
↳↳ bookingRoomId String No Identificador de la habitación reservada, si el suplemento referencia a una habitación en concreto
↳↳ guestId[] Integer No Identificador del pasajero al que se hace referencia, si el suplemento referencia a un pasajero/os en concreto
↳↳ amount Double Importe total del suplemento opcional reservado
↳↳ commissionSupplementAmount Double No Comisión del suplemento (#.##)
↳↳ netSupplementAmount Double No Coste neto del suplemento: Valor total del Suplemento - Importe de Comisión del suplemento (#.##)
↳↳ promotionalCode[] String No Indica los códigos aplicados en el suplemento en cuestión
↳↳ mandatory Boolean Indica si el suplemento es obligatorio (true) o opcional (false)
↳↳ detail SupplementDetail No Indica los detalles del suplemento.
↳↳↳ shuttleDetail SupplementShuttleDetail No Indica los detalles de transporte (siempre y cuando el suplemento sea de tipo TRF)
↳↳↳↳ mailTransferProvider String No Indica el email del proveedor del transfer
↳↳↳↳ arrivalFlight ShuttleFlightDetail No Indica los detalles del vuelo de llegada
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳↳↳↳ departureFlight ShuttleFlightDetail No Indica los detalles del vuelo de salida
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳ bookingPayment BookingPayment No Información del pago de la reserva1
↳↳ modality Enum Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ type Enum Tipo de pago (BankTransfer / Card / VirtualCard / PrepaidCard / WarrantyCard / Cash / Cheque / Credit / Voucher / ExternalManaged / PinPad)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ status Enum Estado de pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ description String No Contiene el nombre comercial asignado a a la modalidad de pago
↳ paymentCardDetail PaymentCardDetail No Detalles de la tarjeta que ha realizado el pago (sólo viene informado si bookingPayment.type es Card, PrepaidCard, VirtualCard o WarrantyCard)
↳↳ holder String Nombre del titular de la tarjeta
↳↳ number String Número de la tarjeta
↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳ securityCode String No Código de seguridad (cvc2)
↳ paymentDetail[] PaymentDetail No Log con todos los pagos realizados en la reserva
↳↳ action String Tipo de operación (charge / refund)
↳↳ paymentStatus String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ type String Código del tipo de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ date Calendar Fecha de la transacción
↳↳ amount Double Importe (#.##)
↳↳↳ cardDetail PaymentDetailCardDetail No Detalle pago con tarjeta de crédito
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ card CreditCard Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳↳ systemCode String Identificador del sistema de pago
↳↳↳↳ reference String Localizador de la reserva
↳↳↳↳ authorizedCode String Código de autorización
↳↳↳↳ errorDescription String No Descripción del error en el pago
↳↳↳ externalManagedDetail PaymentExternalManagedDetail No Datos detallados de un sistema de pago externo, por ejemplo Paypal
↳↳↳↳ externalSystemCode String Código del sistema externo
↳↳↳↳ externalReference String Referencia externa
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳ virtualCard VirtualCard No Información de la tarjeta virtual
↳↳↳↳ code String Código de tarjeta virtual
↳↳↳↳ accountCode String Código de la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ authorizedCode String Código de autorización del pago
↳↳↳↳ currencyCode String Código de divisa asociada al usuario
↳↳↳↳ availableAmount String Importe disponible en la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ status String Estado de la tarjeta virtual (Active / Inactive / Blocked / Close)
↳↳↳↳ referencePayClient String eferencia del pago para el cliente
↳↳↳↳ description String No Descripción del elemento
↳↳↳↳ person BasePerson No Persona con los datos básicos
↳↳↳↳↳ firstName String No Nombre de la persona
↳↳↳↳↳ firstLastName String No Primer apellido de la persona
↳↳↳↳↳ secondLastName String No Segundo apellido de la persona
↳↳↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳↳ contact BaseContact No Contacto con los datos básicos
↳↳↳↳↳ phone String No Número de teléfono
↳↳↳↳↳ fax String No Número de Fax
↳↳↳↳↳ email String No Dirección de e-mail
↳↳↳↳↳ web Date No Dirección de la página web
↳↳↳↳ address Address No Información de Dirección
↳↳↳↳↳ countryCode String No Código del país
↳↳↳↳↳ countryName String No Nombre del país
↳↳↳↳↳ state String No Estado
↳↳↳↳↳ county Date No Condado
↳↳↳↳↳ province String No Provincia
↳↳↳↳↳ locationCode String No Código de la localidad, ciudad, zona rural
↳↳↳↳↳ locationName String No Nombre de la localidad, ciudad, zona rural
↳↳↳↳↳ postalCode Date No Código postal
↳↳↳↳ creditCard CreditCard No Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ prepaidCardDetail PrepaidCardDetail No Detalle pago con tarjeta de prepago
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta prepago
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ warrantyCardDetail WarrantyCardDetail No Detalle pago con tarjeta de garantía
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta de garantía
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳ saleRules SaleRules No Elemento que contiene las reglas de ventas cargadas en Hotetec, y que se han aplicado en la reserva.
↳↳ bookingRoom[] Room No Elemento que contiene las reglas de venta aplicadas en una habitación en concreto.
↳↳↳ @id Integer Identificador de la habitación
↳↳↳ saleRulesByDay[] SaleRulesByDay Elemento que contiene un desglose de las reglas de venta aplicadas por día.
↳↳↳↳ day Date Día aplicado
↳↳↳↳ saleRule[] SaleRule No Elemento que contiene una regla de venta aplicada en el día concreto.
↳↳↳↳↳ name String Nombre de la regla de venta.
↳↳↳↳↳ amount String No Importe cargado en la regla de venta aplicada.
↳↳↳↳↳ percentage String No Percentaje cargado en la regla de venta aplicada.

BookingConfirm

Ejemplo BookingConfirmRequest para confirmar una reserva en particular

<?xml version="1.0" encoding="UTF-8"?>
<BookingConfirmRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials>  
    <hotelCode>1234</hotelCode>
    <reference>EPL10032017140800-SALE</reference>
    <confirmReference>REFERENCIACONFIRMACION</confirmReference>
</BookingConfirmRequest>
{
  "BookingConfirmRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": "1234",
    "reference": "EPL10032017140800-SALE",
    "confirmReference": "REFERENCIACONFIRMACION"
  }
}

Ejemplo respuesta BookingConfirmResponse procesada correctamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingConfirmResponse>
    <sessionId>SUP#FOO#123456789</sessionId>
    <status>success</status>
</BookingConfirmResponse>
{
  "BookingConfirmResponse": {
    "sessionId": "SUP#FOO#123456789",
    "status": "success"
  }
}

Ejemplo respuesta BookingConfirmResponse procesada incorrectamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingConfirmResponse>
    <sessionId>SUP#FOO#123456789</sessionId>
    <notification code="DSUP-7">
        <type>E</type>
        <text>La funcionalidad ConfirmBooking-Inbound no está activada. Por favor, consulte su Account Manager</text>
    </notification>
</BookingConfirmResponse>
{
  "BookingConfirmResponse": {
    "sessionId": "SUP#FOO#123456789",
    "notification": {
      "-code": "DSUP-7",
      "type": "E",
      "text": "La funcionalidad ConfirmBooking-Inbound no está activada. Por favor, consulte su Account Manager"
    }
  }
}

Mensaje utilizado para confirmación de reservas.

BookingConfirmRequest

Mensaje petición de recuperación de reservas

Elemento Tipo Obl? Descripción
credentials Credentials Credenciales de autenticación del usuario (Ver Autenticación)
reference String Localizador de la reserva de Hotetec
hotelCode Integer Código de hotel
confirmReference String No Referencia de confirmación de reserva.

BookingConfirmResponse

Mensaje respuesta de confirmación de reservas

Elemento Tipo Obl? Descripción
sessionId String Identificador de la sesión que ha procesado la transacción
status String No Indica si la confirmación se ha realizado correctamente o no ('success'=sí, 'Error'=no)
notification Notification No En caso de que la confirmación no haya sido correcta, contendrá el error.
↳ @code String Contiene el código de error de Hotetec.
↳ type String Indica si es un error (E) o un warning (W).
↳ text String Texto descriptivo del error

BookingResale

Ejemplo BookingResaleRequest para revender una reserva en particular

<?xml version="1.0" encoding="UTF-8"?>
<BookingResaleRequest>
    <credentials>
        <systemCode>SFO</systemCode>
        <vendorCode>FOO</vendorCode>
        <user>BAR</user>
        <password>FOOBAR</password>
    </credentials>
    <hotelCode>1234</hotelCode>
    <reference>TESTHTT240326SFESKH</reference>
    <endCustomer>
        <name>Customer Name</name>
        <firstName>Surname 1</firstName>
        <lastName>Surname 2</lastName>
        <mail>customername@hotetec.com</mail>
        <phone>+34666777888</phone>
        <document>
            <typeDocument>DNI</typeDocument>
            <numberDocument>43136559E</numberDocument>
        </document>
        <nationality>es</nationality>
        <language>ES</language>
    </endCustomer>
    <guest id="1">
        <name>Guest</name>
        <firstName>1</firstName>
        <lastName>Guest 1</lastName>
    </guest>
    <guest id="2">
        <name>Guest</name>
        <firstName>2</firstName>
        <lastName>Guest 2</lastName>
    </guest>
    <guest id="3">
        <name>Guest</name>
        <firstName>3</firstName>
        <lastName>Guest 3</lastName>
    </guest>
</BookingResaleRequest>
{
  "BookingResaleRequest": {
    "credentials": {
      "systemCode": "SFO",
      "vendorCode": "FOO",
      "user": "BAR",
      "password": "FOOBAR"
    },
    "hotelCode": 1234,
    "reference": "TESTHTT240326SFESKH",
    "endCustomer": {
      "name": "Customer Name",
      "firstName": "Surname 1",
      "lastName": "Surname 2",
      "mail": "customername@hotetec.com",
      "phone": 34666777888,
      "document": {
        "typeDocument": "DNI",
        "numberDocument": "43136559E"
      },
      "nationality": "es",
      "language": "ES"
    },
    "guest": [
      {
        "name": "Guest",
        "firstName": 1,
        "lastName": "Guest 1"
      },
      {
        "name": "Guest",
        "firstName": 2,
        "lastName": "Guest 2"
      },
      {
        "name": "Guest",
        "firstName": 3,
        "lastName": "Guest 3"
      }
    ]
  }
}

Ejemplo respuesta BookingConfirmResponse procesada correctamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingResaleResponse>
    <sessionId>SFO#12345#199934329361320</sessionId>
    <booking>
        <reference>TESTHTT240326SFESKH</reference>
        <creationDate>26/03/2024 16:11</creationDate>
        <cancellationDate>28/05/2024 14:25</cancellationDate>
        <country>ES</country>
        <checkIn>14/05/2024</checkIn>
        <checkOut>15/05/2024</checkOut>
        <status>Cancelled</status>
        <amount>18.17</amount>
        <amountToInvoice>18.17</amountToInvoice>
        <bookingClient>
            <clientCode>TESTHTT</clientCode>
            <clientName>Test Hotetec</clientName>
            <fiscalClientName>Test Hotetec</fiscalClientName>
            <addressClient>Parc Bit</addressClient>
            <postalClientCode>07079</postalClientCode>
            <countryClient>ES</countryClient>
            <cifClient>A00000000</cifClient>
            <emailClient>soporte@hotetec.com</emailClient>
        </bookingClient>
        <endCustomer>
            <name>Customer Name</name>
            <firstName>Surname 1</firstName>
            <lastName>Surname 2</lastName>
            <mail>customername@hotetec.com</mail>
            <phone>+34666777888</phone>
            <nationality>es</nationality>
            <language>ES</language>
        </endCustomer>
        <commission>
            <serviceCommission>
                <serviceId>1</serviceId>
                <commissionAmount>0.0</commissionAmount>
                <commissionPercentage>0.0</commissionPercentage>
            </serviceCommission>
        </commission>
        <hotelCode>1234</hotelCode>
        <currencyCode>EUR</currencyCode>
        <bookingRoom id="1">
            <checkIn>14/05/2024</checkIn>
            <checkOut>15/05/2024</checkOut>
            <status>Cancelled</status>
            <roomCode>DBL#STD</roomCode>
            <mealPlanCode>RO</mealPlanCode>
            <amount>18.17</amount>
            <totalRoomAmount>18.17</totalRoomAmount>
            <commissionRoomAmount>0.0</commissionRoomAmount>
            <netRoomAmount>18.17</netRoomAmount>
            <amountRoomToInvoice>18.17</amountRoomToInvoice>
            <roomRateDay>
                <day>14/05/2024</day>
                <rateCode>31299</rateCode>
                <rateName>Semiflexible</rateName>
                <internalRateName>Semiflexible</internalRateName>
                <amount>28.86</amount>
            </roomRateDay>
            <guest id="1">
                <type>Adult</type>
                <amount>30.28</amount>
                <name>Guest 1</name>
                <firstName>Guest</firstName>
                <lastName>1</lastName>
                <birthDate>14/05/1994</birthDate>
                <age>30</age>
            </guest>
            <guest id="2">
                <type>Adult</type>
                <amount>30.28</amount>
                <name>Guest 2</name>
                <firstName>Guest</firstName>
                <lastName>2</lastName>
                <birthDate>14/05/1994</birthDate>
                <age>30</age>
            </guest>
            <guest id="3">
                <type>Baby</type>
                <name>Guest 3</name>
                <firstName>Guest</firstName>
                <lastName>3</lastName>
                <birthDate>14/05/2023</birthDate>
                <age>1</age>
            </guest>
            <cancellationData>
                <cancelPenaltyPolicy id="3">
                    <date>19/08/2021 00:00</date>
                    <timeRelevant>false</timeRelevant>
                    <amount>18.17</amount>
                </cancelPenaltyPolicy>
            </cancellationData>
        </bookingRoom>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@71244</code>
            <name>Detalle de bienvenida</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <bookingRoomId>1</bookingRoomId>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@71242</code>
            <name>Cliente registrado</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <checkIn>14/05/2024</checkIn>
            <checkOut>14/05/2024</checkOut>
            <bookingRoomId>1</bookingRoomId>
            <amount>-10.69</amount>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@71660</code>
            <name>TEST VIRTUAL Increment</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <checkIn>14/05/2024</checkIn>
            <checkOut>14/05/2024</checkOut>
            <bookingRoomId>1</bookingRoomId>
            <amount>47.5</amount>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingSupplement>
            <code>[EtT]SalePolicy(PpT)TESTHTT@-71660</code>
            <name>TEST VIRTUAL Decrement</name>
            <typeSupplement>SalePolicy</typeSupplement>
            <internalTypeSupplement>SPS</internalTypeSupplement>
            <checkIn>14/05/2024</checkIn>
            <checkOut>14/05/2024</checkOut>
            <bookingRoomId>1</bookingRoomId>
            <amount>-47.5</amount>
            <mandatory>true</mandatory>
        </bookingSupplement>
        <bookingPayment>
            <modality>ExternManagement</modality>
            <internalModalityName>Transferencia bancaria del 50%</internalModalityName>
            <type>BankTransfer</type>
            <status>Pending</status>
        </bookingPayment>
        <paymentDetail>
            <action>Charge</action>
            <paymentStatus>Pending</paymentStatus>
            <type>BankTransfer</type>
            <date>26/03/2024 00:00</date>
            <amount>30.28</amount>
            <breakdown>
                <bookingRoomId>1</bookingRoomId>
                <amount>30.28</amount>
            </breakdown>
        </paymentDetail>
        <extraCustomData>
            <customData>
                <key>CreationSystem</key>
                <value>HPH</value>
            </customData>
            <customData>
                <key>ParentSystem</key>
                <value>WEB</value>
            </customData>
            <customData>
                <key>Country</key>
                <value>ES</value>
            </customData>
            <customData>
                <key>IpAddress</key>
                <value>206.204.156.105</value>
            </customData>
            <customData>
                <key>BookingEngineCode</key>
                <value>120</value>
            </customData>
            <customData>
                <key>WebsiteUrl</key>
                <value>webtest.hotetec.in</value>
            </customData>
            <customData>
                <key>PriceType</key>
                <value>PVP</value>
            </customData>
            <customData>
                <key>ClientType</key>
                <value>A</value>
            </customData>
            <customData>
                <key>StatusPaymentBooking</key>
                <value>Pending</value>
            </customData>
            <customData>
                <key>OriginalAmount</key>
                <value>60.560</value>
            </customData>
            <customData>
                <key>SUPPLIER.Tripresale.Resaled</key>
                <value>S</value>
            </customData>
            <customData>
                <key>Agency</key>
                <value>1234</value>
            </customData>
            <customData>
                <key>NotSendTimonFare</key>
                <value>S</value>
            </customData>
        </extraCustomData>
        <saleRules/>
    </booking>
</BookingResaleResponse>
{
  "BookingResaleResponse": {
    "sessionId": "SFO#12345#199934329361320",
    "booking": {
      "reference": "TESTHTT240326SFESKH",
      "creationDate": "26/03/2024 16:11",
      "cancellationDate": "28/05/2024 14:25",
      "country": "ES",
      "checkIn": "14/05/2024",
      "checkOut": "15/05/2024",
      "status": "Cancelled",
      "amount": 18.17,
      "amountToInvoice": 18.17,
      "bookingClient": {
        "clientCode": "TESTHTT",
        "clientName": "Test Hotetec",
        "fiscalClientName": "Test Hotetec",
        "addressClient": "Parc Bit",
        "postalClientCode": 7079,
        "countryClient": "ES",
        "cifClient": "A00000000",
        "emailClient": "soporte@hotetec.com"
      },
      "endCustomer": {
        "name": "Customer Name",
        "firstName": "Surname 1",
        "lastName": "Surname 2",
        "mail": "customername@hotetec.com",
        "phone": 34666777888,
        "nationality": "es",
        "language": "ES"
      },
      "commission": {
        "serviceCommission": {
          "serviceId": 1,
          "commissionAmount": 0,
          "commissionPercentage": 0
        }
      },
      "hotelCode": 1234,
      "currencyCode": "EUR",
      "bookingRoom": {
        "checkIn": "14/05/2024",
        "checkOut": "15/05/2024",
        "status": "Cancelled",
        "roomCode": "DBL#STD",
        "mealPlanCode": "RO",
        "amount": 18.17,
        "totalRoomAmount": 18.17,
        "commissionRoomAmount": 0,
        "netRoomAmount": 18.17,
        "amountRoomToInvoice": 18.17,
        "roomRateDay": {
          "day": "14/05/2024",
          "rateCode": 31299,
          "rateName": "Semiflexible",
          "internalRateName": "Semiflexible",
          "amount": 28.86
        },
        "guest": [
          {
            "type": "Adult",
            "amount": 30.28,
            "name": "Guest 1",
            "firstName": "Guest",
            "lastName": 1,
            "birthDate": "14/05/1994",
            "age": 30
          },
          {
            "type": "Adult",
            "amount": 30.28,
            "name": "Guest 2",
            "firstName": "Guest",
            "lastName": 2,
            "birthDate": "14/05/1994",
            "age": 30
          },
          {
            "type": "Baby",
            "name": "Guest 3",
            "firstName": "Guest",
            "lastName": 3,
            "birthDate": "14/05/2023",
            "age": 1
          }
        ],
        "cancellationData": {
          "cancelPenaltyPolicy": {
            "date": "19/08/2021 00:00",
            "timeRelevant": false,
            "amount": 18.17
          }
        }
      },
      "bookingSupplement": [
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@71244",
          "name": "Detalle de bienvenida",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "bookingRoomId": 1,
          "mandatory": true
        },
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@71242",
          "name": "Cliente registrado",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "checkIn": "14/05/2024",
          "checkOut": "14/05/2024",
          "bookingRoomId": 1,
          "amount": -10.69,
          "mandatory": true
        },
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@71660",
          "name": "TEST VIRTUAL Increment",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "checkIn": "14/05/2024",
          "checkOut": "14/05/2024",
          "bookingRoomId": 1,
          "amount": 47.5,
          "mandatory": true
        },
        {
          "code": "[EtT]SalePolicy(PpT)TESTHTT@-71660",
          "name": "TEST VIRTUAL Decrement",
          "typeSupplement": "SalePolicy",
          "internalTypeSupplement": "SPS",
          "checkIn": "14/05/2024",
          "checkOut": "14/05/2024",
          "bookingRoomId": 1,
          "amount": -47.5,
          "mandatory": true
        }
      ],
      "bookingPayment": {
        "modality": "ExternManagement",
        "internalModalityName": "Transferencia bancaria del 50%",
        "type": "BankTransfer",
        "status": "Pending"
      },
      "paymentDetail": {
        "action": "Charge",
        "paymentStatus": "Pending",
        "type": "BankTransfer",
        "date": "26/03/2024 00:00",
        "amount": 30.28,
        "breakdown": {
          "bookingRoomId": 1,
          "amount": 30.28
        }
      },
      "extraCustomData": {
        "customData": [
          {
            "key": "CreationSystem",
            "value": "HPH"
          },
          {
            "key": "ParentSystem",
            "value": "WEB"
          },
          {
            "key": "Country",
            "value": "ES"
          },
          {
            "key": "IpAddress",
            "value": "206.204.156.105"
          },
          {
            "key": "BookingEngineCode",
            "value": 120
          },
          {
            "key": "WebsiteUrl",
            "value": "webtest.hotetec.in"
          },
          {
            "key": "PriceType",
            "value": "PVP"
          },
          {
            "key": "ClientType",
            "value": "A"
          },
          {
            "key": "StatusPaymentBooking",
            "value": "Pending"
          },
          {
            "key": "OriginalAmount",
            "value": 60.56
          },
          {
            "key": "SUPPLIER.Tripresale.Resaled",
            "value": "S"
          },
          {
            "key": "Agency",
            "value": 1234
          },
          {
            "key": "NotSendTimonFare",
            "value": "S"
          }
        ]
      },
      "saleRules": ""
    }
  }
}

Ejemplo respuesta BookingResaleResponse procesada incorrectamente

<?xml version="1.0" encoding="UTF-8"?>
<BookingResaleResponse>
    <sessionId>SFO#12345#199934329361320</sessionId>
    <notification code="DSUP-7">
        <type>E</type>
        <text>La funcionalidad ResaleBooking-Inbound no está activada. Por favor, consulte su Account Manager</text>
    </notification>
</BookingResaleResponse>
{
  "BookingResaleResponse": {
    "sessionId": "SFO#12345#199934329361320",
    "notification": {
      "-code": "DSUP-7",
      "type": "E",
      "text": "La funcionalidad ResaleBooking-Inbound no está activada. Por favor, consulte su Account Manager"
    }
  }
}

Mensaje utilizado para la reventa de reservas.

BookingResaleRequest

Mensaje petición de reventa de reserva

Elemento Tipo Obl? Descripción
credentials Credentials Credenciales de autenticación del usuario (Ver Autenticación)
reference String Localizador de la reserva de Hotetec
hotelCode Integer Código de hotel
endCustomer EndCustomer Información del cliente final de la reserva
↳ name String Nombre del cliente final
↳ firstName String Primer apellido del cliente final
↳ lastName String Segundo apellido del cliente final
↳ birthDate Date No Fecha de nacimiento (dd/MM/yyy)
↳ mail String Email del cliente final
↳ phone String No Teléfono de contacto del cliente final
↳ nationality String No Nacionadlidad (2 letter ISO 3166)
↳ language String No Idioma del cliente
↳ address String No Dirección indicada para el cliente
↳ document Document No Información referente al documento de identificación de la persona de contacto
↳↳ typeDocument String No Tipo de documento (DNI, NIE, Passport o IdentityCard)
↳↳ numberDocument String No Número de document
guest[] Guest Pasajero de la reserva
↳ @id Integer Identificador del pasajero
↳ name String Nombre completo del pasajero. Si el nombre no ha sido informado en la reserva, se substituirá por el nombre de la persona de contacto
↳ firstName String Nombre del pasajero
↳ lastName String Apellido del pasajero

BookingResaleResponse

Mensaje respuesta de reventa de reserva

Elemento Tipo Obl? Descripción
sessionId String Identificador de la sesión que ha procesado la transacción
booking Booking No Información de una reserva de hotel
↳ reference String Localizador de la reserva
↳ creationDate DateTime Fecha de creación de la reserva (dd/MM/yyy HH:mm)
↳ modificationDate DateTime No Fecha de modificación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una modificación de reserva
↳ cancellationDate DateTime No Fecha de cancelación de la reserva (dd/MM/yyyy HH:mm). Sólo viene informado cuando es una cancelación de reserva
↳ country String No Código del país de origen de la reserva (2 letter ISO 3166). Sólo vendrá informado en la reservas propias de Hotetec
↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳ amount Double Importe total de la reserva (#.##)
↳ bookingClient BookingClient Información del cliente que ha realizado la reserva, refiriéndose a la agencia (Ej: Logitravel), OTA (Ej: Booking.com), o el propio hotel
↳↳ clientCode String Código de cliente
↳↳ clientName String Nombre de cliente
↳↳ fiscalClientName String No Nombre fiscal referente al cliente de la reserva
↳↳ addressClient String No Dirección física de la empresa cliente
↳↳ postalClientCode String No Código postal de la empresa cliente
↳↳ countryClient String No País de la empresa cliente
↳↳ cifClient String No Número CIF de la empresa cliente
↳↳ emailClient String No Correo electrónico de la empresa cliente
↳↳ clientReference String No Referencia de la reserva del cliente (habitualmente su localizador)
↳ endCustomer EndCustomer Información del cliente final de la reserva
↳↳ name String Nombre del cliente final
↳↳ birthDate Date No Fecha de nacimiento (dd/MM/yyy)
↳↳ mail String No Email del cliente final
↳↳ phone String No Teléfono de contacto del cliente final
↳↳ nationality String No Nacionadlidad (2 letter ISO 3166)
↳↳ document Document No Información referente al documento de identificación de la persona de contacto
↳↳↳ typeDocument String No Tipo de documento (DNI, NIE, Passport o IdentityCard)
↳↳↳ numberDocument String No Número de documento
↳↳ labels Labels No Información referente a las etiquetas asignadas a la persona de contacto
↳↳↳ label[] String No Etiqueta asignada a la persona de contacto. Estas etiquetas se definen en el apartado CRM del backOffice de Hotetec.
↳ commision Commission No Información sobre las comisiones aplicadas en la reserva
↳↳ serviceCommission[] ServiceCommission No Información específica sobre un servicio reservado
↳↳↳ serviceId String Identificador que identifica la habitación reservada
↳↳↳ commissionAmount Double No Importe de la comisión aplicada
↳↳↳ commissionPercentage Double No Porcentage de la comisión aplicada
↳ hotelCode Integer Código de hotel
↳ currencyCode String Código de divisa (Códigos ISO 4217)
↳ bookingRoom[] BookingRoom Información de habitación de hotel reservada
↳↳ @id String Identificador de la habitación
↳↳ checkIn Date Fecha de entrada (dd/MM/yyy)
↳↳ checkOut Date Fecha de salida (dd/MM/yyy)
↳↳ status Enum Estado de la reserva (Confirmed, Cancelled, OnRequest)
↳↳ roomCode String Código de habitación
↳↳ mealPlanCode String Código de régimen alimenticio
↳↳ amount Double Importe de la habitación reservada (#.##)
↳↳ totalRoomAmount Double No Coste de la habitación: Precio Hab x Noches + Suplementos Obligatorios (#.##)
↳↳ commissionRoomAmount Double No Comisión de la habitación: Coste de la habitación * Porcentaje comisión (#.##)
↳↳ netRoomAmount Double No Coste neto de la habitación: Coste de la habitación - Comisión habitación (#.##)
↳↳ amountRoomToInvoice Double No Coste a facturar de la habitación: Amount - porcentaje de comisión (#.##)
↳↳ roomRateDay[] RoomRateDay Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia
↳↳↳ day Date Día de la estancia (dd/MM/yyy)
↳↳↳ rateCode String No Código de tarifa
↳↳↳ amount String Importe del día
↳↳ guest[] Guest Pasajero de la reserva
↳↳↳ @id Integer Identificador del pasajero
↳↳↳ name String Nombre del pasajero. Si el nombre no ha sido informado en la reserva, se substituirá por el nombre de la persona de contacto
↳↳↳ gender String No Género del pasajero ('Male': Hombre, 'Female': Mujer y 'Undefined': Indefinido).
↳↳↳ type Enum Tipo (Adult, Child, Baby)
↳↳↳ amount Double Importe correspondiente al pasajero
↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳ nationality[] String No Nacionalidad del huésped
↳↳↳ document[] Document No Información relativa a los documentos aportados por el huésped
↳↳↳↳ typeDocument String No Tipo del documento aportado ('D': Dni, 'E': Nie y 'P':Pasaporte)
↳↳↳↳ numberDocument String No Número del documento aportado
↳↳↳↳ expeditionDate Date No Fecha de expedición del documento (dd/MM/yyyy)
↳↳↳↳ expiryDocument Date No Fecha de caducidad del documento (dd/MM/yyyy)
↳↳↳ contact[] ContactAddress No Información relativa a los datos de contacto aportados por el huésped
↳↳↳↳ phone String No Teléfono aportado por el huésped
↳↳↳↳ email String No Email aportado por el huésped
↳↳↳↳ addressText String No Dirección aportada por el huésped
↳↳↳↳ postalCode String No Código postal
↳↳ cancellationData CancellationData No Gastos de cancelación de la habitación
↳↳↳ cancelPenaltyPolicy[] CancelPenaltyPolicy Gasto de cancelación aplicable a partir de una fecha de cancelación
↳↳↳↳ @id Integer Identificador del gasto de cancelación
↳↳↳↳ date Calendar Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación
↳↳↳↳ timeRelevant Boolean Elemento que indica si las horas en la fecha de cancelación son relevantes o se debe tomar sólo la fecha como dato significativo
↳↳↳↳ amount Double Importe que se aplicará al cancelar la habitación
↳↳↳↳ description String No Descripción de los gastos de cancelación
↳ bookingSupplement[] BookingSupplement No Información de suplemento reservado
↳↳ code String No Código del suplemento opcional reservado. Sólo se informará si se dispone del mismo, lo cual será siempre en las reservas internas, y de forma opcional en las externas.
↳↳ name String Nombre del suplemento opcional reservado
↳↳ typeSupplement String Indica el tipo de suplemento que tratamos (Mandatory / Optional / SalePolicy)
↳↳ internalName String No Nombre interno de la política comercial (suplementos del tipo SP) aplicada en la reserva.
↳↳ description String No Descripción detallada del suplemento opcional reservado
↳↳ checkIn Date No Fecha de inicio del suplemento (dd/MM/yyy)
↳↳ checkOut Date No Fecha de fin del suplemento (dd/MM/yyy)
↳↳ bookingRoomId String No Identificador de la habitación reservada, si el suplemento referencia a una habitación en concreto
↳↳ guestId[] Integer No Identificador del pasajero al que se hace referencia, si el suplemento referencia a un pasajero/os en concreto
↳↳ amount Double Importe total del suplemento opcional reservado
↳↳ commissionSupplementAmount Double No Comisión del suplemento (#.##)
↳↳ netSupplementAmount Double No Coste neto del suplemento: Valor total del Suplemento - Importe de Comisión del suplemento (#.##)
↳↳ promotionalCode[] String No Indica los códigos aplicados en el suplemento en cuestión
↳↳ mandatory Boolean Indica si el suplemento es obligatorio (true) o opcional (false)
↳↳ detail SupplementDetail No Indica los detalles del suplemento.
↳↳↳ shuttleDetail SupplementShuttleDetail No Indica los detalles de transporte (siempre y cuando el suplemento sea de tipo TRF)
↳↳↳↳ mailTransferProvider String No Indica el email del proveedor del transfer
↳↳↳↳ arrivalFlight ShuttleFlightDetail No Indica los detalles del vuelo de llegada
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳↳↳↳ departureFlight ShuttleFlightDetail No Indica los detalles del vuelo de salida
↳↳↳↳↳ airportCode String No Indica el código del aeropuerto
↳↳↳↳↳ airportName String No Indica el nombre del aeropuerto
↳↳↳↳↳ companyCode String No Indica el código de la compañía que emite el billete
↳↳↳↳↳ companyName String No Indica el nombre de la compañía que emite el billete
↳↳↳↳↳ flightNumber String No Indica el número de vuelo
↳↳↳↳↳ flightTime Calendar No Indica la fecha y hora del vuelo (dd/MM/yyyy HH:mm)
↳ bookingPayment BookingPayment No Información del pago de la reserva1
↳↳ modality Enum Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ type Enum Tipo de pago (BankTransfer / Card / VirtualCard / PrepaidCard / WarrantyCard / Cash / Cheque / Credit / Voucher / ExternalManaged / PinPad)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ status Enum Estado de pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ description String No Contiene el nombre comercial asignado a a la modalidad de pago
↳ paymentCardDetail PaymentCardDetail No Detalles de la tarjeta que ha realizado el pago (sólo viene informado si bookingPayment.type es Card, PrepaidCard, VirtualCard o WarrantyCard)
↳↳ holder String Nombre del titular de la tarjeta
↳↳ number String Número de la tarjeta
↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳ securityCode String No Código de seguridad (cvc2)
↳ paymentDetail[] PaymentDetail No Log con todos los pagos realizados en la reserva
↳↳ action String Tipo de operación (charge / refund)
↳↳ paymentStatus String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳ type String Código del tipo de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement)
↳↳ otaType Enum No Tipo de pago OTA (PA: Agency prepaid/PC: Customer prepaid/PD: Customer payment/PB: Voucher Payment/FC: Credit invoice/PM: Loyalty points + money PU: Loyalty Points/SC: By contract/SD: OTA Virtual card/NN: TPV pending/AW: Prepaid TPV with AMEX/VW: Prepaid TPV NO AMEX)
↳↳ date Calendar Fecha de la transacción
↳↳ amount Double Importe (#.##)
↳↳↳ cardDetail PaymentDetailCardDetail No Detalle pago con tarjeta de crédito
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ card CreditCard Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳↳ systemCode String Identificador del sistema de pago
↳↳↳↳ reference String Localizador de la reserva
↳↳↳↳ authorizedCode String Código de autorización
↳↳↳↳ errorDescription String No Descripción del error en el pago
↳↳↳ externalManagedDetail PaymentExternalManagedDetail No Datos detallados de un sistema de pago externo, por ejemplo Paypal
↳↳↳↳ externalSystemCode String Código del sistema externo
↳↳↳↳ externalReference String Referencia externa
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳ virtualCard VirtualCard No Información de la tarjeta virtual
↳↳↳↳ code String Código de tarjeta virtual
↳↳↳↳ accountCode String Código de la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ authorizedCode String Código de autorización del pago
↳↳↳↳ currencyCode String Código de divisa asociada al usuario
↳↳↳↳ availableAmount String Importe disponible en la cuenta que gestiona las tarjetas virtuales
↳↳↳↳ status String Estado de la tarjeta virtual (Active / Inactive / Blocked / Close)
↳↳↳↳ referencePayClient String eferencia del pago para el cliente
↳↳↳↳ description String No Descripción del elemento
↳↳↳↳ person BasePerson No Persona con los datos básicos
↳↳↳↳↳ firstName String No Nombre de la persona
↳↳↳↳↳ firstLastName String No Primer apellido de la persona
↳↳↳↳↳ secondLastName String No Segundo apellido de la persona
↳↳↳↳↳ birthDate Date No Fecha de nacimiento
↳↳↳↳ contact BaseContact No Contacto con los datos básicos
↳↳↳↳↳ phone String No Número de teléfono
↳↳↳↳↳ fax String No Número de Fax
↳↳↳↳↳ email String No Dirección de e-mail
↳↳↳↳↳ web Date No Dirección de la página web
↳↳↳↳ address Address No Información de Dirección
↳↳↳↳↳ countryCode String No Código del país
↳↳↳↳↳ countryName String No Nombre del país
↳↳↳↳↳ state String No Estado
↳↳↳↳↳ county Date No Condado
↳↳↳↳↳ province String No Provincia
↳↳↳↳↳ locationCode String No Código de la localidad, ciudad, zona rural
↳↳↳↳↳ locationName String No Nombre de la localidad, ciudad, zona rural
↳↳↳↳↳ postalCode Date No Código postal
↳↳↳↳ creditCard CreditCard No Información de la tarjeta de crédito
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ prepaidCardDetail PrepaidCardDetail No Detalle pago con tarjeta de prepago
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta prepago
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳↳↳ warrantyCardDetail WarrantyCardDetail No Detalle pago con tarjeta de garantía
↳↳↳↳ status String Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable)
↳↳↳↳ systemCode String No Identificador del sistema de pago
↳↳↳↳ card CreditCard Datos de la tarjeta de garantía
↳↳↳↳↳ cardTypeCode String No Código de la tarjeta de crédito
↳↳↳↳↳ cardTypeDescription String No Nombre del tipo de tarjeta de crédito
↳↳↳↳↳ holder String Nombre del titular de la tarjeta
↳↳↳↳↳ number String Número de la tarjeta
↳↳↳↳↳ hashedValue String No Número de la tarjeta
↳↳↳↳↳ seriesCode String No CVC
↳↳↳↳↳ expiryDate Date Fecha de caducidad (dd/MM/yyy)
↳ saleRules SaleRules No Elemento que contiene las reglas de ventas cargadas en Hotetec, y que se han aplicado en la reserva.
↳↳ bookingRoom[] Room No Elemento que contiene las reglas de venta aplicadas en una habitación en concreto.
↳↳↳ @id Integer Identificador de la habitación
↳↳↳ saleRulesByDay[] SaleRulesByDay Elemento que contiene un desglose de las reglas de venta aplicadas por día.
↳↳↳↳ day Date Día aplicado
↳↳↳↳ saleRule[] SaleRule No Elemento que contiene una regla de venta aplicada en el día concreto.
↳↳↳↳↳ name String Nombre de la regla de venta.
↳↳↳↳↳ amount String No Importe cargado en la regla de venta aplicada.
↳↳↳↳↳ percentage String No Percentaje cargado en la regla de venta aplicada.