Auth
Autenticación JWT. Registro, inicio de sesión, renovación de tokens, cierre de sesión, verificación de email y restablecimiento de contraseña.
POST /api/auth/v1/register
Section titled “POST /api/auth/v1/register”Registrar usuario
Crea un nuevo usuario. Si se envía companyId, automáticamente crea un CompanyMember con rol employee en esa empresa.
Request Body (requerido ✅)
Section titled “Request Body (requerido ✅)”{ "firstName": "Juan", "lastName": "Pérez", "email": "juan@test.com", "password": "password123", "phone": "123456789", "companyId": "00000000-0000-0000-0000-000000000000" }Respuestas
Section titled “Respuestas”Usuario registrado
{ "accessToken": "accessToken", "refreshToken": "refreshToken", "user": { "id": "00000000-0000-0000-0000-000000000000", "firstName": "firstName", "lastName": "lastName", "email": "user@example.com", "phone": "phone", "role": "SUPERADMIN", "enabled": true, "createdAt": "2024-01-15T10:00:00Z", "updatedAt": "2024-01-15T10:00:00Z" } }Email ya registrado o datos inválidos
{ "error": "Mensaje descriptivo del error", "timestamp": "2024-01-15T10:00:00Z" }POST /api/auth/v1/login
Section titled “POST /api/auth/v1/login”Iniciar sesión
Request Body (requerido ✅)
Section titled “Request Body (requerido ✅)”{ "email": "juan@test.com", "password": "password123" }Respuestas
Section titled “Respuestas”Inicio de sesión exitoso
{ "accessToken": "accessToken", "refreshToken": "refreshToken", "user": { "id": "00000000-0000-0000-0000-000000000000", "firstName": "firstName", "lastName": "lastName", "email": "user@example.com", "phone": "phone", "role": "SUPERADMIN", "enabled": true, "createdAt": "2024-01-15T10:00:00Z", "updatedAt": "2024-01-15T10:00:00Z" } }Credenciales inválidas
{ "error": "Mensaje descriptivo del error", "timestamp": "2024-01-15T10:00:00Z" }POST /api/auth/v1/refresh
Section titled “POST /api/auth/v1/refresh”Refrescar token JWT
Request Body (requerido ✅)
Section titled “Request Body (requerido ✅)”{ "refreshToken": "refreshToken" }Respuestas
Section titled “Respuestas”Token renovado
{ "accessToken": "accessToken", "refreshToken": "refreshToken", "user": { "id": "00000000-0000-0000-0000-000000000000", "firstName": "firstName", "lastName": "lastName", "email": "user@example.com", "phone": "phone", "role": "SUPERADMIN", "enabled": true, "createdAt": "2024-01-15T10:00:00Z", "updatedAt": "2024-01-15T10:00:00Z" } }Token inválido o expirado
{ "error": "Mensaje descriptivo del error", "timestamp": "2024-01-15T10:00:00Z" }POST /api/auth/v1/logout
Section titled “POST /api/auth/v1/logout”Cerrar sesión
Request Body (requerido ✅)
Section titled “Request Body (requerido ✅)”{ "refreshToken": "refreshToken" }Respuestas
Section titled “Respuestas”Sesión cerrada exitosamente
POST /api/auth/v1/verify-email
Section titled “POST /api/auth/v1/verify-email”Verificar email
Email verificado
Request Body (requerido ✅)
Section titled “Request Body (requerido ✅)”{ "token": "token" }Respuestas
Section titled “Respuestas”Email verificado exitosamente
POST /api/auth/v1/password-reset
Section titled “POST /api/auth/v1/password-reset”Solicitar restablecimiento de contraseña
Request Body (requerido ✅)
Section titled “Request Body (requerido ✅)”{ "email": "user@example.com" }Respuestas
Section titled “Respuestas”Email de restablecimiento enviado (si el email existe)
POST /api/auth/v1/password-reset/confirm
Section titled “POST /api/auth/v1/password-reset/confirm”Confirmar restablecimiento de contraseña
Contraseña actualizada
Request Body (requerido ✅)
Section titled “Request Body (requerido ✅)”{ "token": "token", "newPassword": "newPassword" }Respuestas
Section titled “Respuestas”Contraseña actualizada exitosamente
Schemas
Section titled “Schemas”RegisterRequest
Section titled “RegisterRequest”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
firstName | string ej: “Juan” | ✅ | |
lastName | string ej: “Pérez” | ✅ | |
email | string (email) ej: “juan@test.com” | ✅ | |
password | string ej: “password123” | ✅ | |
phone | string ej: “123456789” | ✅ | |
companyId | string (uuid) | ❌ | Opcional. Si se envía, crea CompanyMember con rol employee |
AuthResponse
Section titled “AuthResponse”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
accessToken | string | ❌ | |
refreshToken | string | ❌ | |
user | UserResponse | ❌ |
ErrorResponse
Section titled “ErrorResponse”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
error | string ej: “Mensaje descriptivo del error” | ❌ | |
timestamp | string (date-time) | ❌ |
LoginRequest
Section titled “LoginRequest”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
email | string (email) ej: “juan@test.com” | ✅ | |
password | string ej: “password123” | ✅ |
RefreshTokenRequest
Section titled “RefreshTokenRequest”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
refreshToken | string | ✅ |
VerifyEmailRequest
Section titled “VerifyEmailRequest”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
token | string | ✅ |
PasswordResetRequest
Section titled “PasswordResetRequest”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
email | string (email) | ✅ |
PasswordResetConfirmRequest
Section titled “PasswordResetConfirmRequest”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
token | string | ✅ | |
newPassword | string | ✅ |