Este mensaje nos permite iniciar el proceso de reserva antes de ser totalmente confirmada.
Se trata del primer paso de realización de la reserva, en la que lo que haremos será completar el bloqueo o bloqueos realizados hasta ahora.
Para ello será necesario pasar el token del último bloqueo realizado, así como los datos de la persona de contacto.
Endpoint: https://hotel.new.hotetec.com/webservice/integrations/pull/completeBooking
Mensaje de petición completeBooking
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 | S | DE, EN, ES, FR, IT, NL, PT | Idioma en el que queremos recibir la respuesta.
Se utilizan los códigos ISO 639-1. Actualmente sólo se aceptan los indicados en valores. |
currency | S | EUR, USD, GBP, EGP, MXN, CHF, CUP | Divisa en la que queremos recibir los precios de la solicitud.
Se utilizan los códigos ISO 639-1. Actualmente sólo se aceptan las indicadas en valores. |
bookingToken | S | Alfanumérico | Valor del token generado en el último bloqueo |
| |||
contact | |||
firstName | S | Alfanumérico | Nombre de la persona de contacto |
lastName | S | Alfanumérico | Apellido de la persona de contacto |
S | Alfanumérico | Correo electrónico de la persona de contacto | |
phoneNumber | N | Numérico | Teléfono de la persona de contacto |
country | N | Alfanumérico | País de la persona de contacto |
postalCode | N | Numérico | Código postal de la persona de contacto |
guest | No es obligatorio informar este nodo. Utilizar si se desea informar de los nombres de todos los ocupantes de la reserva | ||
id | S (1...N) | Numérico | Identificador del pasajero. Se deben indicar identificadores correlativos. |
firstName | S (1...N) | Alfanumérico | Nombre del pasajero |
lastName | S (1...N) | Alfanumérico | Apellido del pasajero |
observations | No es obligatorio informar este nodo. Utilizar si se desea informar comentarios en la reserva | ||
id | S (1...N) | Numérico | Identificador del comentario. Se deben indicar identificadores correlativos. |
text | S (1...N) | Alfanumérico | Comentario de la reserva. |
arrivalTime | No es obligatorio informar este nodo. Utilizar si se desea informar de la hora de llegada en la reserva | ||
id | S | Numérico | Identificador de la hora de llegada |
hour | S | Numérico | Hora |
minutes | S | Numérico | Minutos |
Ejemplo de mensaje con todos los elementos cumplimentados (JSON):
{
"sessionId": " TES#20077#682164202862402",
"languageCode": "ES",
"currency": "EUR",
"bookingToken": "sLnkTWgb1S9UJFFMLJ27cryUl6SUhRzWVutyheCsxi4CJhHHDvJvKdSzMVxMkMaje6zkYM9Cpny8XKulEY9W8J8M",
"contact": {
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"phoneNumber": "+34 666666666",
"country": "ES",
"postalCode": "07001",
}
"guest": {
{
"id": 1,
"fistName": "John",
"lastName": "Smith"
}
{
"id": 2,
"fistName": "Joanna",
"lastName": "Smith"
}
}
"observations": {
{
"id": 1,
"text": "Nice room"
}
{
"id": 2,
"2": "We are arriving late"
}
}
"arrivalTime": {
{
"id": 1,
"hour": 22,
"minutes": 45
}
}
}
Mensaje de respuesta completeBooking
El mensaje está compuesto por los siguientes elementos:
Elemento | Descripción |
bookingToken | Identificador único del bloqueo. |
booking | |
reference | Localizador provisional de la reserva. |
dateCreation | Fecha de creación. Se utiliza fecha juliana. |
| |
hotel | |
code | Código del 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 |
| |
reservationStatus | Estado de la reserva. |
operationalStatus | |
process | Informa sobre el estado en el proceso de reserva |
rate | Informa si la tarifa está disponible |
quota | Informa si el inventario está disponible. |
room | |
id | Identificador de la habitación. |
room | |
code | Código de la habitación. |
name | Nombre de la habitación |
| |
rate | |
code | Código de la tarifa |
name | Nombre de la tarifa |
| |
mealPlan | |
code | Código del régimen |
name | Nombre del régimen |
distribution | |
id | Identificador de la distribución de la habitación |
person | |
id | Identificador del pasajero |
type | Tipo de pax. Valores: Adult, Child, Baby |
age | Edad del pasajero indicada en la Disponibilidad. |
checkIn | Fecha de inicio de la reserva |
checkOut | Fecha fin de la reserva |
nights | Número de noches de estancia |
supplements | |
type | Código interno del tipo del suplemento. |
code | Código del suplemento en el sistema |
name | Nombre del suplemento aplicado en la habitación. |
dateFrom | Fecha de inicio de aplicación del suplemento. Se indica fecha juliana. |
dateTo | Fecha de fin de aplicación del suplemento. Se indica fecha juliana. |
amount | Importe del suplemento (en positivo) o descuento (en negativo). |
paymentOption | |
code | Código del importe a pagar. |
amountToPay | Importe a pagar. |
priceDetail: aquí se incluye el desglose de los diferentes suplementos, descuentos, comisiones, políticas comerciales, etc. | |
code | Código interno del tipo de desglose |
name | Nombre 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 | Indica si es opcional o no |
order | Indica en qué orden se aplica el desglose del precio |
amount | Importe del desglose de precio |
cancelPenaltyMode | Tipo de penalización por cancelación. |
| |
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 |
| |
status | Estado de la reserva. |
baseAmount | Importe base de la reserva |
discountAmount | Descuentos aplicados en la reserva |
priceType | Tipo de precio. Valores: PVP, Net |
commissionAmount | Importe de comisión de la reserva |
commissionPercentage | Porcentaje de comisión de la reserva |
amount | Importe total de la reserva |
| |
guest | |
id | Identificador del pasajero de la reserva |
languageCode | Código del idioma de la respuesta |
commissionAmount | Importe de comisión de la reserva |
totalAmount | Importe total de la reserva |
currencyCode | Código de divisa de la reserva |
paymentOption | |
paymentorder | Modalidad de pago de la reserva. |
paymentType | Tipo de pago de la reserva. |
description | Descripción de la forma de pago |
paymentDate | Fecha de pago. Se indica fecha juliana |
amountToPay | Cantidad a pagar |
Ejemplo de mensaje (JSON):
{
"bookingToken": "dHqVDUY22HzhJ8QZnnbxfnSXxJ1025bXkRdhXVkk7FaQUlGjMhgs3F662k3ep7jyMyw5pfAw1Pw7QJKeCjqK6mh",
"booking": {
"reference": "TES241120RJNVCS",
"dateCreation": 1732112260571,
"hotel": {
"code": "53090",
"name": "Juana",
"establishmentType": {
"code": "HOTL",
"name": "Hotel"
},
"category": {
"code": "4*",
"name": "Cuatro estrellas"
},
"address": {
"country": {
"code": "ES",
"name": "ESPAÑA"
},
"county": "Alcudia",
"location": {
"code": "ES-46018",
"name": "Alcudia"
},
"parentLocation": {
"code": "ESBAL03",
"name": "MALLORCA"
},
"postalCode": "07965",
"addressText": "AV Test, 5",
"gps": {
"latitude": 39.83994084940381,
"longitude": 3.12696974690252
}
},
"contact": [
{
"phone": "9718888888",
"email": "[email protected]"
}
]
},
"reservationStatus": "Confirmed",
"operationalStatus": {
"process": "Creation",
"rate": "Available",
"quota": "Available"
},
"room": [
{
"id": 1,
"room": {
"code": "DBL#STD",
"name": "Doble Estándar"
},
"rate": {
"code": "31632",
"name": "FLEXIBLE"
},
"mealPlan": {
"code": "HB",
"name": "Media pensión"
},
"distribution": {
"id": 1,
"person": [
{
"id": 1,
"type": "Adult",
"age": 30
},
{
"id": 2,
"type": "Adult",
"age": 30
}
]
},
"checkIn": 1736035200000,
"checkOut": 1736380800000,
"nights": 4,
"supplements": [
{
"type": "SPS",
"code": "[EtT]SalePolicy(PpT)TESTHTT@73888",
"name": "TEST EB JUANA",
"dateFrom": 1736031600000,
"dateTo": 1736290800000,
"amount": -196.0
}
],
"paymentOption": [
{
"code": "Hotel#TESTHTT#14506",
"amountToPay": 364.0
},
{
"code": "Hotel#TESTHTT#10563",
"amountToPay": 364.0
}
],
"priceDetail": [
{
"code": "[EtT]Commission(PpT)TESTHTT@31632@TES@ClientCode@PVP",
"name": "FLEXIBLE - TES - ClientCode - TES",
"type": "Breakdown",
"group": "Commission",
"optional": false,
"order": 1,
"amount": 36.4
},
{
"code": "[EtT]SalePolicy(PpT)TESTHTT@73888",
"name": "TEST EB JUANA",
"type": "Supplement",
"group": "SalePolicy",
"optional": false,
"order": 0,
"amount": -195.9999996
}
],
"cancelPenaltyMode": "CancelPenalty",
"cancellationOption": [
{
"fromDate": 1732057200000,
"daysTo": -953,
"percentage": 5.0,
"amount": 18.2
},
{
"fromDate": 1735945200000,
"daysTo": 45,
"percentage": 100.0,
"amount": 364.0
}
],
"status": "Confirmed",
"baseAmount": 560.0,
"discountsAmount": -196.0,
"priceType": "PVP",
"commissionAmount": 36.4,
"commissionPercentage": 10.0,
"amount": 364.0
}
],
"cancellationOption": [
{
"fromDate": 1732057200000,
"daysTo": -953,
"percentage": 5.0,
"amount": 18.2
},
{
"fromDate": 1735945200000,
"daysTo": 45,
"percentage": 100.0,
"amount": 364.0
}
],
"guest": [
{
"id": 1
},
{
"id": 2
}
],
"languageCode": "ES",
"commissionAmount": 36.4,
"totalAmount": 364.0,
"currencyCode": "EUR"
},
"paymentOption": [
{
"paymentOrder": "ExternManagement",
"paymentType": "Credit",
"description": "Acordado",
"paymentDate": 1732057200000,
"amountToPay": 364.0
},
{
"paymentOrder": "Establishment",
"paymentType": "Cash",
"description": "Pago en el hotel PULL",
"paymentDate": 1736031600000,
"amountToPay": 364.0
}
]
}