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:
- Búsqueda de reservas por localizador
- Búsqueda de reservas por rango de fechas
- Notificación PUSH de reserva (creación, cancelación o modificación)
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
- Mensajería XML/JSON sobre HTTP. El proveedor tiene que enviar las peticiones por HTTP RAW POST (POST sin paso de parámetros).
- La codificación de los mensajes es UTF-8.
- Todos los mensajes soportan compresión gzip. Si el proveedor desea recibir las respuestas XML comprimidas, tiene que especificarlo en las cabeceras HTTP de su petició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.
- URL XML: https://xml.hotetec.com/unibox-api/supplier/xmlservice.srv
HotelConfiguration
Ejemplo petición HotelConfigurationRequest para recuperar la configuración del hotel 1234
<?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:
- Habitaciones del hotel así como sus ocupaciones permitidas
- Regímenes alimenticios
- Tarifas del hotel
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 | Sí | 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 | Sí | Identificador de la sesión que ha procesado la transacción |
hotelConfig[] | HotelConfig | No | Elemento que contiene la configuración del hotel |
hotelCode | Integer | Sí | Código de hotel |
name | String | Sí | Nombre de hotel |
currencyCode | String | Sí | Código de divisa (Códigos ISO 4217) |
roomConfig[] | RoomConfig | Sí | Configuración de la modalidad de hotel |
↳ roomCode | String | Sí | Código de modalidad |
↳ name | String | Sí | Nombre de modalidad |
↳ nestedInventoryRoomCode | String | No | Código de la modalidad sobre la cuál anida el inventario 1 |
↳ babiesCountInOccupancy | Boolean | Sí | Indica si los bebés ocupan plaza 2 |
↳ occupancy | Occupancy | Sí | Ocupación permitida en la modalidad |
↳↳ adults | Integer | Sí | Número de adultos de la ocupación |
↳↳ children | Integer | Sí | Número de niños de la ocupación |
mealPlanConfig[] | MealPlanConfig | Sí | Configuración de la regímenes alimenticios de hotel |
↳ mealPlanCode | String | Sí | Código de régimen alimentício |
↳ name | String | Sí | Nombre de régimen alimentício |
inventoryConfig[] | InventoryConfig | Sí | Configuración de los inventarios del hotel 3 |
↳ inventoryCode | Integer | Sí | Código de inventario |
↳ name | String | Sí | Nombre de inventario |
rateConfig[] | RateConfig | Sí | Configuración de las tarifas del hotel |
↳ rateCode | String | Sí | Código de tarifa |
↳ name | String | Sí | Nombre de tarifa |
↳ inventoryCode | Integer | Sí | Inventario asociado a la tarifa |
↳ managedByPush | Boolean | Sí | 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 | Sí | Nombre de la propiedad |
↳↳ value | String | No | Valor de la propiedad. Ej: Propiedad Mayores de, value 55 |
↳ cancelPolicyType | Enum | Sí | Políticas de cancelación de la tarifa (Free/NonRefundable/Variable) |
BookingRetrieval
Ejemplo BookingRetrievalRequest para recuperar una reserva en particular
<?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
<?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)
<?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 | Sí | 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 | Sí | 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 | Sí | Identificador de la sesión que ha procesado la transacción |
booking[] | Booking | No | Información de una reserva de hotel |
↳ reference | String | Sí | Localizador de la reserva |
↳ creationDate | DateTime | Sí | 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 | Sí | Fecha de entrada (dd/MM/yyy) |
↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳ numPax | Integer | Sí | Número de pasajeros total de la reserva |
↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳ amount | Double | Sí | Importe total de la reserva (#.##) |
↳ bookingClient | BookingClient | Sí | 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 | Sí | Código de cliente |
↳↳ clientName | String | Sí | 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 | Sí | Información del cliente final de la reserva |
↳↳ name | String | Sí | Nombre del cliente final |
↳↳ birthDate | Date | No | Fecha de nacimiento (dd/MM/yyy) |
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 | Sí | 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 | Sí | Código de hotel |
↳ currencyCode | String | Sí | Código de divisa (Códigos ISO 4217) |
↳ bookingRoom[] | BookingRoom | Sí | Información de habitación de hotel reservada |
↳↳ @id | String | Sí | Identificador de la habitación |
↳↳ checkIn | Date | Sí | Fecha de entrada (dd/MM/yyy) |
↳↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳↳ roomCode | String | Sí | Código de habitación |
↳↳ internalRoomName | String | No | Nombre interno de la habitación |
↳↳ mealPlanCode | String | Sí | Código de régimen alimenticio |
↳↳ amount | Double | Sí | 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 | Sí | Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia |
↳↳↳ day | Date | Sí | 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 | Sí | Importe del día |
↳↳ guest[] | Guest | Sí | Pasajero de la reserva |
↳↳↳ @id | Integer | Sí | Identificador del pasajero |
↳↳↳ name | String | Sí | 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 | Sí | Tipo (Adult, Child, Baby) |
↳↳↳ amount | Double | Sí | 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: |
↳↳↳ 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 |
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 | Sí | Número de pasajeros de la habitación |
↳↳↳ cancelPenaltyPolicy[] | CancelPenaltyPolicy | Sí | Gasto de cancelación aplicable a partir de una fecha de cancelación |
↳↳↳↳ @id | Integer | Sí | Identificador del gasto de cancelación |
↳↳↳↳ date | Calendar | Sí | Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación |
↳↳↳↳ timeRelevant | Boolean | Sí | 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 | Sí | 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 | Sí | Clave que referencia el valor. Ver apartado de ExtraCustomData de la documentación para ver los posibles valores. |
↳↳↳ value | String | Sí | 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 | Sí | Nombre del suplemento opcional reservado |
↳↳ typeSupplement | String | Sí | 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 | Sí | 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 | Sí | 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 | Sí | Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement) |
↳↳ internalModalityName | String | No | Descripcion interna de la modalidad de pago |
↳↳ type | Enum | Sí | 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 | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳ number | String | Sí | Número de la tarjeta tokenizado |
↳↳ expiryDate | Date | Sí | 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 | Sí | Tipo de operación (charge / refund) |
↳↳ paymentStatus | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳ type | String | Sí | 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 | Sí | Fecha de la transacción |
↳↳ amount | Double | Sí | Importe (#.##) |
↳↳↳ breakdown[] | Breakdown | No | Desglose de pago por habitación |
↳↳↳↳ bookingRoomId | Integer | Sí | Id de referencia a la habitacion |
↳↳↳↳ amount | Double | Sí | Importe del pago (#.##) |
↳↳↳ cardDetail | PaymentDetailCardDetail | No | Detalle pago con tarjeta de crédito |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳↳ systemCode | String | Sí | Identificador del sistema de pago |
↳↳↳↳ reference | String | Sí | Localizador de la reserva |
↳↳↳↳ authorizedCode | String | Sí | 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 | Sí | Código del sistema externo |
↳↳↳↳ externalReference | String | Sí | Referencia externa |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳ virtualCard | VirtualCard | No | Información de la tarjeta virtual |
↳↳↳↳ code | String | Sí | Código de tarjeta virtual |
↳↳↳↳ accountCode | String | Sí | Código de la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ authorizedCode | String | Sí | Código de autorización del pago |
↳↳↳↳ currencyCode | String | Sí | Código de divisa asociada al usuario |
↳↳↳↳ availableAmount | String | Sí | Importe disponible en la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ status | String | Sí | Estado de la tarjeta virtual (Active / Inactive / Blocked / Close) |
↳↳↳↳ referencePayClient | String | Sí | 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 |
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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ prepaidCardDetail | PrepaidCardDetail | No | Detalle pago con tarjeta de prepago |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ warrantyCardDetail | WarrantyCardDetail | No | Detalle pago con tarjeta de garantía |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | 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 | Sí | Clave que referencia el valor. Ver apartado de ExtraCustomData de la documentación para ver los posibles valores. |
↳↳↳ value | String | Sí | 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 | Sí | Identificador de la habitación |
↳↳↳ saleRulesByDay[] | SaleRulesByDay | Sí | Elemento que contiene un desglose de las reglas de venta aplicadas por día. |
↳↳↳↳ day | Date | Sí | Día aplicado |
↳↳↳↳ saleRule[] | SaleRule | No | Elemento que contiene una regla de venta aplicada en el día concreto. |
↳↳↳↳↳ name | String | Sí | 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 | Sí | Identificador de hotel |
reference | String | Sí | Localizador de la reserva |
action | Enum | Sí | 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 | Sí | Indica si la reserva contiene datos sobre una tarjeta de crédito (true/false) |
Ejemplo llamadas:
- Notificación creación nueva reserva EPL10032017140800-SALE: http://www.anyurl.com/hotelCode?1234&reference?EPL10032017140800-SALE&action?Creation&card?false
- Notificación cancelación reserva EPL10032017140800-SALE: http://www.anyurl.com/hotelCode?1234&reference?EPL10032017140800-SALE&action?Cancellation&card?false
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 | Sí | Credenciales de autenticación del usuario (Ver Autenticación) |
reference | String | Sí | Localizador de la reserva de Hotetec |
hotelCode | Integer | Sí | Código de hotel |
paymentDetail | BookingPaymentDetail | Sí | Elemento que contiene el pago a añadir |
↳ action | String | Sí | Indica si el pago es un cobro (Charge) o una devolución (Refund). |
↳ paymentStatus | String | Sí | Estado del pago (Tendría que ser siempre Ok, aunque acepta Error) |
↳ type | String | Sí | Indica el tipo de pago realizado (Inmediato (Inmediate), Transferencia bancaria (BankTransfer) o PayByLink (PayByLink)) |
↳ date | DateTime | Sí | Fecha del pago (dd/MM/yyyy HH:mm) |
↳ amount | Double | Sí | 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 | Sí | Identificador de la sesión que ha procesado la transacción |
booking | Booking | No | Información de una reserva de hotel |
↳ reference | String | Sí | Localizador de la reserva |
↳ creationDate | DateTime | Sí | 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 | Sí | Fecha de entrada (dd/MM/yyy) |
↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳ amount | Double | Sí | Importe total de la reserva (#.##) |
↳ bookingClient | BookingClient | Sí | 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 | Sí | Código de cliente |
↳↳ clientName | String | Sí | 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 | Sí | Información del cliente final de la reserva |
↳↳ name | String | Sí | Nombre del cliente final |
↳↳ birthDate | Date | No | Fecha de nacimiento (dd/MM/yyy) |
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 | Sí | 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 | Sí | Código de hotel |
↳ currencyCode | String | Sí | Código de divisa (Códigos ISO 4217) |
↳ bookingRoom[] | BookingRoom | Sí | Información de habitación de hotel reservada |
↳↳ @id | String | Sí | Identificador de la habitación |
↳↳ checkIn | Date | Sí | Fecha de entrada (dd/MM/yyy) |
↳↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳↳ roomCode | String | Sí | Código de habitación |
↳↳ mealPlanCode | String | Sí | Código de régimen alimenticio |
↳↳ amount | Double | Sí | 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 | Sí | Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia |
↳↳↳ day | Date | Sí | Día de la estancia (dd/MM/yyy) |
↳↳↳ rateCode | String | No | Código de tarifa |
↳↳↳ amount | String | Sí | Importe del día |
↳↳ guest[] | Guest | Sí | Pasajero de la reserva |
↳↳↳ @id | Integer | Sí | Identificador del pasajero |
↳↳↳ name | String | Sí | 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 | Sí | Tipo (Adult, Child, Baby) |
↳↳↳ amount | Double | Sí | 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 |
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 | Sí | Gasto de cancelación aplicable a partir de una fecha de cancelación |
↳↳↳↳ @id | Integer | Sí | Identificador del gasto de cancelación |
↳↳↳↳ date | Calendar | Sí | Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación |
↳↳↳↳ timeRelevant | Boolean | Sí | 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 | Sí | 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 | Sí | Nombre del suplemento opcional reservado |
↳↳ typeSupplement | String | Sí | 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 | Sí | 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 | Sí | 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 | Sí | Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement) |
↳↳ type | Enum | Sí | 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 | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳ number | String | Sí | Número de la tarjeta |
↳↳ expiryDate | Date | Sí | 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 | Sí | Tipo de operación (charge / refund) |
↳↳ paymentStatus | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳ type | String | Sí | 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 | Sí | Fecha de la transacción |
↳↳ amount | Double | Sí | Importe (#.##) |
↳↳↳ cardDetail | PaymentDetailCardDetail | No | Detalle pago con tarjeta de crédito |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳↳ systemCode | String | Sí | Identificador del sistema de pago |
↳↳↳↳ reference | String | Sí | Localizador de la reserva |
↳↳↳↳ authorizedCode | String | Sí | 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 | Sí | Código del sistema externo |
↳↳↳↳ externalReference | String | Sí | Referencia externa |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳ virtualCard | VirtualCard | No | Información de la tarjeta virtual |
↳↳↳↳ code | String | Sí | Código de tarjeta virtual |
↳↳↳↳ accountCode | String | Sí | Código de la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ authorizedCode | String | Sí | Código de autorización del pago |
↳↳↳↳ currencyCode | String | Sí | Código de divisa asociada al usuario |
↳↳↳↳ availableAmount | String | Sí | Importe disponible en la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ status | String | Sí | Estado de la tarjeta virtual (Active / Inactive / Blocked / Close) |
↳↳↳↳ referencePayClient | String | Sí | 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 |
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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ prepaidCardDetail | PrepaidCardDetail | No | Detalle pago con tarjeta de prepago |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ warrantyCardDetail | WarrantyCardDetail | No | Detalle pago con tarjeta de garantía |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | 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 | Sí | Identificador de la habitación |
↳↳↳ saleRulesByDay[] | SaleRulesByDay | Sí | Elemento que contiene un desglose de las reglas de venta aplicadas por día. |
↳↳↳↳ day | Date | Sí | Día aplicado |
↳↳↳↳ saleRule[] | SaleRule | No | Elemento que contiene una regla de venta aplicada en el día concreto. |
↳↳↳↳↳ name | String | Sí | 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 | Sí | Credenciales de autenticación del usuario (Ver Autenticación) |
reference | String | Sí | Localizador de la reserva de Hotetec |
hotelCode | Integer | Sí | Código de hotel |
BookingCancelResponse
Mensaje respuesta de cancelación de reserva
Elemento | Tipo | Obl? | Descripción |
---|---|---|---|
sessionId | String | Sí | Identificador de la sesión que ha procesado la transacción |
booking | Booking | No | Información de una reserva de hotel |
↳ reference | String | Sí | Localizador de la reserva |
↳ creationDate | DateTime | Sí | 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 | Sí | Fecha de entrada (dd/MM/yyy) |
↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳ amount | Double | Sí | Importe total de la reserva (#.##) |
↳ bookingClient | BookingClient | Sí | 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 | Sí | Código de cliente |
↳↳ clientName | String | Sí | 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 | Sí | Información del cliente final de la reserva |
↳↳ name | String | Sí | Nombre del cliente final |
↳↳ birthDate | Date | No | Fecha de nacimiento (dd/MM/yyy) |
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 | Sí | 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 | Sí | Código de hotel |
↳ currencyCode | String | Sí | Código de divisa (Códigos ISO 4217) |
↳ bookingRoom[] | BookingRoom | Sí | Información de habitación de hotel reservada |
↳↳ @id | String | Sí | Identificador de la habitación |
↳↳ checkIn | Date | Sí | Fecha de entrada (dd/MM/yyy) |
↳↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳↳ roomCode | String | Sí | Código de habitación |
↳↳ mealPlanCode | String | Sí | Código de régimen alimenticio |
↳↳ amount | Double | Sí | 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 | Sí | Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia |
↳↳↳ day | Date | Sí | Día de la estancia (dd/MM/yyy) |
↳↳↳ rateCode | String | No | Código de tarifa |
↳↳↳ amount | String | Sí | Importe del día |
↳↳ guest[] | Guest | Sí | Pasajero de la reserva |
↳↳↳ @id | Integer | Sí | Identificador del pasajero |
↳↳↳ name | String | Sí | 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 | Sí | Tipo (Adult, Child, Baby) |
↳↳↳ amount | Double | Sí | 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 |
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 | Sí | Gasto de cancelación aplicable a partir de una fecha de cancelación |
↳↳↳↳ @id | Integer | Sí | Identificador del gasto de cancelación |
↳↳↳↳ date | Calendar | Sí | Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación |
↳↳↳↳ timeRelevant | Boolean | Sí | 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 | Sí | 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 | Sí | Nombre del suplemento opcional reservado |
↳↳ typeSupplement | String | Sí | 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 | Sí | 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 | Sí | 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 | Sí | Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement) |
↳↳ type | Enum | Sí | 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 | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳ number | String | Sí | Número de la tarjeta |
↳↳ expiryDate | Date | Sí | 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 | Sí | Tipo de operación (charge / refund) |
↳↳ paymentStatus | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳ type | String | Sí | 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 | Sí | Fecha de la transacción |
↳↳ amount | Double | Sí | Importe (#.##) |
↳↳↳ cardDetail | PaymentDetailCardDetail | No | Detalle pago con tarjeta de crédito |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳↳ systemCode | String | Sí | Identificador del sistema de pago |
↳↳↳↳ reference | String | Sí | Localizador de la reserva |
↳↳↳↳ authorizedCode | String | Sí | 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 | Sí | Código del sistema externo |
↳↳↳↳ externalReference | String | Sí | Referencia externa |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳ virtualCard | VirtualCard | No | Información de la tarjeta virtual |
↳↳↳↳ code | String | Sí | Código de tarjeta virtual |
↳↳↳↳ accountCode | String | Sí | Código de la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ authorizedCode | String | Sí | Código de autorización del pago |
↳↳↳↳ currencyCode | String | Sí | Código de divisa asociada al usuario |
↳↳↳↳ availableAmount | String | Sí | Importe disponible en la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ status | String | Sí | Estado de la tarjeta virtual (Active / Inactive / Blocked / Close) |
↳↳↳↳ referencePayClient | String | Sí | 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 |
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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ prepaidCardDetail | PrepaidCardDetail | No | Detalle pago con tarjeta de prepago |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ warrantyCardDetail | WarrantyCardDetail | No | Detalle pago con tarjeta de garantía |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | 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 | Sí | Identificador de la habitación |
↳↳↳ saleRulesByDay[] | SaleRulesByDay | Sí | Elemento que contiene un desglose de las reglas de venta aplicadas por día. |
↳↳↳↳ day | Date | Sí | Día aplicado |
↳↳↳↳ saleRule[] | SaleRule | No | Elemento que contiene una regla de venta aplicada en el día concreto. |
↳↳↳↳↳ name | String | Sí | 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 | Sí | Credenciales de autenticación del usuario (Ver Autenticación) |
reference | String | Sí | Localizador de la reserva de Hotetec |
hotelCode | Integer | Sí | 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 | Sí | 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 | Sí | Contiene el código de error de Hotetec. |
↳ type | String | Sí | Indica si es un error (E) o un warning (W). |
↳ text | String | Sí | 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 | Sí | Credenciales de autenticación del usuario (Ver Autenticación) |
reference | String | Sí | Localizador de la reserva de Hotetec |
hotelCode | Integer | Sí | Código de hotel |
endCustomer | EndCustomer | Sí | Información del cliente final de la reserva |
↳ name | String | Sí | Nombre del cliente final |
↳ firstName | String | Sí | Primer apellido del cliente final |
↳ lastName | String | Sí | Segundo apellido del cliente final |
↳ birthDate | Date | No | Fecha de nacimiento (dd/MM/yyy) |
String | Sí | 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 | Sí | Pasajero de la reserva |
↳ @id | Integer | Sí | Identificador del pasajero |
↳ name | String | Sí | 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 | Sí | Nombre del pasajero |
↳ lastName | String | Sí | Apellido del pasajero |
BookingResaleResponse
Mensaje respuesta de reventa de reserva
Elemento | Tipo | Obl? | Descripción |
---|---|---|---|
sessionId | String | Sí | Identificador de la sesión que ha procesado la transacción |
booking | Booking | No | Información de una reserva de hotel |
↳ reference | String | Sí | Localizador de la reserva |
↳ creationDate | DateTime | Sí | 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 | Sí | Fecha de entrada (dd/MM/yyy) |
↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳ amount | Double | Sí | Importe total de la reserva (#.##) |
↳ bookingClient | BookingClient | Sí | 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 | Sí | Código de cliente |
↳↳ clientName | String | Sí | 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 | Sí | Información del cliente final de la reserva |
↳↳ name | String | Sí | Nombre del cliente final |
↳↳ birthDate | Date | No | Fecha de nacimiento (dd/MM/yyy) |
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 | Sí | 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 | Sí | Código de hotel |
↳ currencyCode | String | Sí | Código de divisa (Códigos ISO 4217) |
↳ bookingRoom[] | BookingRoom | Sí | Información de habitación de hotel reservada |
↳↳ @id | String | Sí | Identificador de la habitación |
↳↳ checkIn | Date | Sí | Fecha de entrada (dd/MM/yyy) |
↳↳ checkOut | Date | Sí | Fecha de salida (dd/MM/yyy) |
↳↳ status | Enum | Sí | Estado de la reserva (Confirmed, Cancelled, OnRequest) |
↳↳ roomCode | String | Sí | Código de habitación |
↳↳ mealPlanCode | String | Sí | Código de régimen alimenticio |
↳↳ amount | Double | Sí | 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 | Sí | Desglose de reserva por día, informando la tarifa y precio correspondiente a cada día de la estancia |
↳↳↳ day | Date | Sí | Día de la estancia (dd/MM/yyy) |
↳↳↳ rateCode | String | No | Código de tarifa |
↳↳↳ amount | String | Sí | Importe del día |
↳↳ guest[] | Guest | Sí | Pasajero de la reserva |
↳↳↳ @id | Integer | Sí | Identificador del pasajero |
↳↳↳ name | String | Sí | 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 | Sí | Tipo (Adult, Child, Baby) |
↳↳↳ amount | Double | Sí | 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 |
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 | Sí | Gasto de cancelación aplicable a partir de una fecha de cancelación |
↳↳↳↳ @id | Integer | Sí | Identificador del gasto de cancelación |
↳↳↳↳ date | Calendar | Sí | Elemento que contiene la fecha a partir de la cual se aplican los gastos de cancelación |
↳↳↳↳ timeRelevant | Boolean | Sí | 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 | Sí | 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 | Sí | Nombre del suplemento opcional reservado |
↳↳ typeSupplement | String | Sí | 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 | Sí | 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 | Sí | 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 | Sí | Modalidad de pago (Establishment / Inmediate / Deferred / CancelPenalty / Instalment / ExternManagement) |
↳↳ type | Enum | Sí | 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 | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳ number | String | Sí | Número de la tarjeta |
↳↳ expiryDate | Date | Sí | 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 | Sí | Tipo de operación (charge / refund) |
↳↳ paymentStatus | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳ type | String | Sí | 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 | Sí | Fecha de la transacción |
↳↳ amount | Double | Sí | Importe (#.##) |
↳↳↳ cardDetail | PaymentDetailCardDetail | No | Detalle pago con tarjeta de crédito |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳↳ systemCode | String | Sí | Identificador del sistema de pago |
↳↳↳↳ reference | String | Sí | Localizador de la reserva |
↳↳↳↳ authorizedCode | String | Sí | 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 | Sí | Código del sistema externo |
↳↳↳↳ externalReference | String | Sí | Referencia externa |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳ virtualCard | VirtualCard | No | Información de la tarjeta virtual |
↳↳↳↳ code | String | Sí | Código de tarjeta virtual |
↳↳↳↳ accountCode | String | Sí | Código de la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ authorizedCode | String | Sí | Código de autorización del pago |
↳↳↳↳ currencyCode | String | Sí | Código de divisa asociada al usuario |
↳↳↳↳ availableAmount | String | Sí | Importe disponible en la cuenta que gestiona las tarjetas virtuales |
↳↳↳↳ status | String | Sí | Estado de la tarjeta virtual (Active / Inactive / Blocked / Close) |
↳↳↳↳ referencePayClient | String | Sí | 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 |
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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ prepaidCardDetail | PrepaidCardDetail | No | Detalle pago con tarjeta de prepago |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | Fecha de caducidad (dd/MM/yyy) |
↳↳↳ warrantyCardDetail | WarrantyCardDetail | No | Detalle pago con tarjeta de garantía |
↳↳↳↳ status | String | Sí | Estado del pago (Pending / Ok / Error / Cancelled / Inapplicable) |
↳↳↳↳ systemCode | String | No | Identificador del sistema de pago |
↳↳↳↳ card | CreditCard | Sí | 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 | Sí | Nombre del titular de la tarjeta |
↳↳↳↳↳ number | String | Sí | Número de la tarjeta |
↳↳↳↳↳ hashedValue | String | No | Número de la tarjeta |
↳↳↳↳↳ seriesCode | String | No | CVC |
↳↳↳↳↳ expiryDate | Date | Sí | 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 | Sí | Identificador de la habitación |
↳↳↳ saleRulesByDay[] | SaleRulesByDay | Sí | Elemento que contiene un desglose de las reglas de venta aplicadas por día. |
↳↳↳↳ day | Date | Sí | Día aplicado |
↳↳↳↳ saleRule[] | SaleRule | No | Elemento que contiene una regla de venta aplicada en el día concreto. |
↳↳↳↳↳ name | String | Sí | 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. |