Driver App
Overview
Sección titulada «Overview»La Driver App es una aplicación web optimizada para móvil que permite a los conductores:
- Ver su ruta del día con todos los envíos
- Marcar envíos como entregados o con incidencia
- Registrar la firma del destinatario
- Tomar foto del lugar de entrega
- Consultar el histórico de envíos entregados
URL de acceso: /logistics/driver
Autenticación del conductor
Sección titulada «Autenticación del conductor»Los conductores inician sesión con credenciales del ERP (usuario + password). Se les asigna automáticamente su ruta del día.
POST /api/auth/loginContent-Type: application/json
{ "email": "conductor@empresa.com", "password": "password123", "device_id": "device-unique-id"}Respuesta con rol de conductor:
{ "token": "...", "user": { "id": "emp_010", "name": "Carlos Conductor", "role": "driver", "vehicle_id": "veh_001" }}Ruta del día
Sección titulada «Ruta del día»Obtener ruta asignada
Sección titulada «Obtener ruta asignada»GET /api/logistics/driver/route-todayAuthorization: Bearer <token>{ "route": { "id": "route_001", "name": "Ruta Barcelona Norte", "date": "2026-05-08", "start_time": "08:00", "vehicle": { "license_plate": "1234ABC", "type": "furgon" }, "waypoints": [ { "order": 1, "shipment_number": "ENV-2026-0001", "recipient": "Acme S.L.", "address": "Avenida Industrial 45, Barcelona", "phone": "+34698765432", "packages_count": 2, "status": "pending" }, { "order": 2, "shipment_number": "ENV-2026-0002", "recipient": "Beta S.A.", "address": "Calle Mayor 12, Barcelona", "phone": "+34611223344", "packages_count": 1, "status": "pending" } ] }, "stats": { "total": 2, "delivered": 0, "remaining": 2 }}Marcar entrega
Sección titulada «Marcar entrega»Entrega exitosa
Sección titulada «Entrega exitosa»POST /api/logistics/driver/deliverAuthorization: Bearer <token>Content-Type: application/json
{ "shipment_id": "ship_001", "recipient_name": "Maria Reception", "recipient_dni": "12345678B", "signature_data": "data:image/png;base64,...", "photo_url": "/storage/delivery/photo_001.jpg", "gps_lat": 41.3851, "gps_lng": 2.1734, "notes": "Entregado en recepcion, firmante es Maria"}Entrega fallida (incidencia)
Sección titulada «Entrega fallida (incidencia)»POST /api/logistics/driver/failed-deliveryAuthorization: Bearer <token>Content-Type: application/json
{ "shipment_id": "ship_001", "failure_reason": "destinatario_ausente", "failure_notes": "Llamado 3 veces, nadie responde", "new_delivery_date": "2026-05-09", "photo_url": "/storage/delivery/fail_001.jpg", "gps_lat": 41.3851, "gps_lng": 2.1734}Razones de fallo disponibles:
| Código | Descripción |
|---|---|
destinatario_ausente |
Nadie en la dirección |
direccion_incorrecta |
No se encontro la dirección |
rechazo |
El destinatario rechaza la entrega |
envio_danado |
El paquete lleg deteriorado |
otro |
Otra causa (especificar en notes) |
Historial de entregas
Sección titulada «Historial de entregas»Ver entregas del día
Sección titulada «Ver entregas del día»GET /api/logistics/driver/deliveries-todayVer entregas de la semana
Sección titulada «Ver entregas de la semana»GET /api/logistics/driver/deliveries?from=2026-05-05&to=2026-05-11Sincronización offline
Sección titulada «Sincronización offline»La driver app funciona parcialmente offline:
- Descarga la ruta completa en cuanto tiene conexion
- Almacena las entregas pendientes locally
- Sincroniza automáticamente cuando recupera conexion
- Indicador visual de “offline” en la interfaz
Resumen de endpoints
Sección titulada «Resumen de endpoints»| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/logistics/driver/route-today |
Ruta asignada hoy |
| GET | /api/logistics/driver/deliveries-today |
Entregas del día |
| GET | /api/logistics/driver/deliveries |
Historial de entregas |
| POST | /api/logistics/driver/deliver |
Registrar entrega exitosa |
| POST | /api/logistics/driver/failed-delivery |
Registrar entrega fallida |
| POST | /api/logistics/driver/update-position |
Actualizar posición GPS |