Comenzando
Incluye estos encabezados en cada solicitud después de iniciar sesión:
Accept: application/json
Content-Type: application/json
Authorization: Bearer {token}
Iniciar sesión — obtener token
Autenticar con credenciales de la flota para recibir un token Bearer para solicitudes posteriores.
Solicitud
{
"email": "fleet@example.com",
"password": "your-password"
}
Respuesta 200
{
"success": true,
"token": "1|xxxxxxxxxxxxxxxxxxxx",
"user": {
"id": 123,
"name": "Malaga Fleet",
"email": "fleet@example.com",
"is_driver": false,
"is_fleet": true
}
}
Listar reservas asignadas a la flota
Parámetros de consulta opcional
statusall o assigned, accepted, onroute, arrived, onboard, completed, canceled, noshow, rejected, market
from_dateYYYY-MM-DD
to_dateYYYY-MM-DD
per_page1–100 (predeterminado 20)
Ejemplo
https://7transfers.com/api/driver/bookings?status=assigned&from_date=2026-04-11&per_page=50
Respuesta 200
{
"success": true,
"data": [
{
"id": 9876,
"ref_number": "T2S-12345",
"status": "assigned",
"status_label": "Assigned",
"date": "2026-04-15 10:30:00",
"from_address": "Malaga Airport (AGP)",
"to_address": "Hotel Marbella Club",
"passengers": 3,
"vehicle_list": "Business Van",
"luggage": 4,
"hand_luggage": 3,
"assigned_driver": null,
"commission": 0,
"flight_number": "FR1234",
"meet_and_greet": true,
"coordinate_start_lat": 36.6749,
"coordinate_start_lon": -4.4991,
"coordinate_end_lat": 36.5098,
"coordinate_end_lon": -4.8826
}
],
"meta": {
"current_page": 1,
"last_page": 3,
"per_page": 20,
"total": 47
}
}
Las cancelaciones no se envían a tu sistema. Incluye status=canceled (o usa status=all) en tu sondeo para detectar reservas canceladas por la oficina y elimínalas en tu lado.
Detalles de la reserva
Devuelve la reserva completa: pasajero, contacto, direcciones, coordenadas, historial de estado, botones de acción, extras (asientos para niños, silla de ruedas, tiempo de espera, etc.) y archivos adjuntos.
Los teléfonos del pasajero (contact_mobile, lead_passenger_mobile) solo se devuelven en este endpoint — nunca en el listado de reservas — y únicamente mientras la reserva está en un estado activo (accepted, onroute, arrived, onboard). Mientras la reserva sigue en assigned, o después de completada o cancelada, los campos de teléfono se devuelven como null. Acepta la reserva primero y luego consulta el detalle para obtener el teléfono.
Actualizar estado de la reserva
Solicitud
{
"status": "accepted",
"status_notes": "Nota opcional"
}
Valores de estado válidos:
accepted, rejected, onroute, arrived, onboard, noshow, completed, canceled
status_notes es obligatorio cuando el estado es rejected.
- Los estados
onroute, arrived, onboard, noshow y completed requieren una ubicación GPS reciente del conductor (en los últimos 5 minutos). Para integraciones desde oficina, usa accepted, rejected o canceled.
Una vez que la oficina ha cancelado una reserva, ya no puede reactivarse: cualquier intento de cambiar su estado (p. ej. a accepted) devuelve un error 422. Vuelve a comprobar el estado actual antes de aceptar reservas encoladas de un sondeo anterior.
Respuesta 200
{
"success": true,
"data": { "id": 9876, "status": "accepted" }
}
Listar conductores propios de la flota
Respuesta
{
"success": true,
"data": [
{ "id": 55, "name": "Juan Perez", "email": "juan@example.com" }
]
}
Asignar un conductor a una reserva
Solicitud
{
"driver_id": 55,
"commission": 10.00,
"fleet_commission": 5.00
}
Respuesta
{
"success": true,
"message": "Conductor asignado.",
"data": {
"id": 9876,
"driver_id": 55,
"driver_name": "Juan Perez",
"commission": 10.00,
"fleet_commission": 5.00
}
}
Cerrar sesión
Revoca el token Bearer actual.
Formato de error
Todos los errores devuelven JSON con un mensaje legible para humanos.
{ "success": false, "message": "Mensaje legible" }
401 Credenciales o token no válidos
403 No es usuario de flota / la reserva no pertenece a la flota
404 Reserva no encontrada
422 Error de validación o transición de estado no válida