Autenticación
La API usa autenticación con Bearer Token. Un usuario obtiene un token y puede usarlo para las empresas sobre las que tenga privilegios.
Flujo recomendado
- Solicitá un token con usuario, contraseña y
scope(es el RUT del emisor). - Guardá
access_tokenyrefresh_token. - Renová el acceso con
refresh_tokencuando corresponda.
Solicitar token con usuario y contraseña
POST https://auth-test.facturaelectronica.com.uy/token
Content-Type: application/json
{
"grant_type": "password",
"username": "usuario",
"password": "1234-abc",
"scope": 219999830019
}
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
grant_type | String | Sí | Debe ser password. |
username | String | Sí | Usuario otorgado por FEU. |
password | String | Sí | Contraseña del usuario. |
scope | String o Int64 | Sí | RUT de la empresa para la que se solicita el token. Debe corresponder a una empresa sobre la que el usuario tenga privilegios. |
refresh_token_expire_time | Int | No | Duración del refresh token en minutos. Por defecto: 365 días. |
Renovar token con refresh token
POST https://auth-test.facturaelectronica.com.uy/token
Content-Type: application/json
{
"grant_type": "refresh_token",
"refresh_token": "REFRESH_TOKEN"
}
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
grant_type | String | Sí | Debe ser refresh_token. |
refresh_token | String | Sí | Token de refresco obtenido previamente. |
refresh_token_banned | Boolean | No | Si es true, invalida el refresh token actual y emite uno nuevo. |
refresh_token_expire_time | Int | No | Duración del nuevo refresh token en minutos. Requiere refresh_token_banned = true. |
Respuesta esperada
{
"access_token": "ACCESS_TOKEN",
"token_type": "bearer",
"refresh_token": "REFRESH_TOKEN"
}
| Campo | Tipo | Descripción |
|---|---|---|
access_token | String | Token Bearer que se envía en Authorization. |
token_type | String | Tipo de token devuelto. Actualmente bearer. |
refresh_token | String | Token de refresco para solicitar un nuevo access_token. |
Headers requeridos
Los endpoints protegidos requieren el token de acceso y el RUT de la empresa emisora o receptora.
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
X-Emisor: 219999830019
| Header | Tipo o valor esperado | Requerido | Descripción |
|---|---|---|---|
Authorization | Bearer ACCESS_TOKEN | Sí | Bearer token obtenido en esta página. |
Content-Type | application/json | Sí | Formato del cuerpo JSON en requests protegidos con body. |
X-Emisor | String o Int64 | Sí | RUT de la empresa emisora o receptora sobre la que opera el endpoint. |
Notas
- Un token de test no sirve en producción.
- El
scopedefine la empresa para la que se solicita el token. Esto tiene como ventaja que configurando en tu sistema un único usuario accedes a todas las empresas habilitadas. - Si cambia el ambiente, necesitás autenticarte de nuevo.