API Pública de Paquetes Dinámicos

Protocolo público Core Ofi de reservas online de paquetes dinámicos XML

V 1.1 Julio 2018

Introducción y contacto

Esta documentación describe el conjunto de método del servicio web desarrollado por Ofimática Jaén SL con el objetivo de realizar reservas on-line de circuitos.

El objetivo de este servicio web, es el acceso vía XML, a disponibilidad de circuitos así como la posibilidad de hacer reservas y cancelaciones en el sistema.

En la siguiente documentación se describe la estructura de los mensajes a enviar en cada método, así como la respuesta obtenida en cada uno de ellos. Además se adjuntan ejemplo de cada uno de ellos.

Para cualquier duda y aspecto a comentar durante su uso, puede contactar con nosotros de Lunes a Viernes, desde las 09:00 hasta las 14:00 y de 16:00 a 19:00 en el siguiente número de teléfono 953 280 144.

Webservice

  • Métodos utilizados en el flujo de reservas
  • Las operaciones disponibles a fin de poder solicitar disponibilidad, generar una reserva y su posterior cancelación son los siguientes:

    Servicio Descripción
    SearchToursInArea Búsqueda inicial de circuitos por área (4puntos) y rango de fechas. Devolverá lo productos con destinos (itinerario y destino del producto) en ese área, con alguna fecha de salida para ese rango
    GetAccommodationsAvailables Una vez que se sabe el producto y la fecha de salida, se trata de averiguar combinaciones de acomodaciones disponibles para las habitaciones solicitadas
    GetBookingBus (Opcional) Solicitud de asientos del autobus para un paquete que permita selección de asientos.
    CheckAvailability En este método se selecciona la combinación de habitaciones, las noches extras seleccionadas (para comenzar las búsquedas de hoteles dinámicos en esas fechas), si se quieren excluir los vuelos (si el paquete lo permite), el aeropuerto de origen seleccionado. Con esa información lanzará las posibles búsquedas dinámicas en hilos y devolverá un Guid (SearchId) para que después poder consultar los resultados de las mismas
    GetDynamicFlights (Opcional) Método para sólicitar los resultados de vuelos dinámicos en base al Guid devuelto en la anterior petición
    GetDynamicHotels (Opcional) Método para sólicitar los resultados de hoteles dinámicos en base al Guid devuelto en la anterior petición
    PreBooking Realiza un bloqueo temporal de plazas del paquete y los servicios dinámicos seleccionads
    Booking Confirmar la reserva
  • Flujo de reservas

Flujo reservas tours dinámico

Entorno Url o "Endpoint"
TEST http://booking.ofi.es/Test/ToursBookingService.svc?wsdl
LIVE http://booking.ofi.es/ToursBookingService.svc?wsdl
  • Métodos adicionales al flujo de reservas
  • A continuación se describen las operaciones disponibles en el sistema que son adicionales al flujo de reserva. Estás se utilizarán para obtener información estática que será utilizada a fin de poder realizar una reserva.

    Servicio Descripción
    GetToursInfo Solicitud del contenido descriptivo de un circuito
    GetBookingInfo Consultar información de una reserva

SearchToursInArea

En este apartado se describe la petición y la respuesta de búsqueda de circuitos en el sistema a partir de un código de subzona o un área definida por una pareja coordenadas geográficas (latitud y longitud nordeste y suroeste) y un rango de fechas (desde / hasta) no superior a 2 meses.

Área

De manera que el sistema devolverá una lista de circuitos cuyo itinerario toque el área solicitada y tenga definida alguna salida entre las fechas solicitadas.

Request

Campo Cardinalidad Descripción
SearchToursInAreaRequest 1 Elemento root de la petición de búsqueda de circuitos
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. DepartureStartDateForSearch 1 Fecha de inicio del rango de búsqueda
4. DepartureEndDateForSearch 1 Fecha de fin del rango de búsqueda
5. NothEastLatitude 1 Latitud noreste
6. NothEastLongitude 1 Longitud noreste
7. SouthWestLatitude 1 Latitud suroeste
8. SouthWestLongitude 1 Longitud suroeste
9. ProviderData 0 Este campo no se debe enviar via XML
10. InternalAgencyData 0 Este campo no se debe enviar via XML
11. SubzoneId 1 Código de la subzona a la que pertenece el destino del circuito

Response

Campo Cardinalidad Descripción
SearchToursInAreaResponse 1 Elemento root de la respuesta de búsqueda de circuitos
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. Warnings 0 No se debe de tener en cuenta via XML
5. ToursDeparturesPrices 0..N Lista de circuitos obtenida como resultado de la búsqueda
5.1 Code 1 Código del circuito
5.2 Name 1 Nombre del circuito
5.3 ImageUrl 1 Url de la imagen asociada
5.4 CommisionPercentage 1 Porcentaje de la comisión del cliente para este circuito
5.5 ExtraNightsInfo 0..1 Información sobre noches extras
5.5.1 AllowToChangeStartData 1 Permite noches extras por delante
5.5.2 AllowToChangeEndDate 1 Permite noches extras por detrás
5.5.3 NumberOfNightsAllowedToChange 1 Número de noches que permite cambiar
5.6 PricesFromForDepartures 1..N Lista de salidas y sus precios
5.6.1 StartDate 1 Fecha de salida
5.6.2 EndDate 1 Fecha de llegada
5.6.3 Price 1 Precio de la salida 
5.6.3.1 Amount 1 Importe de la salida
5.6.3.2 Commission 1 Porcentaje de comisión 
5.6.3.3 Mandatory 1 True si el precio de Amount es precio obligatorio
5.6.3.4 Cost 1 Coste en neto de la salida
5.6.3.5 Currency 1 Divisa 
5.6.3.6 PriceLineThrough 1 Precio "tachado". Precio antes de aplicar descuentos.
6 ProviderName 1 Nombre del proveedor del circuito.
7 Observations 0..1 Observaciones públicas del circuito.
8 Features 0..N Distintivas del circuito.
8.1 Features 1 Id de la distintiva.
8.2 Descripcion 1 Descripción de la distintiva.
8.3 Imagen 1 Url de la imagen de la distintiva.

Ejemplo request

Ejemplo response

GetAccommodationsAvailables

En este apartado se describe la petición y la respuesta de la obtención de acomodaciones disponibles en base a unas habitaciones solicitadas. Es decir, una vez que se sabe el producto y la fecha de salida, se trata de averiguar combinaciones de acomodaciones disponibles para las habitaciones solicitadas

Request

Campo Cardinalidad Descripción
GetAccommodationsAvailablesRequest 1 Elemento root de la petición de búsqueda de combinaciones de acomodaciones disponibles
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. SessionId 1 Identificador único de la sesión obtenido en SearchToursInArea
4. DepartureDate 1 Fecha de inicio de la salida seleccionada
5. TourReferenceCode 1 Id del paquete que se desea reservar
6. Rooms 1..N Lista de habitaciones solicitadas
6.1 PassengersAges 1..N Lista de edades de los pasajeros de la correspondiente habitación
7. ProviderData 0 Este campo no se debe enviar via XML
8. InternalAgencyData 0 Este campo no se debe enviar via XML

Response

Campo Cardinalidad Descripción
GetAccommodationsAvailablesResponse 1 Elemento root de la respuesta de búsqueda de combinaciones de acomodaciones disponibles
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. Warnings 0 No se debe de tener en cuenta via XML
5. Accommodations 1..N Lista de acomodaciones disponibles
5.1 Code 1 Código de la acomodación
5.2 Description 1 Descripción de la acomodación
5.3 TourCategoryCode 1 Código de la categoría de la acomodación
5.4 TourCategoryName 1 Nombre de la categoría de la acomodación
5.5 Price 1 Precio de la salida
5.5.1 Amount 1 Importe de la salida
5.5.2 Commission 1 Porcentaje de comisión
5.5.3 Mandatory 1 True si el precio de Amount es precio obligatorio
5.5.4 Cost 1 Coste en neto de la salida
5.5.5 Currency 1 Divisa
5.5.6 PriceLineThrough 1 Precio "tachado". Precio antes de aplicar descuento
5.5.7 Taxes 1 Importe de las tasas
5.5.8 FeeDetails 0..1 Detalles de Fee
5.5.8.1 TotalFee 0..1 Importe total del Fee
5.5.8.2 PerPax 0..1 Importe total del fee por persona
5.5.8.3 NumberOfPaxes 0..1 Nº de pasajeros
5.5.8.4 PerBooking 0..1 Importe total de fee por reserva
5.6 ConceptIds 0..1 Lista de identificadores de conceptos de acomodación. Estos identificadores pueden ser usados para obtener información de las cabinas, en caso de cruceros, usando el método GetToursInfo
6 HasSelectionBusSeats 1 Tiene elección de asientos para autocares
7 ExtraNightsInfo 0..1 Información sobre noches extras
7.1 AllowToChangeStartDate 1 Indica si el circuito permite modificar la fecha de salida (añadiendo o quitando noches)
7.2 AllowToChangeEndDate 1 Indica si el circuito permite modificar la fecha de llegada (añadiendo o quitando noches)
7.3 NumberOfNightsAllowedToChange 1 Número de noches que se permiten añadir o quitar
8 Areas 0..N Lista de áreas de las paradas
8.1 Code 1 Código del área
8.2 Description 1 Descripción del área
8.3 Stops 1..N Listas de las paradas
8.3.1 Code 1 Código de la parada
8.3.2 Description 1 Descripción de la parada
8.3.3 PickUpTime 1 Hora de la parada
9 CancellationPolicy 1 Política de cancelación de la reserva
9.1 Description 1 Descripción de la política de cancelación
9.2 NotRepayable 1 Indica si la reserva es no reembolsable
9.3 Title 1 Título de la política de cancelación
10 ConfigurationForSearchDynamicFlights 0..1 Opciones para los vuelos dinámicos
10.1 CanChooseOthersAirports 1 Puede elegir otros aeropuertos distintos a la de la lista OriginAirports
10.2 CanExcludeDynamicFlights 1 Puede excluir los vuelos del paquete. (Vuelos opcionales)
10.3 OriginAirports 0..N Lista de aeropuertos de origen
10.3.1 Code 1 Código IATA del aeropuerto
10.3.2 Name 1 Nombre del aeropuerto

Ejemplo request

Ejemplo response

GetBookingBus

En este apartado se describe la petición y respuesta del método para obtener la información de asientos de un autobús. A este método solo hay que llamar si disponibilidad obtenemos el campo "HasSelectionBusSeats" a "true".

Como respuesta obtendremos la distribución de asientos del autobús ocupados y libres.

Request

Campo Cardinalidad Descripción
BookingBusRequest 1 Elemento root de la petición de información de asientos de bus de un circuito
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. TourReferenceCode 1 Id del circuito 
4. SessionId 1 Identificador de la sesión
5. ProviderId 0 Identificador del proveedor. No se debe de enviar via XML
6. DepartureStartDate 1 Fecha de salida del circuito

Response

Campo Cardinalidad Descripción
BookingBusResponse 1 Elemento root de la respuesta de información de asientos de bus de un circuito
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. ListBookingBus 1..N Lista de booking del producto
4.1 CodeBooking 1 Código del booking
4.2 Description 1 Nombre del booking
4.3 ListVehicle 1..N Lista de vehículos
4.3.1 VehicleId 1 Id del vehículo
4.3.2 Description 1 Descripción del vehículo
4.3.3 Seats 1..N Lista de asientos del vehículo
4.3.4 Column 1 Columna del asiento
4.3.5 Row 1 Fila del asiento
4.3.6 Available 1 True si el asiento está libre, false si está ocupado

Ejemplo request

Ejemplo response

CheckAvailability

En este método se selecciona la combinación de habitaciones, las noches extras seleccionadas (para comenzar las búsquedas de hoteles dinámicos en esas fechas), si se quieren excluir los vuelos (si el paquete lo permite), el aeropuerto de origen seleccionado. Con esa información lanzará las posibles búsquedas dinámicas en hilos y devolverá un Guid (SearchId) para que después poder consultar los resultados de las mismas

Request

Campo Cardinalidad Descripción
CheckTourAvailavilityRequest 1 Elemento root de la petición que lanza la búsqueda de disponibilidad del paquete y de los servicios dinámicos
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. TourReferenceCode 1 Id del circuito que se desea reservar
4. AccommodationCode 1 Id de la acomodación que se desea reservar
5. OriginAirportCode 0..1 Aeropuerto origin para vuelos dinámicos
6. ExcludeFlightsSearch 1 Excluye vuelos del paquete en el caso que sea posible según la respuesta GetAccommodationsAvailables
7. SessionId 1 dentificador único de la sesión
8. StayDateRange 1 Fechas seleccionadas (Formato YYYY-MM-DD)
8.1. DepartureStartDate 1 Fecha inicio, para identificar la salida seleccionada
8.2. DepartureEndDate 1 Fecha fin de la salida seleccionada
8.3. SelectedStartDate 1 Fecha inicio real elegida (Puede ser diferente de DepartureStartDate si se eligen noches extras)
8.4. SelectedEndDate 1 Fecha fin real elegida (Puede ser diferente de DepartureEndDate si se eligen noches extras)
9. ProviderData 0 Este campo no se debe enviar via XML

Response

Campo Cardinalidad Descripción
CheckTourAvailavilityResponse 1 Elemento root de la respuesta de búsqueda de circuitos
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. Warnings 0 No se debe de tener en cuenta via XML
5. SessionId 1 Identificador único de la sesión
6. DynamicSelection 1 Datos de las busqueda de los servicios dinámicos
6.1. DynamicFlight 0..1 Datos de las busqueda de vuelos dinámicos
6.1.1. SearchId 1 Guid de la busqueda de disponibilidad de vuelos
6.1.2. Description 1 Descripción del servicio de vuelos
6.1.3. StartDate 1 Fecha desde del servicio de vuelos
6.1.4. EndDate 1 Fecha hasta del servicio de vuelos
6.2. DynamicHotels 0..N Datos de las busqueda de los hoteles dinámicos
6.2.1. SearchId 1 Guid de la busqueda de disponibilidad de hotel
6.2.2. Description 1 Descripción del servicio de hotel
6.2.3. StartDate 1 Fecha desde del servicio de hotel
6.2.4. EndDate 1 Fecha hasta del servicio de hotel
6.3. DynamicOptionalServices 0..1 Datos de las busqueda de los opcionales dinámicos
6.3.1. Description 1 Descripción del servicio opcional
6.3.2. Price 1 Precio del servicio opcional
6.3.3. IsPricePerPerson 1 True si el precio es por persona
6.3.3. Type 1 Tipo de servicio opcional
6.3.3. UnitsValue 1 Valor de las unidades
6.3.3. Code 1 Código del servicio opcinal
7. ItineraryInfo 0..1 Itinerario del paquete
7.1. Days 1..N Lista de días del itinerario
7.1.1. Date 1 Fecha del día en el calendario
7.1.2. DayNumber 1 Número del día del itinerario
7.1.3. DayType 1 Tipo de día
7.1.4. Title 1 Título del día
7.1.5. ShortDescription 1 Descripción corta del día
7.1.6. Description 1 Descripción larga del día
7.1.7. Foot 1 Descripción del pie del día
7.1.8. Origin 1 Origen del día
7.1.9. Destiny 1 Destino del día
7.1.10. Services 1..N Lista de servicios del día
7.1.10.1. Description 1 Descripción del servicio
7.1.10.2. ServiceType 1 Tipo de servicio
7.1.11. PlacesVisited 0..N Lista de lugar visitados en el día
7.1.11.1. Code 1 Código del lugar visitado
7.1.11.2. Name 1 Nombre del lugar visitado
7.1.11.3. Latitude 1 Latitud del lugar visitado
7.1.11.4. Longitude 1 Longitud del lugar visitado

Ejemplo request

Ejemplo response

GetDynamicFlights

Método para sólicitar los resultados de vuelos dinámicos en base al Guid devuelto en la anterior petición. Este método será necesario si el paquete tiene vuelos dinámicos obligatorios o si tiene vuelos opcionales y no se han excluido.

Request

Campo Cardinalidad Descripción
GetDynamicFlightsRequest 1 Elemento root de la petición para obtener los resultados de vuelos dinámicos
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. SessionId 1 Identificador único de la sesión
4. SearchId 1 Guid de la busqueda de disponibilidad de vuelos obtenido en CheckTourAvailavilityResponse
5. ProviderData 0 Este campo no se debe enviar via XML

Response

Campo Cardinalidad Descripción
GetDynamicFlightsResponse 1 Elemento root de la respuesta de resultados de vuelos dinámicos.
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. Warnings 0 No se debe de tener en cuenta via XML
5. AirRates 0..N Tarifas
5.1. Price 1 Precio de la tarifa
5.2. Id 1 Identificador de la tarifa
5.3. LimitEmissionDate 1 Fecha límite de emisión
5.4 Routes 1..N Rutas/Trayectos
5.4.1 OriginCity 1 Ciudad origen del trayecto
5.4.2 DestinyCity 1 Ciudad destino del trayecto
5.4.3 Flights 1..N Vuelos del trayecto
5.4.3.1 FlightId 1 Identificador del vuelo
5.4.3.2 FlightProviderId 1 Identificador del proveedor del vuelo
5.4.3.3 FlightDuration 1 Duración del vuelo
5.4.3.4 DepartureDate 1 Fecha de salida
5.4.3.5 ArrivalDate 1 Fecha de llegada
5.4.3.6 ScalesNumber 1 Nº de escalas
5.4.3.7 FlightDurationDescription 1 Descripción de la duración
5.4.3.8 BaggagesIncluded 1 Nº de maletas incluidas
5.4.3.9 BaggageWeight 1 Peso máximo de las maletas incluidas
5.4.3.10 Segments 1..N Segmentos del vuelo
5.4.3.10.1 Operator 1 Operador del segmento
5.4.3.10.2 Airline 1 Aerolinea del segmento
5.4.3.10.3 DepartureDate 1 Fecha de salida del segmento
5.4.3.10.4 ArrivalDate 1 Fecha de llegada del segmento
5.4.3.10.5 FlightCode 1 Código de vuelo del segmento
5.4.3.10.6 FlightNumber 1 Nº de vuelo del segmento
5.4.3.10.7 AirlineCode 1 Código de la aerolinea
5.4.3.10.9 Class 1 Clase del segmento
5.4.3.10.9.1 Cabin 1 Código de cabina de la clase
5.4.3.10.9.2 Booking 1 Código de reserva de la clase
5.4.3.10.9.3 Code 1 Código de la clase
5.4.3.10.9.4 Description 1 Descripción de la clase
5.4.3.10.10 Origin 1 Origin del segmento
5.4.3.10.10.1 AirportCode 1 Código IATA aeropuerto origen
5.4.3.10.10.2 AirportName 1 Nombre del aeropuerto origen
5.4.3.10.10.3 AirportTerminal 1 Terminal aeropuerto
5.4.3.10.10.4 City 1 Ciudad origen
5.4.3.10.10.5 Country 1 Pais origen
5.4.3.10.11 Destiny 1 Destino del segmento
5.4.3.10.11.1 AirportCode 1 Código IATA aeropuerto destino
5.4.3.10.11.2 AirportName 1 Nombre del aeropuerto destino
5.4.3.10.11.3 AirportTerminal 1 Terminal aeropuerto
5.4.3.10.11.4 City 1 Ciudad destino
5.4.3.10.11.5 Country 1 Pais destino
5. OneWay 0..1 Vuelos OneWay
5.1 OutwardFlights 1..N Vuelos OneWay de Ida
5.1.1 FlightId 1 Identificador del vuelo OneWay
5.1.1 ProviderFlightId 1 Identificador del proveedor del vuelo OneWay
5.1.1 AvailSeats 1 Nº asientos disponibles
5.1.1 Segments 1 Segmentos del vuelo
5.1.1 BaggagesIncluded 1 Nº de maletas incluidas
5.1.1 ProviderId 1 Proveedor del vuelo
5.1.1 ProviderName 1 Nombre del proveedor
5.1.1 FlightDuration 1 Duración del vuelo
5.1.1 FlightDurationDescription 1 Descripción de la duración del vuelo
5.1.1 RateId 1 Identificador de la tarifa
5.1.1 Price 1 Precio del vuelo
5.2 ReturnFlights 1..N Vuelos OneWay de Vuelta

Ejemplo request

Ejemplo response

GetDynamicHotels

Método para sólicitar los resultados de hoteles dinámicos en base al Guid devuelto en la anterior petición. Este método será obligatorio si el paquete tiene hoteles dinámicos. Será necesario llamar tantas veces como hoteles devuelva el método CheckAvailability.

Request

Campo Cardinalidad Descripción
GetDynamicHotelsRequest 1 Elemento root de la petición de búsqueda de circuitos
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. SessionId 1 Identificador único de la sesión
4. SearchId 1 Guid de la busqueda de disponibilidad de vuelos obtenido en CheckTourAvailavilityResponse
5. ProviderData 0 Este campo no se debe enviar via XML
6. InternalAgencyData 0 Este campo no se debe enviar via XML

Response

Campo Cardinalidad Descripción
GetDynamicHotelsResponse 1 Elemento root de la respuesta de resultados de disponibilidad de hoteles dinámicos
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. Warnings 0 No se debe de tener en cuenta via XML
5. Hotels 1..N Listado de hoteles disponibles
5.1 Name 1 Nombre del hotel
5.2 Category 1 Categoria del hotel
5.3 City 1 Ciudad
5.4 ZipCode 1 Código postal
5.5 Address 1 Dirección
5.6 Latitude 1 Latitud
5.7 Longitude 1 Longitud
5.8 Province 1 Provincia
5.9 Country 1 Pais
5.10 ImageUrl 1 Url imagen
5.11 Observations 1 Observaciones del hotel
5.12 PriceFrom 1 Precio desde
5.13 Currency 1 Divisa
5.14 Code 1 Código del hotel
5.15 Accomodations 1..N Lista de acomodaciones disponibles
5.15.1 Price 1 Precio de la acomodación
5.15.2 Code 1 Código de la acomodación
5.15.3 Description 1 Descripción de la acomodación
5.15.4 MealPlanCode 1 Código del régimen de la acomodación
5.15.5 MealPlanShortDescription 1 Descripción corta del régimen
5.15.6 MealPlanDescription 1 Descripción del régimen
5.15.7 OnRequest 1 True si la acomodación es bajo petición, false si es confirmada
5.15.8 CancellationPolicies 0..N Listado de politicas de cancelación
5.15.8.1 Description 1 Descripción de la política
5.15.8.2 CancellationLimitDate 1 Fecha límite de cancelación
5.15.8.3 Amount 1 Importe de la política
5.15.8.4 Currency 1 Divisa de la política
5.15.8.5 NoRefundable 1 True si es no reembolsable

Ejemplo request

Ejemplo response

PreBooking

En este apartado se describe la petición y respuesta del método de preserva de una acomodación del circuito, Método para prereservar el circuito. A este se le tiene que indicar los servicios dinámicos seleccionados y las opcionales.

En el caso de que el paquete tenga vuelos dinámicos será necesario indicar los datos relativos a la tarifa seleccionada o los vuelos OneWay (si el paquete tiene configurados Vuelos LowCost). Son mutuamente excluyente, por lo que habrá que rellenar solamente una opción. En el caso de que se opte por vuelos OneWay, es necesario escoger el vuelo de ida y el vuelo de vuelta de la misma aerolinea.

Como respuesta obtendremos el precio definitivo de la reserva.

Request

Campo Cardinalidad Descripción
PreBookingRequest 1 Elemento root de la petición de prereserva de circuitos
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. ProviderData 0 Este campo no se debe enviar via XML
4. InternalAgencyData 0 Este campo no se debe enviar via XML
5. SessionId 1 Identificador único de la sesión
6. IdStop 0..1 Código de la parada para la recogida seleccionada si procede
7. IdRoute 0..1 Código de la ruta de la parada para la recogida seleccionada si procede
8. BookingSelection 0..N Lista de selección de autobus
8.1 CodeBooking 1 Id del booking
8.2 Vehicule 1..N Lista de vehículos del booking
8.2.1 VehicleId 1 Id del vehiculo
8.2.2 Seats 1..N Lista de asientos del vehiculo
8.2.2.1 Column 1 Columna donde se sitúa el asiento
8.2.2.2 Row 1 Fila donde se sitúa el asiento
9 DynamicSearchsSelection 1 Resultados dinámicos seleccionados
9.1 DynamicFlightsSelecteds 0..1 Resultados de vuelos dinámicos seleccionados
9.1.1 AirRateSelection 0..1 Tarifa seleccionada. Es mutuamente excluyente con la selección de vuelos OneWay, solo se puede escoger una opción: Tarifa o Vuelos OneWay.
9.1.1.1 RateId 1 Identificador de la tarifa seleccionada.
9.1.1.2 SelectedFlightIds 1..N Vuelos selecionados. Necesarios tantos como trayectos tenga la tarifa y en el orden de los trayectos.
9.1.2 OneWaySelection 0..1 Vuelos OneWay seleccionados. Es mutuamente excluyente con la selección de tarifas, solo se puede escoger una opción: Tarifa o Vuelos OneWay.
9.1.2.1 OutwardRateId 1 Identificador de la tarifa del vuelo OneWay de ida.
9.1.2.2 OutwardFlightId 1 Identificador del vuelo OneWay de ida.
9.1.2.3 ReturnRateId 1 Identificador de la tarifa del vuelo OneWay de vuelta.
9.1.2.4 ReturnFlightId 1 Identificador de la tarifa del vuelo OneWay de vuelta.
9.2 DynamicHotelSelected 0..N Resultados de hoteles dinámicos seleccionados
9.2.1 SearchId 1 Guid de la busqueda de disponibilidad de hoteles
9.2.2 AccomodationCode 1 Código de la acomodación seleccionada
9.2.3 HotelCode 1 Código del hotel seleccionado
9.3 DynamicOptionalServiceSelected 0..N Resultados de opcionales dinámicos seleccionados
9.3.1 Units 1 Unidades del servicio opcional
9.3.2 Code 1 Código del servicio opcional

Response

Campo Cardinalidad Descripción
PreBookingResponse 1 Elemento root de la respuesta de preserva de circuitos
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. SessionId 1 Identificador de la sesión
5. RateQuote 1 Tarifa
5.1 BookingCode 1 Código de la pre-reserva. Será necesario para hacer el proceso de Booking
5.2 StartDate 1 Fecha de inicio del circuito
5.3 EndDate 1 Fecha de fin del circuito
5.4 Price 1 Precio de la reserva
5.4.1 Amount 1 Importe de la reserva
5.4.2 Commission 1 Porcentaje de comisión 
5.4.3 Mandatory 1 True si el precio de Amount es precio obligatorio
5.4.4 Cost 1 Coste en neto de la reserva
5.4.5 Currency 1 Divisa 
5.4.6 PriceLineThrough 1 Precio "tachado". Precio antes de aplicar descuentos.
5.4.7 Total 1 Precio total sin comisión.
5.4.8 TotalWithCommission 1 Precio total con la comisión.
5.5 CancellationPolicy 1 Política de cancelación de la reserva
5.5.1 Description 1 Descripción de la política de cancelación
5.5.2 NotRepayable 1 Indica si la reserva es no reembolsable
5.5.3 Title 1 Título de la política de cancelación
5.6 DetailsPrice 1 Desglose de precios de la reserva
5.6.1 Quantity 1 Unidades
5.6.2 Description 1 Descripción del concepto
5.6.3 Code 1 Código del concepto
5.6.4 Price 1 Precio total del concepto

Ejemplo request

Ejemplo response

Booking

En este apartado se describe la petición y la respuesta de la confirmación de reserva de un circuito del que previamente se ha realizado una preserva

Request

Campo Cardinalidad Descripción
BookingRequest 1 Elemento root de la petición de reserva de circuitos
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. TourReferenceCode 1 Id del circuito que se desea reservar
4. SessionId 1 Identificador de la sesión
5. ClientLocator 1 Localizador del cliente (referencia que la da a esta reserva la agencia que hace la reserva)
6. TourReservation 1 Datos de la reserva
6.1 Agent 1 Referencia de la agencia que hace la reserva
6.2 ClientName 1 Nombre del titular de la reserva
6.3 BookingCode 1 Código de la reserva que se va a confirmar. Ha sido suministrado en la respuesta de la petición PreBooking
6.4 Comments 0..N Observaciones de la reserva
6.5 Passangers 1..N Lista de pasajeros de la reserva
6.5.1 GuestTypeCode 1 Código del pasajero
6.5.2 Name 1 Nombre del pasajero
6.5.3 Surname 1 Apellidos del pasajero
6.5.4 Email 1 Email del pasajero
6.5.5 BirthDate 1 Fecha de nacimiento del pasajero (YYYY-MM-DD)
6.5.6 Gender 1 Sexo del pasajero (Male/Female)
6.6 FlightIn 0..1 Vuelo de salida
6.6.1 Date 0..1 Fecha de salida
6.6.2 Airport 0..1 Aeropuerto
6.6.3 CompanyCode 0..1 Aerolinea
6.6.4 FlightNumber 0..1 Número del vuelo
6.6.5 StartTime 0..1 Hora de salida del vuelo
6.6.6 ArrivalTime 0..1 Hora de llegada del vuelo
6.6.5 Observations 0..1 Observaciones
6.7 FlightOut 0..1 Vuelo de vuelta
6.7.1 Date 0..1 Fecha de salida
6.7.2 Airport 0..1 Aeropuerto
6.7.3 CompanyCode 0..1 Aerolinea
6.7.4 FlightNumber 0..1 Número del vuelo
6.7.5 StartTime 0..1 Hora de salida del vuelo
6.7.6 ArrivalTime 0..1 Hora de llegada del vuelo
6.7.5 Observations 0..1 Observaciones

Response

Campo Cardinalidad Descripción
BookingResponse 1 Elemento root de la respuesta de reserva de circuitos
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. BookingStatus 1 Estado de la reserva (Confirmada, BajoPetición, Fallida, PendienteEmisión, Cancelada)
5. BookingCode 1 Código definitivo de la reserva (IdExpediente OfiTour)
6. ProviderLocator 1 Localizador devuelto por el proveedor
7. ClientLocator 1 Localizador del cliente (Mismo que se envió en la petición)
8 Price 1 Precio de la salida 
8.1 Amount 1 Importe de la salida
8.2 Commission 1 Porcentaje de comisión 
8.3 Mandatory 1 True si el precio de Amount es precio obligatorio
8.4 Cost 1 Coste en neto de la salida
8.5 Currency 1 Divisa 
8.6 PriceLineThrough 1 Precio "tachado". Precio antes de aplicar descuentos.
8.7 Total 1 Precio total sin comisión.
8.8 TotalWithCommission 1 Precio total con la comisión.
9 CancellationPolicy 1 Política de cancelación de la reserva
9.1 Description 1 Descripción de la política de cancelación
9.2 NotRepayable 1 Indica si la reserva es no reembolsable
9.3 Title 1 Título de la política de cancelación

Ejemplo request

Ejemplo response

GetTourInfo

En este apartado se describe la petición y respuesta del método para obtener información descriptiva de un circuito.

Request

Campo Cardinalidad Descripción
GetTourInfoRequest 1 Elemento root de la petición de información descriptiva de un circuito
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. TourReferenceCode 1 Id del circuito del que se solicita la información
4. ProviderId 0 Identificador del proveedor (No se debe de enviar via XML)

Response

Campo Cardinalidad Descripción
GetTourInfoResponse 1 Elemento root de la petición de información descriptiva de un circuito
1. SessionId 1 Identificador único de la sesión
2. Success 1 True si OK, False si hay algún error
3. Message 0..1 En casos de error contiene la descripcion del mismo
4. TourInfo 1 Información del circuito
4.1 Code 1 Código del circuito
4.2 Name 1 Nombre del cicuito
4.3 Itinerary 0..N Itinerario del circuito (Lista de días)
4.3.1 DayNumber 1 Número del día
4.3.2 Title 1 Título del día
4.3.3 ShorDescription 1 Descripción corta del día
4.3.4 Descripción 1 Descripción larga del día
4.3.5 Foot 1 Descripción del pie del día
4.3.6 Origin 0..1 Origen del día
4.3.6.1 Code Código del origen del día
4.3.6.2 Name 1 Nombre del origen del día
4.3.3.3 Latitude 1 Latitud del origen del día
4.3.3.4 Longitude 1 Longitud del oriden del día
4.3.7 Destiny 0..1 Destino del día
4.3.7.1 Code 1 Código del destino del día
4.3.7.2 Name 1 Nombre del destino del día
4.3.7.3 Latitude 1 Latitud del destino del día
4.3.7.4 Longitude 1 Longitud del destino del día
4.3.8 PlacesVisited 0..N Lista de lugar visitados  en el día
4.3.8.1 Code 1 Código del lugar visitado
4.3.8.2 Name 1 Nombre del lugar visitado
4.3.8.3 Latitude 1 Latitud del lugar visitado
4.3.8.4 Longitude 1 Longitud del lugar visitado
4.4 DescriptiveTexts 0..N Lista de textos descriptivos del circuito
4.4.1 Tittle 1 Titulo del descriptivo
4.4.2 Descriptión 1 Descripción del texto
4.5 Destiny 0..1 Destino del circuito
4.5.1 Code 1 Código del destino del circuito
4.5.2 Name 1 Nombre del destino del circuito
4.5.3 Latitude 1 Latitud del destino del circuito
4.5.4 Longitude 1 Longitud del destino del circuito
5 CabinsInformation 0..1 Listado de los diferentes tipos de cabinas del crucero
5.1 ShortDescription 1 Descripción breve de la cabina
5.2 Description 1 Descripción más detallada
5.3 Name 1 Nombre
5.4 Images 0..1 Listado de imágenes
5.5 ConceptIds 0..1 Listado de los identificadores relacionados con la cabina. Necesario para poder obtener información de las cabinas devueltas en la respuesta de GetAcommodationsAvailables
6 BoatInformation 1 Información del barco
6.1 Name 1 Nombre del barco
6.2 Description 1 Descripción del barco
6.3 Company 1 Compañia del barco
6.3.1 Name 1 Nombre de la compañia
6.3.2 UrlImage 1 Url de la imagen de la compañia
6.4 MapImage 1 Imagen mapa del barco
6.4.1 Title 1 Título de la imagen
6.4.2 Description 1 Descripción de la imagen
6.4.3 Url 1 Url de la imagen
6.5 Images 0..1 Imágenes del barco
6.5.1 Title 1 Título de la imagen
6.5.2 Description 1 Descripción de la imagen
6.5.3 Url 1 Url de la imagen

Ejemplo request

Ejemplo response

GetBookingInfo

En este apartado se describe la petición y respuesta del método para obtener información de una reserva ya realizada.

Request

Campo Cardinalidad Descripción
GetBookingInfoRequest 1 Elemento root de la petición de información detallada de una reserva
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. BookingCode 1 Id de la reserva de la que se solicita la información
4. ProviderId 0 Identificador del proveedor

Response

Campo Cardinalidad Descripción
GetBookingInfoResponse 1 Elemento root de la petición de información detallada de una reserva
1. Success 1 True si OK, False si hay algún error
2. Message 0..1 En casos de error contiene la descripcion del mismo
3. BookingInfo 1 Información de la reserva
3.1 BookingCode 1 Código de la reserva
3.2 LocatorCode 1 Localizador de la reserva
3.3 Price 1 Precio de la reserva
3.3.1 Amount 1 Importe de la salida
3.3.2 Commission 1 Porcentaje de comisión 
3.3.4 Cost 1 Coste en neto de la salida
3.3.5 Currency 1 Divisa 
3.3.6 Total 1 Precio total sin comisión.
3.3.7 TotalWithCommission 1 Precio total con la comisión.

Ejemplo request

Ejemplo response