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

# Obtener u renovar un token de acceso

> Endpoint OAuth2 (grant types `password` y `refresh_token`). El token de acceso (JWT Bearer) tiene una vigencia de 24 horas; el `refresh_token` permite renovarlo sin volver a enviar credenciales.



## OpenAPI

````yaml /api-reference/openapi.json post /token
openapi: 3.1.0
info:
  title: Fegora API
  version: '1.0'
  description: >-
    API de Fegora para la emisión y consulta de Documentos Tributarios
    Electrónicos (DTE) en Guatemala, El Salvador y República Dominicana.


    El API es uno solo para los tres países: el país de operación lo determina
    la configuración de la cuenta emisora (no la URL ni ningún parámetro de la
    solicitud). Los campos que varían por país — tipos de documento, catálogos
    de impuestos, identificadores fiscales del receptor, datos adicionales — se
    documentan en la descripción de cada campo.


    Autenticación: OAuth2 (`POST /token`, grant types `password` y
    `refresh_token`) → JWT Bearer con vigencia de 24 horas.
servers:
  - url: https://api.fegora.com
security:
  - bearerAuth: []
tags:
  - name: Autenticación
    description: Obtención y renovación de tokens de acceso.
  - name: DTE
    description: Emisión, consulta, anulación y distribución de documentos emitidos.
  - name: DTE Recibidos
    description: Documentos donde la cuenta es el receptor (facturas de proveedores).
  - name: Lotes
    description: Carga masiva de DTEs mediante archivos Excel.
  - name: Cuentas
    description: Administración de cuentas emisoras/receptoras.
  - name: Catálogos
    description: >-
      Catálogos de referencia: productos, plantillas de PDF, localidades y
      contribuyentes.
  - name: Otros
    description: Endpoints de soporte, como el perfil del usuario autenticado.
paths:
  /token:
    post:
      tags:
        - Autenticación
      summary: Obtener u renovar un token de acceso
      description: >-
        Endpoint OAuth2 (grant types `password` y `refresh_token`). El token de
        acceso (JWT Bearer) tiene una vigencia de 24 horas; el `refresh_token`
        permite renovarlo sin volver a enviar credenciales.
      operationId: postToken
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenRequest'
            examples:
              password:
                summary: grant_type=password
                value:
                  grant_type: password
                  username: '12345678'
                  password: '********'
                  client_id: apiApp
              refreshToken:
                summary: grant_type=refresh_token
                value:
                  grant_type: refresh_token
                  refresh_token: 66b93887b8af4c82abf3ed3b77912a94
                  client_id: apiApp
      responses:
        '200':
          description: Token emitido correctamente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
              examples:
                ok:
                  summary: Token emitido
                  value:
                    access_token: >-
                      eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiJ9...ejemplo
                    token_type: bearer
                    expires_in: 86399
                    refresh_token: 66b93887b8af4c82abf3ed3b77912a94
                    as:client_id: apiApp
                    userName: '12345678'
                    id: 5c790e3adc078a16383d6ecc
                    .issued: Mon, 11 Nov 2026 00:28:58 GMT
                    .expires: Tue, 12 Nov 2026 00:28:58 GMT
        '400':
          description: Credenciales o refresh token inválidos.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  error_description:
                    type: string
              examples:
                credencialesInvalidas:
                  summary: Usuario o contraseña incorrectos
                  value:
                    error: invalid_grant
                    error_description: Credenciales inválidas
                refreshInvalido:
                  summary: Refresh token inválido
                  value:
                    error: invalid_grant
                    error_description: Invalid refresh token
      security: []
components:
  schemas:
    TokenRequest:
      type: object
      description: Solicitud de token OAuth2, `application/x-www-form-urlencoded`.
      properties:
        grant_type:
          type: string
          enum:
            - password
            - refresh_token
        client_id:
          type: string
          default: apiApp
        username:
          type: string
          description: >-
            Requerido cuando `grant_type` es `password`. Usuario o correo
            electrónico.
        password:
          type: string
          description: Requerido cuando `grant_type` es `password`.
        refresh_token:
          type: string
          description: Requerido cuando `grant_type` es `refresh_token`.
      required:
        - grant_type
    TokenResponse:
      type: object
      properties:
        access_token:
          type: string
        token_type:
          type: string
          examples:
            - bearer
        expires_in:
          type: integer
          description: Vigencia del access token en segundos (24 horas).
        refresh_token:
          type: string
        as:client_id:
          type: string
        userName:
          type: string
        id:
          type: string
          description: Id interno del usuario.
        .issued:
          type: string
        .expires:
          type: string
      required:
        - access_token
        - token_type
        - expires_in
        - refresh_token
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````