Integración Ocio - Ofi

Protocolo público Core Ofi de reservas online de ocio

V 1.0 Diciembre 2017

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 ocio.

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
    Search Búsqueda inicial de actividades por coordenadas y rango de fechas. Devolverá una lista de actividades con diferentes modalidad y con sus respectivas fechas de salida para el destino seleccionado.
    Valuation Devuelve el precio definitivo de la actividad / modalidad seleccionada en la búsqueda para un número de personas y fechas concretas.
    RetrievePickups Método para obtener las paradas de recogida de la actividad en el caso de excursiones.
    Prebooking Realiza el bloqueo temporal de las plazas para la actividad seleccionada en Valuation.
    Booking Confirma la reserva.
    PreCancel Obtiene los gastos de cancelación de la reserva.
    Cancel Realiza la anulación de la reserva ya confirmada
  • Flujo de reservas

Flujo reservas ocio

Entorno Url o "Endpoint"
TEST http://booking.ofi.es/Test/ActivitiesBookingService.svc?wsdl
LIVE http://booking.ofi.es/ActivitiesBookingService.svc?wsdl

Valuation

En este apartado se describe la petición y la respuesta de la petición de precio definitivo de una actividad para una modalidad y salida concreta.

Request

Campo Cardinalidad Descripción
ValuationActivityRequest 1 Elemento root de la petición de confirmación de precio de actividades
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. InternalAgencyData 0 Este campo no se debe enviar via XML
4. RulePrices 0 Este campo no se debe enviar via XML
5. SessionId 1 Identificador único de la sesión.
6. ProviderCode 1 Código del proveedor de la actividad.
7. ActivityCode 1 Código de la actividad.
8. From 1 Fecha desde
9. To 1 Fecha hasta
10. PassengersAges 1..N Lista de edades de los pasajeros. Tanto elementos como pasajeros haya.
10. ModalityCode 0..1 Código de la modalidad.

Response

Campo Cardinalidad Descripción
ValuationActivityResponse 1 Elemento root de la respuesta de confirmación de precio de actividades
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. Activity 1 Actividad
5.1 Type 1 Tipo de actividad: TICKET, EXCURSION, NONE
5.2 ProviderId 1 Identificador del proveedor de la actividad
5.3 RealProviderId 1 Identificador real del proveedor del actividad. (Mismo que ProviderId salvo si hay consolidación)
5.4 ProviderName 1 Nombre del proveedor de la actividad
5.5 Name 1 Nombre de la actividad
5.6 Code 1 Código de la actividad
5.7 Description 1 Descripción de la actividad
5.8 CurrencyCode 1 Código de la Divisa
5.9 CurrencyName 1 Nombre de la Divisa
5.10 Latitude 1 Latitud del destino
5.11 Longitude 1 Longitud del destino
5.12 Images 0..N Lista de imágenes de la actividad
5.12 Destinations 1..N Lista de destinos de la actividad
5.12 ListDepartureDateExcursion 1..N Lista de salidas
5.13 ActivityCode 1 Código de la actividad
5.14 OperationDays 1..N Código de la actividad
5.14.1 Code 1 Código
5.14.2 Name 1 Nombre
5.14.3 From 1 Desde
5.14.4 Hasta 1 Hasta
5.15 Modalities 1..N Lista de modalidades
5.15.1 Code 1 Código de la modalidad
5.15.2 Duration 1 Duración de la modalidad
5.15.3 Name 1 Nombre de la modalidad
5.15.4 AmountUnitType 1 Indica si el precio es por persona o por servicio
5.15.5 Comments 1 Comentarios de la modalidad
5.15.6 ActivitySupplierInformation 1 Información del proveedor
5.15.6.1 Name 1 Nombre del proveedor
5.15.6.2 VatNumber 1 CIF
5.15.7 ActivityProviderInformation 1 Información del proveedor
5.15.7.1 Name 1 Nombre del proveedor
5.15.7.2 BookingReference 1 Referencia
5.15.8 Questions 0..N Lista de preguntas
5.15.8.1 Code 1 Código de la pregunta
5.15.8.2 Text 1 Texto de la pregunta
5.15.8.3 Required 1 True si es obligatoria
5.15.9 Rates 1..N Lista de tarifas
5.15.9.1 Code 1 Código de la tarifa
5.15.9.2 Details 1..N Detalles de la tarifa
5.15.9.2.1 RateKey 1 Clave de la tarifa
5.15.9.2.2 OperationDates 1..N Lista de días
5.15.9.2.3 Price 1 Precio de la tarifa
5.15.9.2.4 BoxOfficeAmount 1 Precio en taquilla
5.15.9.2.5 Pickup 0..1 Detalles de la parada
5.15.9.2.5.1 Name 1 Nombre
5.15.9.2.5.2 ValidFrom 1 Desde
5.15.9.2.5.3 ValidTo 1 Hasta
5.15.9.2.5.4 ShortDescription 1 Descripción corta
5.15.9.2.5.5 Description 1 Descripción larga
5.15.9.2.5.6 Latitude 1 Latitud
5.15.9.2.5.7 Longitude 1 Longitud
5.15.9.2.5.8 Time 1 Hora (HHMM)
5.15.9.2.5.9 PointCode 1 Código del punto de recogida
5.15.9.2.5.10 IsHotel 1 True si el punto de recogida es un hotel
5.15.9.2.5.11 HotelName 1 Nombre del hotel si IsHotel es true
5.15.9.2.5.12 RateKey 1 Clave de la tarifa
5.15.9.2.5.13 ModalityCode 1 Código de la modalidad
5.15.9.2.5.14 IdRoute 1 Id ruta
5.15.9.2.6 RetrievePickupsKey 1 En el caso de que que la actividad necesite una parada, en lugar de un rateKey, obtendra un RetrievePickupsKey. Necesario para llamar a RetrievePickups.
5.15.9.2.7 AmountForAgeRange 1..N Lista de precios por edades.
5.15.9.2.7.1 AgeFrom 1 Edad desde.
5.15.9.2.7.2 AgeTo 1 Edad hasta.
5.15.9.2.7.3 Amount 1 Precio por pax para el tramo de edad.
5.15.9.2.7.4 BoxOfficeAmount 1 Precio por pax en taquilla para el tramo de edad.

Ejemplo request

Ejemplo response

RetrievePickups

En este apartado se describe la petición y la respuesta del método para obtener las paradas de actividades.

Se trata de un método opcional dentro del proceso de reserva. Únicamente será necesario si la actividad tiene selección de paradas, es decir, si hemos obtenido previamente NeedPickupSelection con true.

Request

Campo Cardinalidad Descripción
RetrievePickupsRequest 1 Elemento root de la petición de paradas de actividades
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. InternalAgencyData 0 Este campo no se debe enviar via XML
4. ProviderData 0 Este campo no se debe enviar via XML
5. ProviderCode 1 Código del proveedor
6. RetrievePickupsKey 1 Clave obtenida en respuesta de Valuation
7. From 1 Fecha desde
8. To 1 Fecha hasta
9. TourReferenceCode 1 Código de la actividad
10. SessionCode 1 Código de la session obtenido en respuesta de Valuation

Response

Campo Cardinalidad Descripción
RetrievePickupsResponse 1 Elemento root de la respuesta de paradas de actividades
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. Pickups 1..N Lista de paradas

Prebooking

En este apartado se describe la petición y la respuesta del método de bloqueo de plazas de actividades.

Request

Campo Cardinalidad Descripción
PrebookingActivityRequest 1 Elemento root de la petición de prereserva de actividades
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. InternalAgencyData 0 Este campo no se debe enviar via XML
4. RulePrices 0 Este campo no se debe enviar via XML
5. ProviderCode 1 Código del proveedor
6. ClientReference 1 Localizador del cliente
7. RateKey 1 Clave de la tarifa seleccionada
8. From 1 Fecha desde
9. To 1 Fecha desde
10. Answers 0..N Lista de respuestas
10.1 Question 1 Pregunta
10.2 AnswerForQuestion 1 Respuesta
11 Holder 1 Pasajero principal
11.1 Name 1 Nombre
11.2 Surname 1 Apellidos
11.3 Birthday 1 Fecha de nacimiento
11.4 Passport 1 DNI
11.5 Mail 1 Email
11.6 PassengerType 1 Tipo de pasajero : Adult / Child / Baby
11.7 PostalCode 1 Código postal
11.8 ResidentCityCode 0 No hay que enviarlo en actividades
11.9 Phone 1 Teléfono
11.10 Country 1 Código del pais ISO, ej: ES
11.1 ZipCode 1 Código postal

Response

Campo Cardinalidad Descripción
PrebookingActivityResponse 1 Elemento root de la respuesta de prereserva de actividades
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. BookingStatus 1 Estado de la reserva : Confirmada / BajoPetición / Fallida / Cancelada
6. Booking 1 Info de la reserva
6.1 Reference 1 Referencia de la reserva
6.2 ClientReference 1 Localizador del cliente para la reserva
6.3 Status 1 Estado de la reserva
6.3 Price 1 Precio de la reserva
6.4 Payable 1 Pagadero por
6.5 Remarks 1 Observaciones
6.6 CancellationPolicies 1..N Lista de políticas de cancelación
7 OnRequest 1 True si la reserva es bajo petición

Ejemplo request

Ejemplo response

Booking

En este apartado se describe la petición y la respuesta del método de confirmación de reserva de actividades.

Request

Campo Cardinalidad Descripción
BookingActivityRequest 1 Elemento root de la petición de búsqueda de actividades
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. InternalAgencyData 0 Este campo no se debe enviar via XML
4. RulePrices 0 Este campo no se debe enviar via XML
5. SessionId 1 Identificador único de la sesión
6. ProviderCode 1 Código del proveedor
7. Reference 1 Referencia de la reserva

Response

Campo Cardinalidad Descripción
BookingActivityResponse 1 Elemento root de la respuesta de búsqueda de actividades. Misma respuesta que PrebookingActivityResponse

Ejemplo request

Ejemplo response

PreCancel

En este apartado se describe la petición y la respuesta del método para obtener los gastos de cancelación de una actividad reservada previamente.

Request

Campo Cardinalidad Descripción
CancelActivityRequest 1 Elemento root de la petición de precancelacion y cancelación de actividades
1. ConsumerId 1 Identificar del consumidor
2. LanguageIsoCode 1 Código ISO del lenguaje
3. InternalAgencyData 0 Este campo no se debe enviar via XML
4. SessionId 1 Identificador único de la sesión
5. BookingReference 1 Localizador de la reserva a cancelar
6. Código del proveedor 1 Código del proveedor de la reserva a cancelar

Response

Campo Cardinalidad Descripción
CancelActivityResponse 1 Elemento root de la petición de precancelacion y cancelación de actividades
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. CancellationPolicyDescription 1 Descripción de la política de cancelación
6. CancellationPrice 1 Precio de la cancelación
7. Status 1 Estado de la reserva
8. CancellationDate 0..1 Fecha de la cancelación

Ejemplo request

Ejemplo response

Cancel

En este apartado se describe la petición y la respuesta de cancelación de una reserva de actividad en el sistema.

Request

Campo Cardinalidad Descripción
CancelActivityRequest 1 Elemento root de la petición de cancelación de actividades. Misma estructura que la petición de Precancel

Response

Campo Cardinalidad Descripción
CancelActivityResponse 1 Elemento root de la respuesta de cancelación de actividades. Misma estructura que la petición de Precancel

Ejemplo request

Ejemplo response