Ir al contenido

Login de conductor (app móvil)

POST
/drivers/login
curl --request POST \
--url https://api.dev.lade.com.mx/drivers/login \
--header 'Content-Type: application/json' \
--data '{ "username": "jperez123", "password": "TempPass123!" }'

Autentica contra el pool de Cognito dedicado a conductores usando username (autogenerado por POST /teams/{teamId}/drivers/{driverId}/access), no correo. A diferencia de /login (web), los tokens se devuelven directo en el body — no hay cookies HttpOnly, la app Flutter los guarda en almacenamiento seguro del dispositivo. Si es el primer login (contraseña temporal), Cognito responde con challenge: NEW_PASSWORD_REQUIRED en vez de tokens; ese challenge se resuelve con POST /drivers/respond-new-password.

Media typeapplication/json
object
username
required
string
password
required
string format: password
Example
{
"username": "jperez123",
"password": "TempPass123!"
}

Login exitoso, o challenge NEW_PASSWORD_REQUIRED si es el primer login

Media typeapplication/json
object
message
string
challenge
string
Allowed values: NEW_PASSWORD_REQUIRED
session
string
tokens
object
idToken
string
accessToken
string
refreshToken
string
expiresIn
integer
driver
object
id
string format: uuid
teamId
string format: uuid
name
string
phone
string
nullable
photoUrl
string
nullable
status

Estado del conductor

string
Allowed values: DISPONIBLE EN_VIAJE NO_DISPONIBLE VACACIONES BAJA
licenseNumber
string
nullable
licenseExpiry
string
nullable
curp
string
nullable <= 18 characters
rfc
string
nullable <= 13 characters
birthDate
string
nullable
medicalExpiry
string
nullable
bloodType
string
nullable
emergencyContact
string
nullable
certifications
Array<string>
salary
number
address
object
street
string
<= 300 characters
extNumber
string
<= 50 characters
intNumber
string
<= 50 characters
neighborhood
string
<= 100 characters
city
string
<= 100 characters
state
string
<= 100 characters
country
string
default: Mexico <= 100 characters
zipCode
string
<= 10 characters
createdAt
string format: date-time
username

Usuario autogenerado para login en la app de conductores (ver POST /teams/{teamId}/drivers/{driverId}/access)

string
nullable
appAccessStatus

Estado de la cuenta del conductor en el pool de Cognito de la app móvil

string
Allowed values: NONE INVITED ACTIVE DISABLED
allergies
string
nullable
Examples

Login exitoso

{
"message": "Login exitoso",
"tokens": {
"idToken": "eyJraWQ...",
"accessToken": "eyJraWQ...",
"refreshToken": "eyJjdHk...",
"expiresIn": 3600
},
"driver": {
"id": "770e8400-e29b-41d4-a716-446655440002",
"teamId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Juan Pérez",
"username": "jperez123",
"appAccessStatus": "ACTIVE"
}
}

Solicitud inválida

Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{
"error": "Validation failed",
"field": "email",
"message": "Invalid email format"
}

No autenticado

Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{
"error": "Unauthorized",
"message": "Invalid or expired token"
}

Sin permisos

Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{
"error": "Forbidden",
"message": "You don't have permission to access this resource"
}