Skip to main content

Configurar PIN de seguridad

Endpoint: POST /auth/pin/configure


Permite configurar un PIN de seguridad de 6 dígitos para el usuario autenticado. Puede usarse tanto para configurar el PIN por primera vez como para actualizarlo directamente.


🔐 Requiere autenticación JWT

Debes enviar un token JWT válido en el header:

Authorization: Bearer <accessToken>

📝 Cuerpo de la solicitud

{
"pin": "123456"
}
  • pin: PIN de exactamente 6 dígitos numéricos

✅ Validaciones

  • PIN debe ser exactamente 6 dígitos numéricos
  • No se permiten caracteres especiales, letras o espacios
  • Patrón válido: /^\d{6}$/

📋 Respuestas

✅ 200 OK

  • PIN configurado correctamente

    {
    "code": 1008,
    "message": "PIN configured successfully",
    "data": {
    "pinActive": true,
    "configuredAt": "2025-01-15T10:30:00.000Z",
    "updatedAt": "2025-01-15T10:30:00.000Z"
    }
    }

❌ 400 Bad Request

  • PIN inválido (formato incorrecto)

    {
    "code": 4006,
    "message": "PIN must be exactly 6 digits"
    }
  • Faltan datos

    {
    "message": "PIN is required."
    }

❌ 401 Unauthorized

  • Sin token válido

    {
    "statusCode": 401,
    "message": "Unauthorized"
    }

🔒 Características de seguridad

  • Hashing seguro: El PIN se almacena usando bcrypt con pepper
  • Historial completo: Se mantiene un registro de todas las operaciones
  • Auto-migración: Compatible con usuarios existentes sin impacto
  • Activación automática: El PIN se activa automáticamente al configurarlo

📝 Notas

  • Este endpoint puede usarse tanto para configuración inicial como para actualización directa
  • Para mayor seguridad en actualizaciones, considera usar el flujo de /auth/pin/update/request seguido de /auth/pin/update
  • El PIN se activará automáticamente después de la configuración exitosa
  • Se integra automáticamente con el sistema JWT Guard para verificación en endpoints protegidos

Importante: Una vez configurado, el PIN será requerido para acceder a operaciones sensibles en la aplicación.