QvaPay API
Autenticación

Login

Iniciar sesión como usuarios con tus credenciales y obtener un token de autenticación.

POST /auth/login

Autentica un usuario con email y contraseña. El proceso requiere autenticación en dos pasos (2FA) mediante PIN o código OTP. Si tienes activo el OTP, el PIN no estará funcional para este endpoint por seguridad.

Autenticación

No requiere autenticación previa.

Request

{
  "email": "[email protected]",
  "password": "contraseña123",
  "remember": true,
  "two_factor_code": "1234"
}

Parámetros

ParámetroTipoRequeridoDescripción
emailstringSiEmail del usuario
passwordstringSiContraseña del usuario
rememberbooleanNoMantener sesión activa por 180 días (por defecto 2 horas)
two_factor_codestringNoCódigo 2FA: PIN de 4 dígitos o código OTP de 6 dígitos

Flujo de autenticación

  1. Envía email y password sin two_factor_code.
  2. Si las credenciales son correctas, recibirás un 202 indicando que se requiere el código 2FA.
  3. Reenvía la petición incluyendo el two_factor_code (PIN enviado por email o código OTP de tu app autenticadora).

Response (202 - Código 2FA requerido)

{
  "info": "Código 2FA requerido",
  "notified": false,
  "has_otp": true
}

Response (200 - Login exitoso)

{
  "accessToken": "203955|abc123...",
  "token_type": "Bearer",
  "me": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "email": "[email protected]",
    "name": "Juan",
    "username": "juan123",
    "balance": "150.75"
  }
}

Campos de respuesta

CampoTipoDescripción
accessTokenstringToken Bearer para usar en peticiones autenticadas
token_typestringTipo de token (Bearer)
meobjectDatos del usuario autenticado
security_warningobject | nullAlerta si la contraseña aparece en filtraciones conocidas

Errores

CódigoDescripción
400Datos inválidos (email o password faltantes)
401Credenciales incorrectas, usuario no encontrado o cuenta inactiva
403Contraseña comprometida en filtraciones de datos. Incluye action: "reset_password"
423Cuenta bloqueada temporalmente por múltiples intentos fallidos
429Demasiadas solicitudes de inicio de sesión