# API reservas y contratos

# 1. Introducción

Bienvenido a la API de reservas y contratos de Mybooking. Este API permite extraer las reservas y contratos registradas en Mybooking para poder procesarlas y crear dashboards.

# 1.1 Credenciales

Consulta el funcionamiento de las credenciales con API Key y Secret Key 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

# 2. Modelo de datos

# Objecto Booking

# Atributos


id number

Identificador de la reserva/contrato.


object string

Tipo de objeto, "reservation" representa una reserva/contrato


status string

Estado de la reserva. Los valores posibles son:

  • pending_confirmation Pendiente de confirmar
  • confirmed Confirmada
  • in_progress En curso. Contrato abierto
  • done Finalizado. Contrato cerrado.
  • cancelled Cancelado.

date_from string

Fecha de inicio / entrega. Formato AAAA-MM-DD


time_from string

Hora de inicio / entrega. Formato HH:MM


pickup_place string

Nombre del lugar de entrega


pickup_place_id number

Identificador del lugar de entrega


date_to string

Fecha de fin / devolución. Formato AAAA-MM-DD


time_to string

Hora de fin / devolución. Formato HH:MM


return_place string

Nombre del lugar de devolución


return_place_id number

Identificador del lugar de devolución


customer_type string

Tipo de cliente. Los valores posibles son:

  • individual Persona física
  • legal_entity Empresa
  • group_company Empresa del grupo
  • internal_department Departamento interno

customer_id number

Identificador del cliente


customer_fullname string

Nombre completo del cliente


customer_email string

Correo electrónico del cliente


customer_phone string

Teléfono del cliente


customer_document_id string

NIF/Pasaporte del cliente


rental_location_code string

Código de la sucursal


rental_storage_id number

Identificador del grupo de sucursales (concesionarios)


sales_channel_code string

Código del canal de venta


agency_id number

Idenficicador del agencia online a través de la que cual se ha creado la reserva


agency_reservation_id string

Número de la reserva para la agencia online


agent_id number

Idenficicador del comisionista


agent_comission_calculation string

Cálculo de la comisión. Los valores posibles son:

  • fixed_amount Importe fijo
  • percentage Porcentaje

agent_comission_fixed_amount string

Importe fijo de la comisión. Formato NN.NN


agent_comission_percentage string

Porcentaje de la comisión. Formato NN.NN


agent_comission_base_amount string

Base para el cálculo de la comisión. Formato NN.NN


agent_comission_total string

Importe de la comisión. Formato NN.NN


agent_comission_paid boolean

Indica si la comisión se ha liquidado al comisionista o no


agent_comission_payment_date string

Fecha de pago de la comisión. Formato AAAA-MM-DD


agent_comission_prepaid_amount string

Importe prepagado al comisionista. Formato NN.NN


customer_language string

Idioma del cliente. Código ISO 639-1 de 2 caracteres


days number

Días de tarificación


hours number

Horas de tarificación


minutes number

Minutos de tarificación


item_cost string

Coste del recurso o vehículo. Formato NN.NN


extras_cost string

Coste de los extras. Formato NN.NN


item_cost string

Coste del recurso o vehículo. Formato NN.NN


time_from_cost string

Suplemento hora de entrega. Formato NN.NN


time_to_cost string

Suplemento hora de devolución. Formato NN.NN


pickup_place_cost string

Suplemento lugar de entrega. Formato NN.NN


return_place_cost string

Suplemento lugar de devolución. Formato NN.NN


driver_age_cost string

Suplemento edad del conductor. Formato NN.NN


category_supplement_1_cost string

Suplemento extra vinculado al vehículo o servicio. Formato NN.NN


category_supplement_2_cost string

Suplemento extra vinculado al vehículo o servicio. Formato NN.NN


category_supplement_3_cost string

Suplemento extra vinculado al vehículo o servicio. Formato NN.NN


supplement_1_cost string

Suplemento extra. Formato NN.NN


supplement_2_cost string

Suplemento extra. Formato NN.NN


supplement_3_cost string

Suplemento extra. Formato NN.NN


total_cost string

Coste total. Formato NN.NN


product_deposit_cost string

Importe de la fianza/franquicia del vehículo. Formato NN.NN


product_guarantee_cost string

Importe de la garantía del vehículo. Formato NN.NN


driver_age_deposit string

Fianza o depósito por la edad del conductor. Formato NN.NN


product_deposit_reduction_amount string

Reducción del importe de la fianza/franquicia del vehículo. Formato NN.NN


product_guarantee_reduction_amount string

Reducción del importe de la garantía del vehículo. Formato NN.NN


total_deposit string

Total de la fianza + garantía. Formato NN.NN


total_paid string

Total pagado. Formato NN.NN


total_pending string

Importe pendiente de pago. Formato NN.NN


reservation_lines array

Array de objetos BookingLine que representan los servicios contratados

# Objecto BookingLine

# Atributos


id number

Identificador de la línea reserva/contrato.


object string

Tipo de objeto, "reservation_line" representa una reserva/contrato


item_id string

Código de la categoría (BookingCategory) contratada


item_description string

Nombre o descripción de la categoría (BookingCategory) contratada


item_unit_cost_base string

Coste inicial de 1 unidad contratada (BookingCategory). Es el coste en el momento de la creación del contrato para las fechas seleccionadas de inicio. Formato NN.NN


item_unit_cost string

Coste de 1 unidad contratada (para todos los días). Formato NN.NN


item_cost string

Coste de todas las unidades contratadas (para todos los días). Formato NN.NN


quantity number

Número de unidades contratadas


product_deposit_unit_cost string

Importe de la fianza / franquicia de 1 unidad contratada (para todos los días). Formato NN.NN


product_deposit_cost string

Importe de la fianza / franquicia de todas las unidades contratadas (para todos los días). Formato NN.NN


category_supplement_1_unit_cost string

Importe suplemento 1 para 1 unidad contratada (para todos los días). Formato NN.NN


category_supplement_1_cost string

Importe suplemento 1 para todas las unidades contratada (para todos los días). Formato NN.NN


category_supplement_2_unit_cost string

Importe suplemento 2 para 1 unidad contratada (para todos los días). Formato NN.NN


category_supplement_2_cost string

Importe suplemento 2 para todas las unidades contratada (para todos los días). Formato NN.NN


category_supplement_3_unit_cost string

Importe suplemento 3 para 1 unidad contratada (para todos los días). Formato NN.NN


category_supplement_3_cost string

Importe suplemento 3 para todas las unidades contratada (para todos los días). Formato NN.NN


reservation_lines array

Array de objetos BookingLineResource que representan los recursos o vehículos

# Objecto BookingLineResource

# Atributos


id number

Identificador del recurso de la reserva/contrato.


object string

Tipo de objeto, "reservation_line_resource" representa el recurso de la reserva/contrato


reference string

Identificador del recurso o vehículo (BookingItem)


stock_plate string

Número de matrícula del recurso o vehículo (BookingItem)

# Objecto BookingExtra

# Atributos

id number

Identificador del extra de la reserva/contrato.


object string

Tipo de objeto, "reservation_extra" representa un extra de la reserva/contrato


extra_id string

Código del extra (BookingExtra)


extra_description string

Nombre o descripción del extra (BookingCategory)


extra_unit_cost string

Coste de 1 unidad (para todos los días). Formato NN.NN


extra_cost string

Coste de todas las unidades contratadas (para todos los días). Formato NN.NN


quantity number

Número de unidades

# Objecto BookingCharge

# Atributos


id number

Identificador del cobro de la reserva/contrato.


object string

Tipo de objeto, "charge" representa un cobro de la reserva/contrato

    {
      "id": 2275,
      "object": "reservation",
      "status": "confirmed",
      "date_from": "2023-06-20",
      "time_from": "09:00",
      "pickup_place": "Aeropuerto de Mahón",
      "pickup_place_id": 2,
      "date_to": "2023-06-22",
      "time_to": "09:00",
      "return_place": "Aeropuerto de Mahón",
      "return_place_id": 2,
      "customer_type": "individual",
      "customer_id": 202,
      "customer_fullname": "Brad Stark",
      "customer_email": "info@mybooking.es",
      "customer_phone": "666101010",
      "customer_document_id": "55555555R",
      "rental_location_code": "MAHON",
      "rental_storage_id": 3,
      "sales_channel_code": null,
      "agency_id": null,
      "agency_reservation_id": null,
      "agent_id": null,
      "agent_comission_calculation": null,
      "agent_comission_fixed_amount": "0.0",
      "agent_comission_percentage": "0.0",
      "agent_comission_base_amount": "0.0",
      "agent_comission_total": "0.0",
      "agent_comission_paid": false,
      "agent_comission_payment_date": null,
      "agent_comission_prepaid_amount": "0.0",
      "customer_language": "es",
      "days": 2,
      "hours": 0,
      "minutes": 0,
      "item_cost": "90.0",
      "extras_cost": "10.0",
      "time_from_cost": "0.0",
      "time_to_cost": "0.0",
      "pickup_place_cost": "10.0",
      "return_place_cost": "10.0",
      "driver_age_cost": "0.0",
      "category_supplement_1_cost": "0.0",
      "category_supplement_2_cost": "0.0",
      "category_supplement_3_cost": "0.0",
      "supplement_1_cost": "0.0",
      "supplement_2_cost": "0.0",
      "supplement_3_cost": "0.0",
      "total_cost": "120.0",
      "product_deposit_cost": "0.0",
      "product_guarantee_cost": "0.0",
      "driver_age_deposit": "0.0",
      "product_deposit_reduction_amount": "0.0",
      "product_guarantee_reduction_amount": "0.0",
      "total_deposit": "0.0",
      "total_paid": "120.0",
      "total_pending": "0.0",
      "reservation_lines": [
        {
          "id": 3197,
          "object": "reservation_line",
          "item_id": "B",
          "item_description": "Grupo B",
          "item_unit_cost_base": "60.0",
          "item_unit_cost": "90.0",
          "item_cost": "90.0",
          "quantity": 1,
          "product_deposit_unit_cost": "0.0",
          "product_deposit_cost": "0.0",
          "category_supplement_1_unit_cost": "0.0",
          "category_supplement_1_cost": "0.0",
          "category_supplement_2_unit_cost": "0.0",
          "category_supplement_2_cost": "0.0",
          "category_supplement_3_unit_cost": "0.0",
          "category_supplement_3_cost": "0.0",
          "reservation_line_resources": [
            {
              "id": 3203,
              "object": "reservation_line_resource",
              "reference": "5510KNG",
              "stock_plate": "5510KNG"
            }
          ]
        }
      ],
      "reservation_extras": [
        {
          "id": 703,
          "object": "reservation_extra",
          "extra_id": "SEGURO-EXTRA",
          "extra_description": "Seguro Extra",
          "extra_unit_cost": "10.0",
          "quantity": 1,
          "extra_cost": "10.0"
        }
      ],
      "charges": [
        {
          "id": 2638,
          "object": "charge",
          "date": "2023-06-16T04:37:27.000+00:00",
          "amount": "45.0",
          "currency": "EUR",
          "payment_method_id": "redsys256"
        },
        {
          "id": 2639,
          "object": "charge",
          "date": "2023-06-16T04:40:12.000+00:00",
          "amount": "45.0",
          "currency": "EUR",
          "payment_method_id": "redsys256"
        },
        {
          "id": 2644,
          "object": "charge",
          "date": "2023-06-16T11:45:17.000+00:00",
          "amount": "30.0",
          "currency": "EUR",
          "payment_method_id": "redsys256"
        }
      ]
    }

# 3. API

# 3.1 Obtener reservas

GET /api/v1/integration/reservations

Obtiene los contratos de alquiler.

El volumen de datos que puede llegar a devolver este end-point puede ser demasiado grande para obtenerlos en una única petición. Por esto, se ha implementado con un sistema de paginación que permite ir obtiendo los datos en grupos más reducidos. De forma predeterminada obtiene 100 elementos y retorna el número total de forma que permite implementar un sistema de navegación.

# Petición

# 3.2 Obtener una reserva

GET /api/v1/integration/reservation/:id

Obtiene un contrato de alquiler.

# 3.3 Resumen de reservas (versión extendida)

GET /api/booking/reservation-report

Obtiene los contratos de alquiler.

El volumen de datos que puede llegar a devolver este end-point puede ser demasiado grande para obtenerlos en una única petición. Por esto, se ha implementado con un sistema de paginación que permite ir obtiendo los datos en grupos más reducidos. De forma predeterminada obtiene los 10 últimos contratos y retorna el número total de contratos de forma que permite implementar un sistema de navegación.

# Petición

# Respuesta de la petición