Este mensaje nos devuelve la disponibilidad para un establecimiento o varios en unas fechas concretas filtradas en la consulta realizada.
Las tarifas que se devuelven siempre incluyen impuestos excepto las tasas turísticas que deberán sumarse a parte.
Endpoint: https://hotel.new.hotetec.com/webservice/integrations/pull/hotelAvailability
Mensaje de petición hotelAvailability
El mensaje está compuesto por los siguientes elementos:
Elemento | Obligatorio | Valores / Formato | Descripción |
sessionId | S | Alfanumérico | ID de la sesión generado |
languageCode | N | DE, EN, ES, FR, IT, NL, PT | Idioma en el que queremos recibir la respuesta. Si no se indica, se devolverá el valor que Hotetec tenga por defecto para el usuario
Se utilizan los códigos ISO 639-1. Actualmente sólo se aceptan los indicados en valores. |
currency | N | EUR, USD, GBP, EGP, MXN, CHF, CUP | Divisa en la que queremos recibir los precios de la solicitud. Si no se indica, se devolverá el valor que Hotetec tenga por defecto para el usuario.
Se utilizan los códigos ISO 639-1. Actualmente sólo se aceptan las indicadas en valores. |
customerIsLogged | N | True / False | Sirve para indicar si queremos obtener precios con descuento por registro |
vendorCode | N | Alfanumérico | Código de proveedor/empresa de un conjunto de hoteles/establecimientos |
hotelCode | N | Alfanumérico | Código individual de un hotel/establecimiento |
dateFrom | S | Fecha + Hora | Fecha de entrada. Ejemplo: "2023-01-15T00:00:00.000Z” |
dateTo | S | Fecha + Hora | Fecha de salida. Ejemplo: "2023-01-15T00:00:00.000Z” |
| |||
distribution | S | "distribution": [{ "id": 1, "person": [ { "age": 30 }, { "age": 30 } ] | Añadiremos la configuración de las distintas habitaciones y ocupaciones. |
id | S | IDs de habitación, por cada habitación que añadamos debemos indicar un nuevo ID | |
age | S | Definiremos la edad de cada ocupante para el que queremos consultar disponibilidad. A los adultos se les puede indicar 30 por defecto. Para los niños es obligatorio indicar la edad real para poder tarificar correctamente. | |
| |||
hotelName | N | Alfanumérico | Nombre del establecimiento. Se puede indicar una parte del nombre y se hará una búsqueda de aquellos establecimientos que contengan esos nombres. |
hotelFacilityCode | N | Alfanumérico | Tipo de facilidades/instalaciones del establecimiento. Ejemplo: PISCINA |
categoryCode | N |
| Categoría del establecimiento |
chainCode | N | Alfanumérico | Código de cadena |
establishmentTypeCode | N | Alfanumérico | Código de tipo de establecimiento. |
locationCode | N | Alfanumérico | Código de la zona geográfica donde se encuentra el establecimiento |
mealPlanCode | N | Alfanumérico | Código del régimen que queremos que salga seleccionado por defecto. |
roomCode | N |
| Código interno de la habitación. Uso interno. |
rateCode | N | Alfanumérico | Código de tarifa |
rateName | N | Alfanumérico | Nombre de la tarifa. Se puede indicar una parte del nombre y se hará una búsqueda de aquellos establecimientos que contengan esos nombres. |
rateProperty | N | Alfanumérico | Filtro de propiedades de tarifa para pedir por un tipo de tarifa concreto. Los parámetros posibles son: NRE: Non Refundable MED: Older than UNE: Unemployed OFF: Offline ON: Online MAR: Market RES: Resident OPA: Opaque REG: Sign in HGL: Highlighted Rate II: Insurance Included FUN: Public worker EXC: Excluded Country INC: Included Country TAX: Tax Included AGT: Agent CC: Call Center |
promotionalCode | N | Alfanumérico | Se utiliza para lanzar la petición con un código promocional asociado |
geolocation | N | Numérico | Búsqueda por localización GPS |
radius | N | Numérico | Radio de búsqueda (elemento obligatorio si se informa del elemento anterior - geolocation). Se indicará en metros. |
paymentFilter | N | Alfanumérico | Filtro por tipo de pago |
allowOnRequest | N |
true false | Se utiliza para indicar si queremos que en la respuesta se incluyan las opciones que están bajo disponibilidad. Valores: true: Si false: No |
Ejemplo de mensaje con todos los elementos cumplimentados (JSON):
{
"sessionId": " HPH#20077#682164202862402",
"languageCode": "ES",
"currency": "EUR",
"customerIsLogged": "true"
"vendorCode": "DEMOHTT",
"hotelCode": "30621",
"dateFrom": "2023-01-15T00:00:00.000Z",
"dateTo": "2023-01-16T00:00:00.000Z",
"distribution": [{
"id": 1,
"person": [
{ "age": 30 },
{ "age": 30 }
]
}],
"hotelName": “Boutique”,
"hotelFacilityCode": [“PISCINA”],
"categoryCode": [“4*”],
"chainCode": [“DEMOHTT”],
"establishmentTypeCode": ["HOTL"],
"locationCode": "ESBAL03",
"mealPlanCode": ["AI"],
"roomCode": ["DBL#SEA"],
"rateCode": "30006",
"rateName": "WEB",
"rateProperty": {"code": "RES", "value": "BALEARES"},
"promotionalCode": "BLACKFRIDAY",
"geolocation": {"latitude": 39.7644, "longitude": 3.1615},
"radius": “500”,
"paymentFilter": {"paymentType": "Card", "paymentOrderType": "Inmediate"},
"allowOnRequest": “true”
}
Mensaje de respuesta hotelAvailability
El mensaje está compuesto por los siguientes elementos:
Elemento | Descripción |
sessionId | ID de la sesión generado |
notification | Tipo de notificación. Error: importante revisarlo para corregir la incidencia que esté indicando el sistema Aviso Información |
notificationDetail | Descripción de la notificación indicada. |
currencyCode | Divisa en la que están los precios de la respuesta |
dateFrom | Fecha de entrada. Se utiliza fecha juliana. |
dateTo | Fecha de salida. Se utiliza fecha juliana. |
| |
distribution | Configuración de las distintas habitaciones y personas |
id | Habrá un ID por cada tipo de ocupación consultada |
age | Edad indicada en la consulta |
| |
hotelOption | Desglose de información del hotel y de las habitaciones disponibles |
| |
hotel | |
code | Código individual de un hotel/establecimiento |
name | Nombre completo del establecimiento |
chain | Cadena a la que pertenece el establecimiento |
| |
establishmentType | |
code | Código del tipo de establecimiento. (Ejemplo: HOTL) |
name | Descripción del tipo de establecimiento (Ejemplo: Hotel) |
| |
category | |
code | Código de la categoría (Ejemplo: 5*) |
name | Descripción de la categoría. (Ejemplo: Cinco estrellas) |
| |
address – country | |
code | Código del país (Ejemplo: ES) |
name | Descripción del país (Ejemplo: España) |
state | Tipificación adicional del árbol de destino |
county | Población del establecimiento |
province | Tipificación adicional del árbol de destino |
| |
address – location | |
code | Código de la zona geográfica. |
name | Descripción de la zona geográfica |
postalCode | Código postal del establecimiento |
adressText | Dirección del establecimiento |
| |
address - gps | |
latitude | Latitud |
longitude | Longitud |
| |
contact | Datos de contacto del establecimiento |
| |
roomOption | Listado de habitaciones disponibles |
distributionId | Hace referencia a que distribución estamos obteniendo la disponibilidad |
| |
room | |
code | Código interno de la habitación. Uso interno. |
name | Nombre de la habitación |
| |
rateOption | Desglose de la tarifa |
| |
rate | |
code | Código de la tarifa |
name | Nombre de la tarifa |
description | Descripción de la tarifa |
conditions | Condiciones de la tarifa |
highlight | Destacado sobre la tarifa |
rateProperty | Propiedades de la tarifa. Los parámetros posibles son: NRE: Non Refundable MED: Older than UNE: Unemployed OFF: Offline ON: Online MAR: Market RES: Resident OPA: Opaque REG: Sign in HGL: Highlighted Rate II: Insurance Included FUN: Public worker EXC: Excluded Country INC: Included Country TAX: Tax Included AGT: Agent CC: Call Center |
| |
pricing | Desglose del precio |
priceType | Indica si los precios son PVP o netos |
| |
cancellationOption | |
fromDate | Desde que fecha hay gastos de cancelación. Se utiliza fecha juliana |
daysTo | Días que faltan para entrar en gastos. Se utiliza fecha juliana |
percentage | Porcentaje de gastos de cancelación |
amount | Importe de los gastos de cancelación |
cancelPenaltyMode | Tipos de gastos de cancelación |
commissionAmount | Importe de la comisión sobre los gastos de cancelación |
commissionable | Si son o no comisionables los gastos de cancelación. Valores: true/false |
amount | Importe sobre el que se calcula la comisión |
| |
taxDetail | |
code | Código del impuesto |
name | Nombre del impuesto |
percentage | Porcentaje del impuesto |
taxAmout | Importe del impuesto |
baseAmount | Importe sobre el que se calcula el impuesto |
| |
cityTaxDetail | |
code | Código de la tasa turística |
name | Nombre de la tasa turística |
cityTaxAmount | Importe total de la tasa turística sin IVA |
taxDetail | Detalles de los impuestos de la tasa turística indicada |
code | Código del impuesto |
name | Nombre del impuesto |
percentage | Porcentaje del impuesto |
taxAmout | Importe del impuesto |
baseAmount | Importe sobre el que se calcula el impuesto |
| |
priceDetail: aquí se incluye el desglose de los diferentes suplementos, descuentos, comisiones, políticas comerciales, etc. | |
code | ID interno del tipo de desglose |
name | Nombre del desglose |
description | Descripción del desglose |
type | Tipo de desglose. Valores: Gift: regalo Breakdown: desglose de comisión Supplement: suplemento/descuento |
group | Grupo general al que pertenece el desglose. Valores: Sale Policy: política comercial Comission: comisión Supplement: suplemento |
optional | Si es opcional o no |
order | En qué orden se aplica este desglose de precio |
amount | Importe del desglose de precio |
appliedByProperty | Si el desglose se debe aplicar en función de una propiedad de tarifa |
| |
paymentOption | |
paymentKey | ID de la forma de pago |
name | Nombre de la forma de pago |
description | Descripción de la forma de pago |
conditions | Condiciones de la forma de pago |
paymentDate | Fecha de pago |
amountToPay | Cantidad o porcentaje a pagar |
| |
status | Estado de la disponibilidad. Valores: Available: disponible On request: bajo disponibilidad |
unitsLeft | Número de unidades disponibles del tipo de habitación mostrado |
| |
mealPlan | |
code | Código del régimen |
name | Nombre del régimen |
description | Descripción del régimen |
conditions | Condiciones del régimen |
| |
occupancyCode | Código de la ocupación de la habitación mostrada |
vendorCode | Código de proveedor/empresa de un conjunto de hoteles/establecimientos |
Ejemplo de mensaje (JSON):
{
"sessionId": "HPH#20077#652627707000703",
"notification": null,
"notificationDetail": null,
"currencyCode": "EUR",
"dateFrom": 1673740800000,
"dateTo": 1673827200000,
"distribution": [
{
"id": 1,
"person": [
{
"id": null,
"type": null,
"age": 30
},
{
"id": null,
"type": null,
"age": 30
}
]
}
],
"hotelOption": [
{
"hotel": {
"code": "30621",
"name": "Boutique Hotel Elena",
"chain": null,
"establishmentType": {
"code": "HOTL",
"name": "Hotel"
},
"category": {
"code": "4*",
"name": "Cuatro estrellas"
},
"address": {
"country": {
"code": "ES",
"name": "ESPAÑA"
},
"state": null,
"county": "Adeje",
"province": null,
"location": {
"code": "ES-48245",
"name": "Adeje"
},
"postalCode": "38670",
"addressText": "Av. Adeje",
"gps": {
"latitude": 28.15039046107699,
"longitude": -16.44536361524011
}
},
"contact": null
},
"roomOption": [
{
"distributionId": 1,
"room": {
"code": "DBL#STD-2",
"name": "Doble estándar"
},
"rateOption": [
{
"rate": {
"code": "30200",
"name": "WEB NO REEMBOLSABLE",
"description": null,
"conditions": null,
"highlight": null
},
"rateProperty": null,
"pricing": {
"priceType": "PVP",
"cancellationOption": [
{
"fromDate": 1668639600000,
"daysTo": null,
"percentage": null,
"amount": 140.25
}
],
"cancelPenaltyMode": "NonRefundable",
"commissionAmount": 0.0,
"commissionable": true,
"amount": 140.25,
"taxDetail":
{
"code": "1234",
"name": "IVA Reducido",
"percentage": 10.0,
"taxAmount": 144.0,
"baseAmount": 1300.0
},
"cityTaxDetail":
{
"code": "1234",
"name": "Baleares",
"cityTaxAmount": 25.0,
"taxDetail":
{
"code": "1234",
"name": "IVA Reducido",
"percentage": 10.0,
"taxAmount": 2.5,
"baseAmount": 22.5
}
}
}
"priceDetail": [
{
"code": "[EtT]SalePolicy(PpT)DEMOHTT@70090",
"name": "Spa incluido",
"description": null,
"type": "Gift",
"group": "SalePolicy",
"optional": false,
"order": 1,
"amount": null,
"appliedByProperty": null
},
{
"code": "[EtT]Commission(PpT)DEMOHTT@30200@HPH@ClientCode@PVP",
"name": "WEB NO REEMBOLSABLE - HPH - ClientCode - DEMOHTT",
"description": null,
"type": "Breakdown",
"group": "Commission",
"optional": false,
"order": 2,
"amount": 0.0,
"appliedByProperty": null
}
]
},
"paymentOption": [
{
"paymentKey": "Hotel#DEMOHTT#10057",
"name": "Pago en el hotel",
"description": "Pago directo en el hotel",
"conditions": "<p>Se pagará en efectivo o tarjeta en el momento de hacer el <strong>check-out</strong>.</p>",
"paymentDate": null,
"amountToPay": null
},
{
" paymentKey ": "Hotel#DEMOHTT#10076",
"name": "Tarjeta de garantía",
"description": "Pago en el hotel - Se solicita tarjeta para garantizar su reserva.",
"conditions": "<p>En caso de que la tarjeta no sea válida se cancelará la reserva automáticamente.</p>",
"paymentDate": null,
"amountToPay": null
}
],
"status": "Available",
"unitsLeft": 8
}
],
"mealPlan": {
"code": "HB",
"name": "Media pensión",
"description": "Bebidas no incluidas",
"conditions": "<p>Bebidas no incluidas</p>"
},
"occupancyCode": "O@2-0-0",
"vendorCode": "DEMOHTT"
}