# 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. API
# 2.1 Reservas y contratos
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
Parámetro | Descripción | Detalle | |
---|---|---|---|
page | Núm. de página | Número de la página solicitada. Valor 0 x defecto | Opcional |
page_size | Núm. de registros por página | Permite paginar para obtener todos los contratos. Valor 10 x defecto | Opcional |
search_type | Tipo de búsqueda | Básica/Textual (basic_search) - Avanzada/Filtro (advanced_search) | Opcional |
date_filter | Filtro de fechas | Creación (creation_date) Entrega (pickup_date) Dev. (return_date) | Opcional |
from | Filtro fechas (desde) | Fecha inicio para el filtro de fechas. Formato AAAA-MM-DD | Opcional |
to | Filtro fechas (hasta) | Fecha final para el filtro de fechas. Formato AAAA-MM-DD | Opcional |
# Script para obtener la firma en Ruby
require 'openssl'
SECRET_KEY='MI-SECRET-KEY'
url='/api/booking/reservation-report?page=0&page_size=10&search_type=advanced_search&date_filter=creation_date&from=2022-10-01&to=2022-10-05'
signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), SECRET_KEY, url)
# Comando CURL usando el API y la firma para realizar la petición
curl -H "Authorization: {API-KEY}:{signature}" -H "Content-Type: application/json" -X GET '/api/booking/reservation-report?page=0&page_size=10&search_type=advanced_search&date_filter=creation_date&from=2022-10-01&to=2022-10-05'
# Respuesta de la petición
Devuelve un JSON con los siguientes atributos
Atributo | Descripción | Detalle |
---|---|---|
data | Contratos | array[Object] |
id | Número del contrato | |
date_from | Fecha inicio | |
time_from | Hora de inicio | |
date_to | Fecha fin | |
time_to | Hora de fin | |
pickup_place | Punto de entrega | |
return_place | Punto de devolución | |
days | Duración en días facturados | |
hours | Duración en horas facturados | |
minutes | Duración en minutos facturados | |
contract_type_id | Código del tipo de contrato | |
contract_type_name | Nombre del tipo de contrato | |
rate_type_id | Código del tipo de tarifa | |
rate_type_name | Nombre del tipo de tarifa | |
status | Estado (pending_confirmation, confirmed, in_progress, done, cancelled) | |
total_cost | Importe total | |
total_paid | Importe pagado | |
total_pending | Importe pendiente de pago | |
creation_date | Fecha y hora de creación | |
created_by_manager | true => back-office, false => reserva recibida por la web | |
customer_type | Tipo de cliente (individual, legal_entity, internal_department, legal_entity_group_company) | |
customer_id | Identificador del cliente | |
customer_fullname | Nombre completo del cliente | |
customer_name | Nombre del cliente (persona física) | |
customer_surname | Apellidos del cliente (persona física) | |
customer_document_id | Nif/Pasaporte del cliente (persona física) | |
customer_company_name | Nombre empresa (persona jurídica) | |
customer_company_document_id | NIF empresa (persona jurídica) | |
customer_phone_prefix | Prefijo teléfono | |
customer_phone | Teléfono | |
customer_email | Correo electrónico | |
customer_name | Nombre del cliente (persona física) | |
customer_surname | Apellidos del cliente (persona física) | |
customer_document_id | Nif/Pasaporte del cliente (persona física) | |
driver_name | Nombre del conductor | |
driver_surname | Apellidos del conductor | |
driver_name | Nombre del conductor | |
driver_age | Edad del conductor | |
driver_date_of_birth | Fecha de nacimiento del conductor | |
rental_location_code | Código de la sucursal que gestiona el contrato | |
rental_location_name | Nombre de la sucursal que gestiona el contrato | |
return_rental_location_code | Código de la sucursal donde se realiza la devolución | |
rental_storage_id | Código del grupo de sucursales que gestiona el contrato | |
rental_storage_name | Nombre del grupo de sucursales que gestiona el contrato | |
sales_channel_code | Código del canal de venta de adquisición de la reserva | |
family_name | Nombre de la familia del tipo de categoría contratada | |
item_id | Código del tipo de categoría contratada | |
item_description | Nombre del tipo de categoría contratada | |
item_id | Código del tipo de categoría contratada | |
booking_item_reference | Código del vehículo | |
booking_item_stock_plate | Matrícula del vehículo | |
booking_item_km_miles_on_pickup | Km en la entrega | |
booking_item_km_miles_on_return | Km en la devolución | |
booking_item_km_miles_total | Km realizados | |
agency_id | Código de la OTA de adquisición | |
agency_name | Nombre de la OTA de adquisición | |
agent_id | Código del comisionista | |
agent_name | Nombre del comisionista | |
agent_comission_calculation | Tipo de comisión (percentage -porcentaje- o fixed_amount - importe fijo-) | |
agent_comission_fixed_amount | Importe fijo comisión | |
agent_comission_percentage | Porcentaje de comisión | |
agent_comission_base_amount | Importe base para el cálculo de la comisión | |
agent_comission_total | Importe total comisión | |
agent_comission_paid | Indica si se ha pagado o no la comisión | |
agent_comission_payment_date | Fecha de pago de la comisión | |
total | Número total contratos | Permite paginar para obtenerlos todos |
summary | Resumen contratos | [Object] |
total_cost | Importe total | |
total_paid | Importe pagado | |
total_pending | Importe pendiente de pago |
{
"data":
[
{
"id": 2234,
"customer_id": 440,
"customer_name": "Brad",
"customer_surname": "Stark",
"customer_phone_prefix": "34",
"customer_phone": "666101010",
"customer_email": "info@mybooking.es",
"customer_document_id": "55555555R",
"customer_company_name": "",
"customer_company_document_id": "",
"customer_type": "individual",
"customer_fullname": "Brad Stark",
"customer_stock_plate": null,
"customer_work_order": null,
"driver_name": "Brad",
"driver_surname": "Stark",
"driver_document_id": "55555555R",
"driver_age": 41,
"driver_date_of_birth": "1980-12-10",
"date_from": "2022-10-04",
"time_from": "07:00",
"date_to": "2022-10-07",
"time_to": "23:00",
"pickup_place": "Aeropuerto de Mahón",
"return_place": "Aeropuerto de Mahón",
"days": 4,
"hours": 0,
"minutes": 0,
"number_of_adults": 0,
"number_of_children": 0,
"number_of_adults_out": 0,
"number_of_children_out": 0,
"renewal_on_finish": false,
"with_optional_external_driver": false,
"status": "confirmed",
"total_cost": "107.0",
"total_paid": "0.0",
"total_pending": "107.0",
"payment_status": "none",
"creation_date": "2022-10-03T12:23:30.000+00:00",
"created_by_manager": true,
"pay_now": false,
"rental_location_code": "MAHON",
"rental_location_name": "OFICINA MAHÓN",
"return_rental_location_code": "MAHON",
"rental_storage_id": 3,
"rental_storage_name": "MAHON",
"sales_channel_code": null,
"agency_id": null,
"agency_reservation_id": null,
"agency_name": null,
"item_id": "B",
"item_description": "Grupo B",
"family_name": null,
"booking_item_reference": "7",
"booking_item_stock_plate_name": "6213GGG",
"booking_item_stock_plate": "6213GGG",
"booking_item_stock_reference": null,
"booking_item_km_miles_on_pickup": 0,
"booking_item_km_miles_on_return": 0,
"booking_item_km_miles_total": 0,
"billing_monthly_amount": "0.0",
"deposit_status": "",
"deposit_received": false,
"total_deposit_received_amount": "0.0",
"deposit_received_from_reservation": false,
"total_deposit_received_from_reservation_amount": "0.0",
"deposit_returned": false,
"total_deposit_returned_amount": "0.0",
"deposit_returned_to_reservation": false,
"total_deposit_returned_to_reservation_amount": "0.0",
"deposit_kept": false,
"total_deposit_kept_amount": "0.0",
"agent_id": null,
"agent_name": 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",
"rate_type_id": 1,
"rate_type_name": "Estándar",
"comments": null,
"notes": null,
"contract_type_id": 2,
"contract_type_name": "Alquiler"
}
],
"total": 8,
"summary": {
"total_cost": 698.4,
"total_paid": 490.4,
"total_pending": 208
}
}