Developers

Autenticação (OAuth2)

Antes de consumir qualquer API Assertiva, gere um token de acesso. A autenticação é a mesma para todos os produtos: a Assertiva usa o padrão OAuth2 no fluxo client_credentials, com autenticação Basic (Client ID e Secret da sua aplicação).

As credenciais de acesso são fornecidas pela Assertiva. Em caso de dúvida sobre como obtê-las, fale com o atendimento (atendimento@assertivasolucoes.com.br).

Endpoint de token

POST /oauth2/v3/token — gera o token de acesso (fluxo client_credentials)
  • Autenticação: Basic com Client ID e Secret codificados em Base64.
  • Corpo (application/x-www-form-urlencoded): grant_type=client_credentials.

Exemplos de requisição

Substitua SEU_CLIENT_ID e SEU_SECRET pelas suas credenciais. Nunca versione credenciais reais no seu código.
POST /oauth2/v3/token
# Basic Auth: Client ID como usuario, Secret como senha
curl -X POST https://api.assertivasolucoes.com.br/oauth2/v3/token \
  -u "SEU_CLIENT_ID:SEU_SECRET" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials"
// Node 18+ possui fetch nativo.
const clientId = process.env.ASSERTIVA_CLIENT_ID;
const secret = process.env.ASSERTIVA_SECRET;
const basic = Buffer.from(`${clientId}:${secret}`).toString("base64");

const resposta = await fetch("https://api.assertivasolucoes.com.br/oauth2/v3/token", {
  method: "POST",
  headers: {
    Authorization: `Basic ${basic}`,
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: new URLSearchParams({ grant_type: "client_credentials" })
});
const { access_token: accessToken } = await resposta.json();
import os
import requests

client_id = os.environ["ASSERTIVA_CLIENT_ID"]
secret = os.environ["ASSERTIVA_SECRET"]

resposta = requests.post(
    "https://api.assertivasolucoes.com.br/oauth2/v3/token",
    auth=(client_id, secret),
    data={"grant_type": "client_credentials"},
)
resposta.raise_for_status()
access_token = resposta.json()["access_token"]

Resposta de sucesso

200 OK
{
  "access_token": "8e3b7892-5fbc-4564-942d-531107f4667a",
  "token_type": "bearer",
  "expires_in": 60,
  "scope": "ALL"
}

Use o access_token retornado no cabeçalho Authorization: Bearer {access_token} das consultas do Localize. Observe o campo expires_in (em segundos) e renove o token quando ele expirar.

Erros comuns

Conforme a documentação do servidor de autenticação:

Código error O que significa
400 unsupported_grant_type grant_type inválido ou não permitido.
401 invalid_request Credenciais de acesso inválidas ou incorretas.
403 access_denied Sua empresa não tem permissão para usar o portal via API.
Nas consultas dos produtos, um token ausente ou expirado resulta em 401 (Falha na autenticação. Suas credenciais podem estar inválidas ou expiradas.).

Próximo passo

Com o token em mãos, use-o no cabeçalho Authorization: Bearer {access_token} das chamadas do produto que você vai integrar. Escolha um produto na página inicial do portal para ver o guia e a referência técnica.