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

# Gerar token de acesso JWT

> **Requer certificado de cliente no header X-SSL-Client-Cert**. Autentique usando certificado de cliente X.509 + credenciais OAuth 2.0 (clientId/clientSecret) e receba um token JWT.

Este endpoint gera um token JWT de acesso válido por **30 minutos** (1800 segundos). Requer certificado X.509 vinculado à conta e credenciais OAuth 2.0.

<Note>
  O certificado X.509 deve ser enviado URL-encoded no header `X-SSL-Client-Cert`. O certificado deve estar previamente vinculado à sua conta.
</Note>


## OpenAPI

````yaml post /api/auth/token
openapi: 3.0.0
info:
  title: Fire Banking Public API
  description: >-
    API Pública da Plataforma Fire Banking para integração com serviços de
    pagamento PIX e gestão de contas
  version: 0.1.0
  contact: {}
servers:
  - url: https://api.public.firebanking.com.br
    description: Servidor de produção
security: []
tags:
  - name: auth
    description: Endpoints de autenticação
  - name: Balance
    description: Endpoints de consulta de saldo
  - name: PIX
    description: Endpoints de transações PIX
  - name: Webhooks
    description: Endpoints de gerenciamento de webhooks
paths:
  /api/auth/token:
    post:
      tags:
        - auth
      summary: Gerar token de acesso JWT
      description: >-
        **Requer certificado de cliente no header X-SSL-Client-Cert**.
        Autentique usando certificado de cliente X.509 + credenciais OAuth 2.0
        (clientId/clientSecret) e receba um token JWT.
      operationId: AuthController_generateToken
      parameters:
        - name: X-SSL-Client-Cert
          in: header
          description: >-
            Certificado PEM do cliente codificado em URL (header padrão do
            NGINX)
          required: true
          schema:
            type: string
            example: '-----BEGIN%20CERTIFICATE-----%0AMIIBkTCB...'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateTokenInputDto'
      responses:
        '201':
          description: Token gerado com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateTokenOutputDto'
        '400':
          description: >-
            Requisição inválida ou certificado ausente no header
            X-SSL-Client-Cert
        '401':
          description: Credenciais inválidas ou certificado inválido
components:
  schemas:
    GenerateTokenInputDto:
      type: object
      required:
        - clientId
        - clientSecret
      properties:
        clientId:
          type: string
          description: OAuth 2.0 client ID obtido da criação de credencial
          example: account-93-550e8400
        clientSecret:
          type: string
          description: OAuth 2.0 client secret (8-64 caracteres)
          example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
    GenerateTokenOutputDto:
      type: object
      required:
        - access_token
        - token_type
        - expires_in
      properties:
        access_token:
          type: string
          description: JWT access token
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
        token_type:
          type: string
          description: Tipo do token
          example: Bearer
        expires_in:
          type: number
          description: Tempo de expiração do token em segundos
          example: 1800

````