# API Motor de reservas vehículos/alojamientos

# 1. 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 (opens new window) 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.

# 1.1 Credenciales

Consulta el funcionamiento de las credenciales con API Key del motor de reservas para ver cómo funciona la autenticación en el acceso a las APIs.

# 1.2 URL base

Cada una de las cuentas de Mybooking son accesible a través de un subdominio único id de cliente. Si el id de cliente es rentpepe la URL base para realizar las peticiones será:

https://rentpepe.mybooking.es

# 1.3 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.

# 2. Buscador

# 2.1 GET Sucursales

GET /api/booking/frontend/rental-locations

Obtiene las sucurales

WARNING

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

TIP

200

# 2.2 GET Lugares de entrega

GET /api/booking/frontend/pickup-places

Obtiene los lugares de entrega de los vehículos

WARNING

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

TIP

200

# 2.3 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

WARNING

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

TIP

200

# 2.4 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

TIP

200

# 2.5 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

TIP

200

# 2.6 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

TIP

200

# 2.7 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

TIP

200

# 2.8 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

TIP

200

# 3. Proceso de reserva

# 3.1 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

TIP

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

TIP

200

# 3.2 GET Obtener el carrito de reserva

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

Permite obtener el carrito de reserva

TIP

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

TIP

200

Resultado

Error

WARNING

404 Carrito de reserva no existe

# 3.3 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

TIP

200

Resultado

Error

WARNING

404 Carrito de reserva no existe

# 3.4 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

TIP

200

Resultado

Error

WARNING

404 Carrito de reserva no existe

# 3.5 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

TIP

200

Resultado

Error

WARNING

404 Carrito de reserva no existe

# 3.6 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

TIP

200

Resultado

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

Error

WARNING

404 Carrito de reserva no existe

# 4. Conexión con la pasarela de pago

# 4.1 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

# 5. Consultar reserva

# 5.1 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

TIP

200

# 5.2 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: