Passar para o conteúdo principal

Para continuar usando a API Axeptio a partir de 6 de julho de 2026

Em 6 de julho de 2026, Axeptio altera seu sistema de autenticação. Veja como atualizar sua integração de API antes do prazo.

Escrito por Alexandre Dias Da Silva

⚠️ Este artigo está em desenvolvimento. Algumas informações podem mudar antes da data de migração.

A partir de 6 de julho de 2026, os tokens gerados pelo sistema de autenticação antigo serão invalidados e não será mais possível gerar um token de acesso à API Axeptio via username e password. Os endpoints de autenticação atuais serão descontinuados. Qualquer chamada à API Axeptio com um token gerado pelo sistema antigo será rejeitada — seja a partir de código, script ou ferramenta como Postman. Se este é o seu caso, atualize seu método de autenticação seguindo as etapas abaixo.

Quem é afetado?

Este artigo o concerne se você chamar a API Axeptio diretamente — a partir de código, script, suas integrações, uma ferramenta como Postman ou qualquer outro cliente HTTP.

Se você usa apenas a administração Axeptio e não chama a API diretamente, nenhuma ação é necessária de sua parte.

Por que essa mudança?

Axeptio está migrando seu sistema de autenticação para Frontegg. Essa migração estabelece as fundações técnicas necessárias para os novos recursos futuros: MFA, Social login, SSO e logs de auditoria. Também permite oferecer um gerenciamento de acesso à API mais robusto e granular.

O que acontece se você não migrar

A partir de 6 de julho de 2026, qualquer chamada à API Axeptio usando o sistema de autenticação antigo será rejeitada. Seus banners de consentimento já publicados não são afetados — apenas as integrações programáticas deixarão de funcionar.

O que muda

O endpoint para obter um token Bearer muda, assim como as credenciais associadas, mas a forma de transmitir o token em suas requisições permanece a mesma — um header Authorization: Bearer. O que muda na prática: você agora obtém um token de curta duração do Frontegg em troca de um Client ID e um Secret, em vez de um token de longa duração via seu username e password.

Antes

Depois

Endpoint

POST /auth/local/signin

POST

/identity/resources/auth/v2/api-token

Credenciais

username + password

clientId + secret

Tempo de vida

Longa duração

1 hora — a ser renovado automaticamente

Transmissão

Authorization: Bearer

Authorization: Bearer (inalterado)

Visão geral do fluxo

  1. Gerar um acesso à API na administração Axeptio. Você obtém um Client ID e um Secret que identificam sua integração.

  2. Solicitar um token ao Frontegg apresentando seu Client ID e Secret. Você recebe em retorno um access_token, válido por 1 hora.

  3. Chamar a API Axeptio incluindo este token no header Authorization: Bearer de cada requisição.

  4. Renovar o token antes de sua expiração via o endpoint dedicado, sem precisar informar novamente o Client ID e o Secret.

1. Gerar um acesso à API na administração Axeptio

  1. Faça login na administração Axeptio.

  2. Vá em Configurações → Acesso à API.

  3. Copie seu Client ID e seu Secret.

Guarde seu secret em local seguro — ele não pode ser recuperado após a geração. Nunca o coloque hardcoded em seu código: armazene-o em uma variável de ambiente.

2. Solicitar um token ao Frontegg

Chame o endpoint Frontegg com seu Client ID e Secret. Você recebe em retorno um access_token, válido por 1 hora, e um refresh_token para renová-lo.

curl -X POST https://<FRONTEGG_URL>/identity/resources/auth/v2/api-token \
-H "Content-Type: application/json" \
-d '{ "clientId": "<CLIENT_ID>", "secret": "<SECRET>" }'



Resposta:

{
"access_token": "eyJ...",
"refresh_token": "dGhp...",
"expires_in": 3600
}



3. Chamar a API Axeptio

Inclua o access_token no header Authorization de cada requisição.

curl https://api.axept.io/v1/<ENDPOINT> \
-H "Authorization: Bearer <ACCESS_TOKEN>"



4. Renovar o token antes da expiração

O token expira após 1 hora. Antes de cada chamada, verifique se ainda é válido e renove-o se necessário — sem precisar informar novamente o Client ID e o Secret.

curl -X POST https://<FRONTEGG_URL>/identity/resources/auth/v2/api-token/token/refresh \
-H "Content-Type: application/json" \
-d '{ "refreshToken": "<REFRESH_TOKEN>" }'



Exemplos de código completos

TypeScript / Node.js

const FRONTEGG_URL = process.env.FRONTEGG_URL;

interface FronteggTokenResponse {
access_token: string;
refresh_token: string;
expires_in: number;
}

async function getAccessToken(clientId: string, secret: string): Promise<FronteggTokenResponse> {
const res = await fetch(`${FRONTEGG_URL}/identity/resources/auth/v2/api-token`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ clientId, secret }),
});
if (!res.ok) throw new Error(`Token fetch failed: ${res.status}`);
return res.json();
}

async function refreshAccessToken(refreshToken: string): Promise<FronteggTokenResponse> {
const res = await fetch(`${FRONTEGG_URL}/identity/resources/auth/v2/api-token/token/refresh`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ refreshToken }),
});
if (!res.ok) throw new Error(`Token refresh failed: ${res.status}`);
return res.json();
}

async function callAxeptioApi(accessToken: string, path: string) {
const res = await fetch(`https://api.axept.io/v1${path}`, {
headers: { Authorization: `Bearer ${accessToken}` },
});
if (!res.ok) throw new Error(`API call failed: ${res.status}`);
return res.json();
}

// Utilização com rafraîchissement automatique
let token = await getAccessToken(CLIENT_ID, SECRET);

let expiresAt = Date.now() + token.expires_in * 1000;

async function apiCall(path: string) {
// Rafraîchit 60 s avant expiration pour éviter les rejets en cas de latence réseau
if (Date.now() > expiresAt - 60_000) {
token = await refreshAccessToken(token.refresh_token);
expiresAt = Date.now() + token.expires_in * 1000;
}
return callAxeptioApi(token.access_token, path);
}



Python

import time
import requests

FRONTEGG_URL = "https://<FRONTEGG_URL>"
AXEPTIO_API = "https://api.axept.io/v1"

def get_access_token(client_id: str, secret: str) -> dict:
res = requests.post(
f"{FRONTEGG_URL}/identity/resources/auth/v2/api-token",
json={"clientId": client_id, "secret": secret},
)
res.raise_for_status()
return res.json()

def refresh_access_token(refresh_token: str) -> dict:
res = requests.post(
f"{FRONTEGG_URL}/identity/resources/auth/v2/api-token/token/refresh",
json={"refreshToken": refresh_token},
)
res.raise_for_status()
return res.json()

def call_axeptio_api(access_token: str, path: str) -> dict:
res = requests.get(
f"{AXEPTIO_API}{path}",
headers={"Authorization": f"Bearer {access_token}"},
)
res.raise_for_status()
return res.json()

# Utilização com rafraîchissement automatique
token = get_access_token(CLIENT_ID, SECRET)

expires_at = time.time() + token["expires_in"]

def api_call(path: str) -> dict:
global token, expires_at
if time.time() > expires_at - 60: # 60 s de marge pour éviter les rejets en cas de latence réseau
token = refresh_access_token(token["refresh_token"])
expires_at = time.time() + token["expires_in"]
return call_axeptio_api(token["access_token"], path)



Referência

A lista completa dos endpoints disponíveis está documentada no Swagger Axeptio.

Precisa de ajuda?

Se suas chamadas falharem após a migração, se suas credenciais não forem visíveis na administração Axeptio, ou para qualquer outra dúvida, não hesite em entrar em contato com nossa equipe de suporte.

Respondeu à sua pergunta?