Ir para o conteúdo

Autenticação

A Partner Integration API utiliza JWT Bearer Token para autenticação.

Cada requisição (exceto /auth/token) exige o header Authorization: Bearer {token}.


Obter token

POST /api/v1/auth/token
Content-Type: application/json

Request

{
  "clientId": "sua-assessoria",
  "clientSecret": "sua-senha-secreta"
}
Campo Tipo Obrigatório Descrição
clientId string sim Identificador do seu tenant, fornecido no onboarding
clientSecret string sim Senha de autenticação, fornecida no onboarding

Response — 200 OK

{
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "tokenType": "Bearer",
  "expiresIn": 3600
}
Campo Tipo Descrição
accessToken string Token JWT para usar nas requisições
tokenType string Sempre Bearer
expiresIn integer Validade em segundos (padrão: 3600 = 1 hora)

Erros possíveis

HTTP Situação
401 ClientId ou ClientSecret inválidos
422 Campos obrigatórios ausentes

Como usar o token

Inclua o token em todas as requisições autenticadas:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Exemplo completo

POST /api/v1/checkins
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Content-Type: application/json

{
  "source": "INTERNAL",
  "partnerTransactionId": "TXN-2026-0001",
  "externalStudentId": "ALUNO-123",
  "occurredAt": "2026-07-03T08:30:00Z"
}

Informações importantes

  • O token expira após o período indicado em expiresIn. Renove antes da expiração.
  • O clientSecret não é armazenado em logs pela API. Trate-o com o mesmo cuidado de uma senha.
  • O TenantId (identidade do seu tenant) é extraído automaticamente do token — nunca precisa ser enviado no corpo das requisições.
  • Tokens expirados são rejeitados imediatamente. Não há tolerância de clock skew.

Renovação do token

Ao receber 401 Unauthorized em qualquer endpoint, o token expirou. Basta chamar /auth/token novamente com as mesmas credenciais.

Recomendamos renovar o token alguns minutos antes de expirar para evitar interrupções em fluxos longos.