> ## 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.

# Solicitar um Token de Acesso

> Use este endpoint para obter um token de acesso para um usuário ou cliente.

Você só pode usar **um método de autenticação por requisição** — escolha o que se encaixa no seu caso de uso:

- **Para usuários**: Autentique com `username`, `password` e `grantType = password`.
- **Para máquina-a-máquina (M2M)**: Use `clientId`, `clientSecret` e defina `grantType = client_credentials`.



## OpenAPI

````yaml pt/openapi/v3-current/AM-auth.yaml post /v1/login/oauth/access_token
openapi: 3.1.0
info:
  title: Plugin de Autenticação
  description: ''
  version: 2.6.7
servers:
  - url: https://auth.sandbox.lerian.net
security: []
tags:
  - name: API de Autenticação
  - name: API de MFA
  - name: API de Informações do Usuário
  - name: API de Autorização
paths:
  /v1/login/oauth/access_token:
    post:
      tags:
        - API de Autenticação
      summary: Solicitar um Token de Acesso
      description: >-
        Use este endpoint para obter um token de acesso para um usuário ou
        cliente.


        Você só pode usar **um método de autenticação por requisição** — escolha
        o que se encaixa no seu caso de uso:


        - **Para usuários**: Autentique com `username`, `password` e `grantType
        = password`.

        - **Para máquina-a-máquina (M2M)**: Use `clientId`, `clientSecret` e
        defina `grantType = client_credentials`.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestAccessTokenInput'
            examples:
              ClientCredentialsGrant:
                summary: Concessão de Credenciais do Cliente
                description: >-
                  Autenticação máquina-a-máquina (M2M) usando credenciais do
                  cliente
                value:
                  grantType: client_credentials
                  clientId: ed1c72d366b07b84bd21
                  clientSecret: 81f42de0fbe038f1bfefac55328839c92e1878da
              PasswordGrant:
                summary: Concessão de Senha
                description: Autenticação de usuário usando nome de usuário e senha
                value:
                  grantType: password
                  username: admin
                  password: Lerian@123
      responses:
        '200':
          description: >
            Retorna as credenciais de acesso após autenticação bem-sucedida.


            Se o usuário tiver MFA habilitado, a resposta conterá um
            `MFAChallengeResponse` em vez disso, com um `mfaToken` temporário
            para concluir o fluxo de verificação por meio dos endpoints de MFA.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/OAuth2Token'
                  - $ref: '#/components/schemas/MFAChallengeResponse'
              examples:
                SuccessfulLogin:
                  summary: Login Bem-sucedido (sem MFA)
                  value:
                    accessToken: >-
                      eyJhbGciOiJSUzI1NiIsImtpZCI6ImNlcnQtYnVpbHQtaW4iLCJ0eXAiOiJKV1QifQ...
                    idToken: >-
                      eyJhbGciOiJSUzI1NiIsImtpZCI6ImNlcnQtYnVpbHQtaW4iLCJ0eXAiOiJKV1QifQ...
                    tokenType: Bearer
                    expiresIn: 3600
                    refreshToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
                    scope: openid profile email
                MFARequired:
                  summary: MFA Necessário
                  description: >-
                    Retornado quando o usuário tem MFA habilitado. Use o
                    mfaToken com os endpoints de verificação ou desafio de MFA.
                  value:
                    mfaRequired: true
                    mfaToken: eyJhbGciOiJIUzI1NiJ9...
                    availableMethods:
                      - app
                      - email
                    preferredMethod: app
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Error0001:
                  $ref: '#/components/examples/Error0001'
                Error0003:
                  $ref: '#/components/examples/Error0003'
                Error0009:
                  $ref: '#/components/examples/Error0009'
                Error0013:
                  $ref: '#/components/examples/Error0013'
                Error0014:
                  $ref: '#/components/examples/Error0014'
                Error1001:
                  $ref: '#/components/examples/Error1001'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Error1002:
                  $ref: '#/components/examples/Error1002'
                Error1004:
                  $ref: '#/components/examples/Error1004'
          headers: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Error0005:
                  $ref: '#/components/examples/Error0005'
          headers: {}
      security: []
components:
  schemas:
    RequestAccessTokenInput:
      description: >-
        Informações usadas para solicitar um token de acesso. Use um método de
        autenticação por requisição.
      oneOf:
        - $ref: '#/components/schemas/PasswordGrantInput'
        - $ref: '#/components/schemas/ClientCredentialsGrantInput'
      discriminator:
        propertyName: grantType
        mapping:
          password:
            $ref: '#/components/schemas/PasswordGrantInput'
          client_credentials:
            $ref: '#/components/schemas/ClientCredentialsGrantInput'
    OAuth2Token:
      description: >-
        Informações usadas para gerenciar dados de autenticação OAuth2. Armazena
        credenciais de acesso de forma segura, garantindo autorização e controle
        contínuos sobre recursos protegidos.
      type: object
      required:
        - accessToken
        - tokenType
        - expiresIn
        - refreshToken
      properties:
        accessToken:
          type: string
          description: Um token temporário que concede ao usuário acesso seguro às APIs.
        expiresIn:
          type: integer
          description: O tempo (em segundos) até o token expirar.
        idToken:
          type: string
          description: >-
            Os detalhes de identidade sobre o usuário autenticado nos padrões
            OpenID Connect. Pode ser usado para verificar a autenticação do
            usuário.
        refreshToken:
          type: string
          description: >-
            Um token de longa duração que permite aos usuários obter um novo
            `access_token` sem a necessidade de fazer login novamente.
        scope:
          type: string
          description: O nível de acesso concedido aos tokens emitidos.
        tokenType:
          type: string
          description: O tipo de token emitido.
    MFAChallengeResponse:
      description: >-
        Retornado quando a verificação MFA é necessária após a validação
        bem-sucedida das credenciais. Contém o token MFA temporário e os métodos
        de verificação disponíveis.
      type: object
      required:
        - mfaRequired
        - mfaToken
        - availableMethods
        - preferredMethod
      properties:
        mfaRequired:
          type: boolean
          description: >-
            Indica que a verificação MFA é necessária para concluir a
            autenticação.
        mfaToken:
          type: string
          description: >-
            Token temporário usado para concluir o fluxo de MFA. Envie este
            token aos endpoints de verificação ou desafio de MFA.
        availableMethods:
          type: array
          items:
            type: string
            enum:
              - app
              - email
              - sms
          description: Lista dos métodos de MFA configurados para o usuário.
        preferredMethod:
          type: string
          enum:
            - app
            - email
            - sms
          description: O método de MFA preferido do usuário.
    ErrorMessage:
      description: A mensagem de erro da resposta.
      type: object
      properties:
        code:
          type: string
          description: Um identificador único e estável para o erro.
        title:
          type: string
          description: Um breve resumo do problema.
        message:
          type: string
          description: Orientação detalhada para resolver o erro.
    PasswordGrantInput:
      description: Autenticação por nome de usuário e senha para login de usuário.
      type: object
      required:
        - grantType
        - username
        - password
      properties:
        grantType:
          type: string
          enum:
            - password
          description: Tipo de concessão para autenticação por nome de usuário e senha.
        username:
          type: string
          description: Nome de usuário para autenticação.
        password:
          type: string
          description: Senha para autenticação.
          format: password
    ClientCredentialsGrantInput:
      description: >-
        Autenticação por credenciais do cliente para acesso máquina-a-máquina
        (M2M).
      type: object
      required:
        - grantType
        - clientId
        - clientSecret
      properties:
        grantType:
          type: string
          enum:
            - client_credentials
          description: Tipo de concessão para autenticação por credenciais do cliente.
        clientId:
          type: string
          description: O identificador único do cliente fornecido pelo Identity.
        clientSecret:
          type: string
          description: >-
            A chave secreta associada ao ClientID usada para autenticação
            segura.
          format: password
  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.
    Error0003:
      summary: Unexpected Fields in the Request
      value:
        code: AUT-0003
        title: Unexpected Fields in the Request
        message: >-
          The request body contains more fields than expected. Please send only
          the allowed fields as per the documentation. The unexpected fields are
          listed in the fields object.
    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.
    Error0013:
      summary: Invalid Grant Type
      value:
        code: AUT-0013
        title: Invalid Grant Type
        message: >-
          The provided 'grantType' is not valid. Accepted grant types are
          'password', 'client_credentials', 'refresh_token', or others. Please
          provide a valid type.
    Error0014:
      summary: Grant Type Missing Fields
      value:
        code: AUT-0014
        title: Grant Type Missing Fields
        message: >-
          The provided 'grant_type' is missing required fields. Please refer to
          the documentation for guidance.
    Error1001:
      summary: Unsupported Grant Type
      value:
        code: AUT-1001
        title: Unsupported Grant Type
        message: >-
          The provided 'grantType' is not supported by this application. Please
          refer to the application's supported grant types.
    Error1002:
      summary: Invalid Username or Password
      value:
        code: AUT-1002
        title: Invalid Username or Password
        message: >-
          The provided 'username' or 'password' is incorrect. Please verify the
          credentials and try again.
    Error1004:
      summary: Invalid Client
      value:
        code: AUT-1004
        title: Invalid Client
        message: >-
          The provided 'clientId' or 'clientSecret' is incorrect. Please verify
          the credentials and try again.
    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.

````