> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Verificar el desafío de MFA

> Utiliza este endpoint para completar el paso de verificación de MFA durante el inicio de sesión. Después de recibir un `mfaToken` desde el endpoint de token de acceso, envía el código de verificación junto con el token para recibir tus credenciales de acceso.

Debes proporcionar un `passcode` (de tu aplicación de autenticación, correo electrónico o SMS) o un `recoveryCode`, pero no ambos.




## OpenAPI

````yaml es/openapi/v3-current/AM-auth.yaml post /v1/login/mfa/verify
openapi: 3.1.0
info:
  title: Plugin de autenticación
  description: ''
  version: 2.6.7
servers:
  - url: https://auth.sandbox.lerian.net
security: []
tags:
  - name: API de autenticación
  - name: API de MFA
  - name: API de información del usuario
  - name: API de autorización
paths:
  /v1/login/mfa/verify:
    post:
      tags:
        - API de MFA
      summary: Verificar el desafío de MFA
      description: >
        Utiliza este endpoint para completar el paso de verificación de MFA
        durante el inicio de sesión. Después de recibir un `mfaToken` desde el
        endpoint de token de acceso, envía el código de verificación junto con
        el token para recibir tus credenciales de acceso.


        Debes proporcionar un `passcode` (de tu aplicación de autenticación,
        correo electrónico o SMS) o un `recoveryCode`, pero no ambos.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MFAVerifyInput'
            examples:
              TOTPVerification:
                summary: Verificación TOTP con aplicación
                description: >-
                  Verifica utilizando un código de 6 dígitos de una aplicación
                  de autenticación
                value:
                  mfaToken: eyJhbGciOiJIUzI1NiJ9...
                  passcode: '123456'
                  mfaType: app
                  rememberDevice: false
              RecoveryCodeVerification:
                summary: Verificación con código de recuperación
                description: >-
                  Verifica utilizando un código de recuperación cuando el método
                  principal no está disponible
                value:
                  mfaToken: eyJhbGciOiJIUzI1NiJ9...
                  recoveryCode: ABCD-1234-EFGH
                  mfaType: app
                  rememberDevice: false
      responses:
        '200':
          description: >-
            La verificación de MFA se realizó correctamente. Devuelve las
            credenciales de acceso para la sesión autenticada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuth2Token'
              example:
                accessToken: >-
                  eyJhbGciOiJSUzI1NiIsImtpZCI6ImNlcnQtYnVpbHQtaW4iLCJ0eXAiOiJKV1QifQ...
                idToken: >-
                  eyJhbGciOiJSUzI1NiIsImtpZCI6ImNlcnQtYnVpbHQtaW4iLCJ0eXAiOiJKV1QifQ...
                tokenType: Bearer
                expiresIn: 3600
                refreshToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
                scope: openid profile email
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Error0001:
                  $ref: '#/components/examples/Error0001'
                Error0009:
                  $ref: '#/components/examples/Error0009'
                Error0016:
                  $ref: '#/components/examples/Error0016'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Error0017:
                  $ref: '#/components/examples/Error0017'
                Error0020:
                  $ref: '#/components/examples/Error0020'
          headers: {}
        '429':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Error0018:
                  $ref: '#/components/examples/Error0018'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Error0005:
                  $ref: '#/components/examples/Error0005'
          headers: {}
      security: []
components:
  schemas:
    MFAVerifyInput:
      description: >-
        Información utilizada para verificar un desafío de MFA durante el inicio
        de sesión. Proporciona un passcode o un código de recuperación, pero no
        ambos.
      type: object
      required:
        - mfaToken
        - mfaType
      oneOf:
        - required:
            - passcode
        - required:
            - recoveryCode
      properties:
        mfaToken:
          type: string
          description: Token temporal de MFA recibido desde el endpoint de token de acceso.
        passcode:
          type: string
          description: >-
            Código de verificación de 6 dígitos de tu aplicación de
            autenticación, correo electrónico o SMS.
          minLength: 6
          maxLength: 6
        recoveryCode:
          type: string
          description: >-
            Código de recuperación que se utiliza cuando el método principal de
            MFA no está disponible.
        mfaType:
          type: string
          enum:
            - app
            - email
            - sms
          description: Método de MFA que se está verificando.
        rememberDevice:
          type: boolean
          description: >-
            Si se establece en `true`, el dispositivo se recuerda para futuros
            inicios de sesión.
          default: false
    OAuth2Token:
      description: >-
        Información utilizada para gestionar los datos de autenticación OAuth2.
        Almacena de forma segura las credenciales de acceso, garantizando una
        autorización fluida y el control de los recursos protegidos.
      type: object
      required:
        - accessToken
        - tokenType
        - expiresIn
        - refreshToken
      properties:
        accessToken:
          type: string
          description: Token temporal que otorga al usuario acceso seguro a las API.
        expiresIn:
          type: integer
          description: Tiempo (en segundos) hasta que el token expira.
        idToken:
          type: string
          description: >-
            Detalles de identidad del usuario autenticado según el estándar
            OpenID Connect. Puede usarse para verificar la autenticación del
            usuario.
        refreshToken:
          type: string
          description: >-
            Token de larga duración que permite obtener un nuevo `access_token`
            sin necesidad de iniciar sesión nuevamente.
        scope:
          type: string
          description: Nivel de acceso otorgado a los tokens emitidos.
        tokenType:
          type: string
          description: Tipo de token emitido.
    ErrorMessage:
      description: Mensaje de error devuelto en la respuesta.
      type: object
      properties:
        code:
          type: string
          description: Identificador único y estable del error.
        title:
          type: string
          description: Resumen breve del problema.
        message:
          type: string
          description: Orientación detallada para resolver el error.
  examples:
    Error0001:
      summary: Missing Fields in Request
      value:
        code: AUT-0001
        title: Missing Fields in Request
        message: >-
          Your request is missing one or more required fields. Please refer to
          the documentation to ensure all necessary fields are included in your
          request.
    Error0009:
      summary: Bad Request
      value:
        code: AUT-0009
        title: Bad Request
        message: >-
          The server could not understand the request due to malformed syntax.
          Please check the listed fields and try again.
    Error0016:
      summary: Invalid MFA Code
      value:
        code: AUT-0016
        title: Invalid MFA Code
        message: The provided MFA code is invalid. Please check the code and try again.
    Error0017:
      summary: MFA Token Expired
      value:
        code: AUT-0017
        title: MFA Token Expired
        message: >-
          The MFA token has expired. Please restart the login process to receive
          a new token.
    Error0020:
      summary: Invalid MFA Token
      value:
        code: AUT-0020
        title: Invalid MFA Token
        message: >-
          The provided MFA token is invalid or malformed. Please use the token
          received from the access token endpoint.
    Error0018:
      summary: MFA Max Attempts Reached
      value:
        code: AUT-0018
        title: MFA Max Attempts Reached
        message: >-
          The maximum number of MFA verification attempts has been reached.
          Please restart the login process.
    Error0005:
      summary: Internal Server Error
      value:
        code: AUT-0005
        title: Internal Server Error
        message: >-
          The server encountered an unexpected error. Please try again later or
          contact support.

````