Flujo NetCore API HotelMetaSearch
Objetivo
El presente documento tiene como finalidad presentar los servicios que se deben ejecutar para realizar un flujo de hoteles desde un metabuscador.
Colección Postman
Se pueden descargar los archivos de la coleccion de postman y enviroment en los siguientes documentos:
Todos los servicios ejecutados, deben incluir el siguiente header:
Nombre del Header: x-net-metasearch
Valor a enviar: {{userservice}}-{{saleschannelcode}
}
Ejemplo: x-net-metasearch=demo-metaprueba
Se deben enviar las IP’s desde las cuales recibiremos los llamados a nuestras APIs, pues se deben incluir en una whitelist.
Si el llamado no cumple con el header o se hace desde una IP diferente a las autorizadas, el request no se va a procesar.
Diagrama de flujo
Generalidades de los servicios
A continuación se detallan los servicios utilizados para el flujo de venta de metabuscadores:
Tipo de servicio | Servicio | Caracteristicas |
---|---|---|
Iniciar sesión | Iniciar sesion como usuario invitado | |
Búsqueda de hoteles | Utilizado para búsquedas con SC. La url deeplink retornada redirecciona a la experiencia antigua de venta (Catmandu) o experiencia nueva de venta (Nuevo front) dependiendo de la configuración en el sistema | |
Utilizado para búsquedas con SC por hotel dependiendo de la negociacion entre la agencia y el metabuscador. La url deeplink retornada redirecciona a la experiencia antigua de venta (Catmandu) o experiencia nueva de venta (Nuevo front) dependiendo de la configuración en el sistema |
Servicio GuestSession [GET]
Este servicio retorna un token de sesión de usuario invitado necesario para ejecutar los servicios de búsqueda y resultados de hoteles. Se debe realizar la autenticación sobre el ambiente que se desee utilizar.
El token de sesión tiene una validez de 24 horas, por lo que debe utilizarse un único token para ejecutar todos los servicios necesarios dentro de ese período. Pasado ese tiempo, será necesario generar un nuevo token.
CURL Ejemplo:
curl --location 'https://preprod.netactica.com/netcoreapi/Session/GetGuestSession?userservice=netactica' \
--header 'x-net-metasearch: demo-metaprueba'
Donde la variable {userservice} sera informada durante la implementación.
Ejemplo de Respuesta:
Servicio HotelMetaSearchV3 [POST]
Por medio de este servicio se lanza la búsqueda con SC, para el destino, fechas, distribución de pasajeros que se requieran. Este flujo permite que para la búsqueda que se esta realizando, se muestren cada una de las opciones de hoteles con un deeplink (Es un parametro que contiene una URL que redirecciona a un producto seleccionado) que redirecciona a la experiencia nueva o antigua de venta de acuerdo a la configuración establecida para la agencia.
Consideraciones Generales:
A tener en cuenta en el Request del servicio.
En el campo “LocationId” se envía el id de ubicación (ciudad, barrio / vecindario, punto de interés, aeropuerto, etc), Validar con implementación el listado de locations disponibles.
El campo "MaxResults" se utiliza para limitar la cantidad de resultados que se quieren visualizar, aunque la cantidad de resultados total pueda ser superior; es decir, si por ejemplo se encuentran disponibles 1000 hoteles, pero en el parámetro "MaxResults" se digita 100, entonces el sistema solo mostrará los 100 primeros resultados.
Enviar el valor true en el campo “IncludeHotelInfo“ si se desea recibir la información estática del hotel
Enviar el valor true en el campo “IncludeRooms“ si se desea recibir la información de las habitaciones y sus tarifas
Se debe agregar el código del canal de venta, por medio del campo “SalesChanelCode” dentro de la sección de RequestSettings, este codigo de canal de venta sera suministrado en el proceso de implementación.
Se podra enviar un codigo de sucursal, en caso de que la agencia requiera que las ventas se generen a una sucursal en particular, este parametro debe ser enviado en la sección de RequestSettings, bajo el campo “BranchCode”.
Curl de Ejemplo:
curl --location 'https://preprod.netactica.com/NetCoreApi/HotelMetaSearchV3' \
--header 'Content-Type: application/json' \
--header 'x-net-metasearch: netactica-' \
--data '{
"DestinationType": "location",
"LocationId": 329236,
"CheckIn": "2025-03-09",
"CheckOut": "2025-03-11",
"Rooms": [
{
"Adults": 1,
"Children": 0,
"ChildrenAges": []
}
],
"IncludeHotelInfo": false,
"IncludeRooms": false,
"MaxResults": 10,
"CurrencyCode": "USD",
"RequestSettings": {
"SaleType": "Regular",
"BranchCode": "{{branchcode}}",
"SalesChanelCode": "{{saleschannelcode}}",
"Language": "es"
},
"SessionToken": "{{sessiontoken}}"
}'
Donde las variables {{branchcode}} y {{saleschannelcode}} seran informadas durante la implementación. La variable {{sessiontoken}} debe ser reemplazada por el token de sesión, obtenido con el servicio de inicio de sesión GetGuestSession.
Ejemplo de Respuesta:
Servicio HotelMetaSearchByHotelIds [POST]
Por medio de este servicio se lanza la búsqueda con SC, para un grupo de hoteles, fechas, distribución de pasajeros que se requieran. Este flujo permite que para la búsqueda que se esta realizando, se muestren cada una de las opciones de hoteles con un deeplink (Es un parametro que contiene una URL que redirecciona a un producto seleccionado) que redirecciona a la experiencia nueva o antigua de venta de acuerdo a la configuración establecida para la agencia.
Consideraciones Generales:
A tener en cuenta en el Request del servicio.
En el campo “HotelIds” se envia el listado de ids de hoteles negociados entre la agencia y el metabuscador
El campo "MaxResults" se utiliza para limitar la cantidad de resultados que se quieren visualizar, aunque la cantidad de resultados total pueda ser superior; es decir, si por ejemplo se encuentran disponibles 1000 hoteles, pero en el parámetro "MaxResults" se digita 100, entonces el sistema solo mostrará los 100 primeros resultados.
Enviar el valor true en el campo “IncludeHotelInfo“ si se desea recibir la información estática del hotel
Enviar el valor true en el campo “IncludeRooms“ si se desea recibir la información de las habitaciones y sus tarifas
Se debe agregar el código del canal de venta, por medio del campo “SalesChanelCode” dentro de la sección de RequestSettings, este codigo de canal de venta sera suministrado en el proceso de implementación.
Se podra enviar un codigo de sucursal, en caso de que la agencia requiera que las ventas se generen a una sucursal en particular, este parametro debe ser enviado en la sección de RequestSettings, bajo el campo “BranchCode”.
Curl de Ejemplo:
curl --location 'https://preprod.netactica.com/NetCoreApi/HotelMetaSearchByHotelIds' \
--header 'Content-Type: application/json' \
--header 'x-net-metasearch: netactica-' \
--data '{
"HotelIds": [
32519,
237798,
131703,
13532,
47144
],
"CheckIn": "2025-03-09",
"CheckOut": "2025-03-11",
"Rooms": [
{
"Adults": 1,
"Children": 0,
"ChildrenAges": []
}
],
"IncludeHotelInfo": false,
"IncludeRooms": false,
"MaxResults": 10,
"CurrencyCode": "COP",
"RequestSettings": {
"SaleType": "Regular",
"BranchCode": "{{branchcode}}",
"SalesChanelCode": "{{saleschannelcode}}",
"Language": "es"
},
"SessionToken": "{{sessiontoken}}"
}'
Donde las variables {{branchcode}} y {{saleschannelcode}} seran informadas durante la implementación. La variable {{sessiontoken}} debe ser reemplazada por el token de sesión, obtenido con el servicio de inicio de sesión GetGuestSession.
Ejemplo de Respuesta:
Modelo de respuesta en servicios de búsqueda
A contnuación se explica los nodos mas relevantes en la respuesta de los servicios de búsqueda de hoteles:
Nodo RS | Explicación |
---|---|
DeepLink | Contiene una URL que redirecciona a un producto seleccionado bajo la experiencia nueva o antigua de venta de acuerdo al servicio de búsqueda utilizado y la configuración establecida para la agencia |
CheckinDate | Fecha del checkin solicitado |
CheckoutDate | Fecha del checkout solicitado |
HotelName | Nombre del hotel |
HotelCode | Código de hotel en el proveedor |
HotelId | Id del hotel en la plataforma Static Content |
ShortDescription | Descripción breve del hotel |
Destination | Código IATA de ciudad destino solicitado |
Category | Categoría del hotel (estrellas) |
Address | Dirección del hotel |
Images | Arreglo de imagenes. Se retorna si se envia el campo IncludeHotelInfo del Request con valor true |
Latitude | Latitud del hotel |
Longitude | Longitud del hotel |
TotalNightsHotel | Total de noches buscada |
PriceFrom | Precio desde del hotel |
CurrencyCode | Moneda en que se retornan los montos del hotel |
RoomRates | Arreglo de tarifas por habitación. Se retorna si se envia el campo IncludeRooms del Request con valor true |
Rooms | Arreglo de habitaciones. Se retorna si se envia el campo IncludeRooms del Request con valor true |
Redirección al Deeplink
La redirección del cliente al deeplink generado en la respuesta de los servicios HotelMetaSearchV3 y HotelMetaSearchByHotelIds para la opción seleccionada por el cliente, permitira que se redirija al mismo al flujo de venta de la agencia.
Related content
Netactica.com