Skip to main content
El API de Fegora usa OAuth 2.0 con el flujo password grant. Antes de llamar a cualquier endpoint de negocio (DTE, cuenta, etc.) debe solicitar un token de acceso con su usuario y contraseña. Ese token se envía luego como Bearer en cada llamada subsiguiente.

Solicitar un token

Haga una solicitud POST con el usuario y la contraseña, codificados como formulario, al endpoint de token:

Headers

Body (form-urlencoded)

Respuesta 200 OK

El access_token es un JWT firmado. Dentro de sus claims viaja, entre otros datos, una o más entradas cuenta — vea Cuentas múltiples en un mismo token más abajo.

Renovar el token (refresh)

Cuando el access_token expira, use el refresh_token obtenido al solicitar el token original — no es necesario reenviar usuario y contraseña.

Body (form-urlencoded)

La respuesta 200 OK tiene la misma forma que la de la solicitud original: un nuevo access_token junto con un nuevo refresh_token.
Cada vez que se usa un refresh_token, éste se invalida y se reemplaza por uno nuevo en la respuesta. Un mismo refresh_token no puede reutilizarse dos veces.

Usar el token en las llamadas al API

Todas las llamadas al API (salvo POST /token) requieren el header Authorization con el access_token como Bearer:

Errores de autenticación

Si la solicitud de token falla, el endpoint responde HTTP 400 Bad Request con un cuerpo en el formato estándar de OAuth2 — distinto al formato { codigo, mensaje, ... } que usa el resto del API (vea Manejo de errores):

Cuentas múltiples en un mismo token

Un usuario puede tener acceso a más de una cuenta (empresa emisora) en Fegora. En ese caso, el access_token incluye una entrada cuenta por cada cuenta asociada al usuario. Al crear un DTE (POST /dte), el campo idCuenta del body indica sobre qué cuenta se emite el documento:
  • Si el usuario tiene una sola cuenta, idCuenta puede omitirse — el API la infiere automáticamente.
  • Si el usuario tiene varias cuentas, se recomienda enviar idCuenta explícitamente. Si se omite, el API usa la primera cuenta asociada al usuario, lo cual puede no ser la cuenta esperada.