# API analítica
# 1. Introducción
Bienvenido a la API de analítica de Mybooking. Este API permite extraer información de Mybooking para poder procesar en sistemas externos 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
# 1.3 Modelo de datos y características
# 2. API
# 2.1 Facturación de la flota o recursos
GET /api/booking/analysis/products-billing
Obtiene la facturación de los bienes o recursos de un año desglosados mes a mes.
# Petición
Parámetro | Descripción | Detalle | |
---|---|---|---|
year | Año | Año del resumen de facturación (4 cifras) | Obligatorio |
report_type | Tipo de report | Obligatorio | |
group_entity | Agrupación de los resultados | rental_storage (Grupo sucursales) rental_location (Sucursal) | Obligatorio |
rental_storage_id | Código grupo de sucursales | Si group_entity es rental_storage | Opcional |
rental_location_code | Código sucursal | Si group_entity es rental_location | Opcional |
customer_type | Tipo de cliente | all (todos) individual (p. física) legal_entity (p. jurídica) | Opcional |
Tipos de report
- Facturación: monthly_billing_report
- Facturación sin impuestos: monthly_billing_without_taxes_report
- Días alquilados: number_of_days_report
- Ocupación: monthly_occupation_report
- Número de contratos: monthly_contracts_report
- Kilómetros: monthly_usage_report
# Script para obtener la firma en Ruby
require 'openssl'
SECRET_KEY='MI-SECRET-KEY'
url='/api/booking/analysis/products-billing?year=2022&report_type=monthly_billing_without_taxes_report'
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/analysis/products-billing?year=2022&report_type=monthly_billing_without_taxes_report'
# Respuesta de la petición
Devuelve un JSON con los siguientes atributos
Atributo | Descripción | Detalle |
---|---|---|
data | Detalle (1 x bien) | array[Object] |
1 | Información de Enero | |
2 | Información de Febrero | |
3 | Información de Marzo | |
4 | Información de Abril | |
5 | Información de Mayo | |
6 | Información de Junio | |
7 | Información de Julio | |
8 | Información de Agosto | |
9 | Información de Septiembre | |
10 | Información de Octubre | |
11 | Información de Noviembre | |
12 | Información de Diciembre | |
total | Suma de los 12 meses | |
id | Referencia | |
stock_plate | Matrícula | |
stock_model | Marca y modelo | |
category_family_name | Código de la familia | |
category_code | Código categoría | |
purchasable_adquisition_date | Fecha adquisición | |
group_field_name | Código de la sucursal o del grupo de sucursales en función de group_entity | |
summary | Resumen económico | |
1 | Total Enero | |
2 | Total Febrero | |
3 | Total Marzo | |
4 | Total Abril | |
5 | Total Mayo | |
6 | Total Junio | |
7 | Total Julio | |
8 | Total Agosto | |
9 | Total Septiembre | |
10 | Total Octubre | |
11 | Total Noviembre | |
12 | Total Diciembre | |
total | Suma de los 12 meses | |
id | Literal "TOTAL" | |
stock_plate | Literal "TOTAL" | |
stock_model | En blanco | |
total | Número total de bienes |
{
"data": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": "39.9",
"8": "47.5",
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"id": "6-group_field-3",
"stock_plate": "0001FFF",
"stock_model": "TOYOTA AYGO",
"category_family_name": null,
"category_code": "A",
"characteristic_1": "GASOLINA",
"characteristic_2": "MANUAL",
"characteristic_3": "320932093203",
"characteristic_4": "BLANCO",
"purchasable_adquisition_date": "2022-07-21",
"group_field_name": "MAHON",
"total": "87.4",
"own_property": true
},
],
"summary": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": "39.9",
"8": "392.5",
"9": "76.0",
"10": "226.25",
"11": 0,
"12": 0,
"id": "TOTAL",
"stock_plate": "TOTAL",
"stock_model": "",
"total": "734.65",
"own_property": null
}
],
"total": 3
}
# 2.2 Facturación por extras
GET /api/booking/analysis/extras-billing
Obtiene la facturación de los extras de un año desglosados mes a mes.
# Petición
Parámetro | Descripción | Detalle | |
---|---|---|---|
year | Año | Año del resumen de facturación (4 cifras) | Obligatorio |
report_type | Tipo de report | Impuestos (extras_with_taxes) Sin impuestos (extras_without_taxes) | Obligatorio |
rental_location_code | Código sucursal | Si group_entity es rental_location | Opcional |
# Script para obtener la firma en Ruby
require 'openssl'
SECRET_KEY='MI-SECRET-KEY'
url='/api/booking/analysis/extras-billing?year=2022&report_type=extras_without_taxes'
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/analysis/extras-billing?year=2022&report_type=extras_without_taxes'
# Respuesta de la petición
Devuelve un JSON con los siguientes atributos
Atributo | Descripción | Detalle |
---|---|---|
data | Detalle (1 x bien) | array[Object] |
1 | Información de Enero | |
2 | Información de Febrero | |
3 | Información de Marzo | |
4 | Información de Abril | |
5 | Información de Mayo | |
6 | Información de Junio | |
7 | Información de Julio | |
8 | Información de Agosto | |
9 | Información de Septiembre | |
10 | Información de Octubre | |
11 | Información de Noviembre | |
12 | Información de Diciembre | |
total | Suma de los 12 meses | |
id | Código del extra | |
name | Nombre del extra | |
childs | Desglose por sucursal - array[Object] | |
- 1 | Información de Enero | |
- 2 | Información de Febrero | |
- 3 | Información de Marzo | |
- 4 | Información de Abril | |
- 5 | Información de Mayo | |
- 6 | Información de Junio | |
- 7 | Información de Julio | |
- 8 | Información de Agosto | |
- 9 | Información de Septiembre | |
- 10 | Información de Octubre | |
- 11 | Información de Noviembre | |
- 12 | Información de Diciembre | |
- total | Suma de los 12 meses | |
- id | Código del extra + Código Sucursal | |
- parent | Código del extra | |
- name | Código de la sucursal | |
summary | Resumen económico | |
1 | Total Enero | |
2 | Total Febrero | |
3 | Total Marzo | |
4 | Total Abril | |
5 | Total Mayo | |
6 | Total Junio | |
7 | Total Julio | |
8 | Total Agosto | |
9 | Total Septiembre | |
10 | Total Octubre | |
11 | Total Noviembre | |
12 | Total Diciembre | |
total | Suma de los 12 meses | |
id | Literal "TOTAL" | |
name | Literal "TOTAL" | |
total | Número de extras | Número de extras con facturación > 0 |
{
"data": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": "6.0",
"9": 0,
"10": "12.0",
"11": 0,
"12": 0,
"id": "silla",
"name": "Silla para niño",
"childs": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": "6.0",
"9": 0,
"10": "12.0",
"11": 0,
"12": 0,
"id": "silla_MAHON",
"parent": "silla",
"name": "MAHON",
"total": "18.0"
}
],
"total": "18.0"
}
],
"summary": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": "9.0",
"8": "30.0",
"9": "9.0",
"10": "36.0",
"11": 0,
"12": 0,
"id": "TOTAL",
"name": "TOTAL",
"total": "84.0"
}
],
"total": 2
}
# 2.3 Facturación por suplementos
GET /api/booking/analysis/supplements-billing
Obtiene la facturación de los suplementos de un año desglosados mes a mes. Los suplementos son complementos que se aplican automáticamente por uso, combustible u horario o puntos de entrega y devolución.
# Petición
Parámetro | Descripción | Detalle | |
---|---|---|---|
year | Año | Año del resumen de facturación (4 cifras) | Obligatorio |
report_type | Tipo de report | Imp. (supplements_with_taxes) Sin imp. (supplements_without_taxes) | Obligatorio |
rental_location_code | Código sucursal | Si group_entity es rental_location | Opcional |
# Script para obtener la firma en Ruby
require 'openssl'
SECRET_KEY='MI-SECRET-KEY'
url='/api/booking/analysis/supplements-billing?year=2022&report_type=supplements_without_taxes'
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/analysis/supplements-billing?year=2022&report_type=supplements_without_taxes'
# Respuesta de la petición
Devuelve un JSON con los siguientes atributos
Atributo | Descripción | Detalle |
---|---|---|
data | Detalle (1 x bien) | array[Object] |
1 | Información de Enero | |
2 | Información de Febrero | |
3 | Información de Marzo | |
4 | Información de Abril | |
5 | Información de Mayo | |
6 | Información de Junio | |
7 | Información de Julio | |
8 | Información de Agosto | |
9 | Información de Septiembre | |
10 | Información de Octubre | |
11 | Información de Noviembre | |
12 | Información de Diciembre | |
total | Suma de los 12 meses | |
id | Nombre del suplemento | |
childs | Desglose por sucursal - array[Object] | |
- 1 | Información de Enero | |
- 2 | Información de Febrero | |
- 3 | Información de Marzo | |
- 4 | Información de Abril | |
- 5 | Información de Mayo | |
- 6 | Información de Junio | |
- 7 | Información de Julio | |
- 8 | Información de Agosto | |
- 9 | Información de Septiembre | |
- 10 | Información de Octubre | |
- 11 | Información de Noviembre | |
- 12 | Información de Diciembre | |
- total | Suma de los 12 meses | |
- id | Nombre del suplemento + Código de la sucursal | |
- parent | Nombre del suplemento | |
- name | Código de la sucursal | |
summary | Resumen económico | |
1 | Total Enero | |
2 | Total Febrero | |
3 | Total Marzo | |
4 | Total Abril | |
5 | Total Mayo | |
6 | Total Junio | |
7 | Total Julio | |
8 | Total Agosto | |
9 | Total Septiembre | |
10 | Total Octubre | |
11 | Total Noviembre | |
12 | Total Diciembre | |
total | Suma de los 12 meses | |
id | Literal "TOTAL" | |
name | Literal "TOTAL" | |
total | Número de extras | Número de extras con facturación > 0 |
{
"data": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": "35.0",
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"id": "lugar de entrega",
"childs": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": "35.0",
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"id": "lugar de entrega_MAHON-PUERTO",
"name": "MAHON-PUERTO",
"parent": "lugar de entrega",
"total": "35.0"
}
],
"total": "35.0"
}
],
"summary": [
{
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": "35.0",
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"id": "TOTAL",
"total": "35.0"
}
],
"total": 1
}
# 2.4 Gastos de la flota o recursos
GET /api/booking/booking-item/expenses
Obtiene los gastos de la flota o recursos de un año detallados.
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 | |
---|---|---|---|
year | Año | Año del resumen de facturación (4 cifras) | Obligatorio |
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 20 x defecto | Opcional |
date_from | Año | Fecha de inicio (AAAA-MM-DD) | Opcional |
date_to | Año | Fecha de fin (AAAA-MM-DD) | Opcional |
rental_storage_id | Código grupo de sucursales | Filtro por grupo de sucursales | Opcional |
rental_location_code | Código sucursal | Filtro por sucursal | Opcional |
# Script para obtener la firma en Ruby
require 'openssl'
SECRET_KEY='MI-SECRET-KEY'
url='/api/booking/booking-item/expenses?year=2022'
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/booking-item/expenses?year=2022'
# Respuesta de la petición
Devuelve un JSON con los siguientes atributos
Atributo | Descripción | Detalle |
---|---|---|
data | Detalle (1 x bien) | array[Object] |
booking_item_reference | Referencia | |
stock_plate | Matrícula | |
stock_model | Marca y modelo | |
rental_storage_id | Código grupo de sucursales imputación de gastos | |
rental_location_code | Código sucursal imputación de gastos | |
stock_plate | Matrícula | |
category_code | Código categoría | |
category_name | Nombre categoría | |
concept_id | Código concepto gastos | |
concept | Nombre concepto gastos | |
total_without_taxes | Total sin impuestos | |
discount | Descuento | |
subtotal | Subtotal | |
total_taxes | Total impuestos | |
total | Total | |
summary | Resumen de los gastos | |
total_without_taxes | Total sin impuestos | |
discount | Descuento | |
subtotal | Subtotal | |
total_taxes | Total impuestos | |
total | Total | |
total_rows | Número total de bienes | |
total | Número total de bienes |
{
"data": [
{
"booking_item_reference": "6",
"stock_model": "TOYOTA AYGO",
"stock_plate": "0001FFF",
"characteristic_1": "GASOLINA",
"characteristic_2": "MANUAL",
"characteristic_3": "320932093203",
"characteristic_4": "BLANCO",
"category_code": "A",
"category_name": "Grupo A",
"expense_account_id": 112,
"concept": "Renting/Gastos",
"concept_id": null,
"category_family_name": null,
"id": null,
"date": "2022-10-01",
"description": null,
"reference": null,
"total_without_taxes": "120.0",
"discount": "0.0",
"subtotal": "120.0",
"total_taxes": "25.2",
"total": "145.2",
"rental_location_code": "MAHON",
"rental_location_name": "OFICINA MAHÓN",
"rental_storage_id": 3,
"rental_storage_name": "MAHON"
}
],
"summary": {
"total_without_taxes": "2645.447",
"discount": "0.0",
"subtotal": "2645.447",
"total_taxes": "555.54387",
"total": "3200.99087",
"total_rows": 16
},
"total": 16
}