API Motor de reservas vehículos/alojamientos

Introducción

Bienvenido a la API del motor de reservas para el alquiler de vehículos/alojamientos de Mybooking.

Este API tiene tiene la funcionalidad necesaria para implementar el proceso de alquiler de vehículos en un sitio web. Obtener los lugares de entrega y devolución, realizar la búsqueda de vehículos, realizar la reserva y completar los datos del contrato posteriormente.

Está diseñada de forma que se pueda utilizar tanto desde el navegador con JAMStack como desde su lenguaje preferido en el lado del servidor.

El proceso de reserva está gestionado en el servidor y se lleva a cabo de forma similar a como se realiza en un e-commerce. Usamos un carrito de la reserva que se almacena en el servidor con toda la información de la reserva en curso.

URL Base

https://micuenta.mybooking.es

Api Key

Todas las llamadas al API tendrán un parámetro en la URL, query string, api_key con el API Key facilitada. Esto permite identificar el origen de la petición. Si no se facilita el parámetro o este es erróneo el sistema devuelve un error 403

Idioma

Todas las llamadas al API pueden incorporar un parámetros, lang, con el código ISO 639-1 del idioma, 2 caracteres para recuperar los datos en el idioma configurado.

Buscador

GET Sucursales

GET /api/booking/frontend/rental-locations

Obtiene las sucurales

Sólo se usa para aquellos negocios en los que se gestionan múltiples sucursales sin lugares de entrega y devolución.

Query String

Parámetro Descripción Detalle
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

GET Lugares de entrega

GET /api/booking/frontend/pickup-places

Obtiene los lugares de entrega de los vehículos

Se utiliza para aquellos negocios en los que se gestionan lugares de entrega y devolución.

Query String

Parámetro Descripción Detalle
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

GET Lugares de devolución

GET /api/booking/frontend/return-places

Obtiene los lugares de devolución de los vehículos a partir del lugar de entrega

Se utiliza para aquellos negocios en los que se gestionan lugares de entrega y devolución.

Query String

Parámetro Descripción Detalle
pickup_place Lugar entrega Nombre del lugar de entrega (URL encoded) Requerido
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

GET Fechas entrega y devolución

GET /api/booking/frontend/dates

Obtiene las fechas activas para mostrar en el calendario de búsqueda

Se pasa un rango de fechas, mes que se muestra en el caledario y un discriminador, action, indicando si deseamos obtener las fechas disponibles para entrega o devolución

Query String

Parámetro Descripción Detalle
from Fecha inicio Formato 'yyyy-mm-dd' Requerido
to Fecha fin Formato 'yyyy-mm-dd' Requerido
action Tipo 'delivery' entregas 'collection' devoluciones Requerido
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

GET Horarios de entrega y devolución

GET /api/booking/frontend/times

Obtiene los horarios de entrega y devolución de los vehículos para una fecha y un lugar de entrega o devolución

Query String

Parámetro Descripción Detalle
date Fecha Formato 'yyyy-mm-dd' Requerido
place Lugar Nombre del lugar de entrega (URL encoded) Requerido
action Tipo 'delivery' entregas 'collection' devoluciones Requerido
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

GET Categorías / Familias

GET /api/booking/frontend/categories

Obtiene las familias de productos

Query String

Parámetro Descripción Detalle
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

GET Reglas edad del conductor

GET /api/booking/frontend/driver-age-rules

Obtiene las reglas para las edades de los conductores

Query String

Parámetro Descripción Detalle
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

POST Código de promoción

POST /api/check-promotion-code

Comprueba el código de promoción para el período de la reserva

Query String

Parámetro Descripción Detalle
code Código promoción Registrado en el sistema Requerido
from Fecha inicio reserva Formato 'yyyy-mm-dd' Requerido
to Fecha fin reserva Formato 'yyyy-mm-dd' Requerido
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

Proceso de reserva

POST Crear carrito de reserva

POST /api/booking/frontend/shopping-cart

POST /api/booking/frontend/shopping-cart/:free_access_id

Inicia el proceso de reserva seleccionado con el lugar y las fechas de entrega y devolución

También permite cambiar los criterios de búsqueda si usamos el parámetro :free_access_id en la URL

Path Parameters

Parámetro Descripción Detalle
free_access_id Identificador del carrito de la compra obtenido al iniciar el proceso de venta String Opcional

Query String

Parámetro Descripción Detalle
include_products Incluye productos Incluye productos con tarifa Opcional
include_extras Incluye extras Incluye extras con tarifa Opcional
include_coverages Incluye coberturas Incluye cuberturas con tarifa Opcional
offset Paginación Desplazamiento Opcional
limit Paginación Número de resultados Opcional
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Request Body

Resultado

Success

200

GET Obtener el carrito de reserva

GET /api/booking/frontend/shopping-cart/{free_access_id}

Permite obtener el carrito de reserva

Podemos usarlo para paginar los resultados

Path Parameters

Parámetro Descripción Detalle
free_access_id Identificador del carrito de la compra obtenido al iniciar el proceso de venta String Obligatorio

Query String

Parámetro Descripción Detalle
include_products Incluye productos Incluye productos con tarifa Opcional
include_extras Incluye extras Incluye extras con tarifa Opcional
include_coverages Incluye coberturas Incluye cuberturas con tarifa Opcional
offset Paginación Desplazamiento Opcional
limit Paginación Número de resultados Opcional
lang Idioma Código ISO 639-1 (en,es,it,...) Opcional

Resultado

Success

200

Resultado

Error

404 Carrito de reserva no existe

POST Seleccionar vehículo

POST /api/booking/frontend/shopping-cart/{free_access_id}/set-product

Permite añadir una categoría de vehículos al carrito de reserva

Path Parameters

Parámetro Descripción Detalle
free_access_id Identificador del carrito de la compra obtenido al iniciar el proceso de venta String Obligatorio

Query String

Parámetro Descripción Detalle
lang Idioma String Código ISO 639-1 (en,es,it, …) Opcional

Request Body:

Resultado

Success

200

Resultado

Error

404 Carrito de reserva no existe

POST Añadir/modificar extra

POST /api/booking/frontend/shopping-cart/{free_access_id}/set-extra

Permite añadir un extra a la reserva o modificar la cantidad

Path Parameters

Parámetro Descripción Detalle
free_access_id Identificador del carrito de la compra obtenido al iniciar el proceso de venta String Obligatorio

Query String

Parámetro Descripción Detalle
lang Idioma String Código ISO 639-1 (en,es,it, …) Opcional

Request Body:

Parámetro Descripción Detalle
extra Código del extra String Código Obligatorio
quantity Cantidad del producto Integer Opcional

Resultado

Success

200

Resultado

Error

404 Carrito de reserva no existe

POST Eliminar extra

POST /api/booking/frontend/shopping-cart/{free_access_id}/set-extra

Permite eliminar un extra

Path Parameters

Parámetro Descripción Detalle
free_access_id Identificador del carrito de la compra obtenido al iniciar el proceso de venta String Obligatorio

Query String

Parámetro Descripción Detalle
lang Idioma String Código ISO 639-1 (en,es,it, …) Opcional

Request Body:

Parámetro Descripción Detalle
extra Código del extra String Obligatorio

Resultado

Success

200

Resultado

Error

404 Carrito de reserva no existe

POST Checkout carrito reserva

POST /api/booking/frontend/shopping-cart/{free_access_id}/checkout

Permite crear la reserva a partir del carrito de la reserva

Path Parameters

Parámetro Descripción Detalle
free_access_id Identificador del carrito de la compra obtenido al iniciar el proceso de venta String Obligatorio

Query String

Parámetro Descripción Detalle
lang Idioma String Código ISO 639-1 (en,es,it, …) Opcional

Request Body:

Resultado

Success

200

Resultado

En el caso que la operación se lleve a cabo correctamente se puede hacer un POST a /reserva/pagar

Error

404 Carrito de reserva no existe

Conexión con la pasarela de pago

POST /reserva/pagar

POST /reserva/pagar

Permite conectar con la pasarela de pago para realizar el pago

Se ha de hacer un POST de un formulario con los campos indicados. Nuestra plataforma preparará la petición para conectar con la pasarela de pago y devolverá el código HTML que realizará la conexión con la misma.

Cuerpo:

Parámetro Descripción Detalle
id Free Access Id de la reserva String Obligatorio
payment Cantidad a pagar. Los posibles valores son:
  • deposit
  • total
  • pending
String Obligatorio
payment_method Forma de pago. Depende las plataformas de pago configurada.
  • redsys256
  • webpay
  • paypal_standard
  • addon_payments
String Obligatorio

Consultar reserva

GET Reserva

GET /api/booking/frontend/booking/{free_access_id}

Permite consultar una reserva

Parámetros de PATH:

Parámetro Descripción Detalle
free_access_id Identificador de la reserva obtenido al realizar el checkout del carrito de la reserva.
Se trata de un hash que identifica de forma única cada reserva.
String Obligatorio

Query String:

Parámetro Descripción Detalle
lang Idioma String Código ISO 639-1 (en,es,it, …) Opcional

Resultado

Success

200

PUT Actualizar reserva

PUT /api/booking/frontend/booking/{free_access_id}

Permite actualizar la información necesaria de la reserva para el contrato

Parámetros de PATH:

Parámetro Descripción Detalle
free_access_id Identificador de la reserva obtenido al realizar el checkout del carrito de la reserva. Se trata de un hash que identifica de forma única cada reserva. String Obligatorio

Query String:

Parámetro Descripción Detalle
lang Idioma String Código ISO 639-1 (en,es,it, …) Opcional

Request Body: