Passar para o conteúdo principal

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

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

Escrito por Alexandre Dias Da Silva

A partir de 6 de julho de 2026, os tokens gerados pelo antigo sistema de autenticação 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 apresentando um token gerado pelo antigo sistema será rejeitada — seja a partir de código, um script ou uma ferramenta como Postman. Se este for o seu caso, atualize seu método de autenticação seguindo as etapas abaixo.

Quem é afetado?

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

Se você usar apenas a administração Axeptio e não chamar a API diretamente, nenhuma ação é necessária da sua parte.

Por que essa mudança?

Axeptio está migrando seu sistema de autenticação para Frontegg. Esta migração estabelece as bases técnicas necessárias para os novos recursos em breve: MFA, Social login, SSO e logs de auditoria. Também permite oferecer uma gestão de acesso à API mais robusta e granular.

O que acontece se você não migrar

A partir de 6 de julho de 2026, qualquer chamada à API Axeptio usando o antigo sistema de autenticação 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

Credenciais

username + password

clientId + secret

Duração de vida

Longa duração

1 hora — a atualizar 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. Atualizar o token antes de sua expiração via o endpoint dedicado, sem ter que reinserir o Client ID e o Secret.

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

Esta seção estará disponível a partir de 6 de julho de 2026. Não é possível gerar suas credenciais antecipadamente.

  1. Conecte-se à administração Axeptio.

  2. Vá para Parâmetros → 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 codifique diretamente 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://login.axept.io/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. Atualizar o token antes da expiração

O token expira após 1 hora. Antes de cada chamada, verifique se ainda é válido e atualize-o se necessário — sem ter que reinserir o Client ID e o Secret.

curl -X POST https://login.axept.io/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 atualização automática
let token = await getAccessToken(CLIENT_ID, SECRET);

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

async function apiCall(path: string) {
// Atualiza 60 s antes da expiração para evitar rejeições em caso de latência de rede
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://login.axept.io"
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 atualização automática
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 margem para evitar rejeições em caso de latência de rede
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 contatar nossa equipe de suporte.

Respondeu à sua pergunta?