Authorization: Bearer <token>. O servidor inspeciona o token e o resolve para um usuário ou para um seller, dependendo do que o token de fato representa.
Esta página explica como cada caminho funciona, quando usar cada um, como o ciclo de vida do JWT se comporta (incluindo rotação de refresh), como as chaves de API são emitidas, como a tabela de acessos concede a usuários acesso a sellers, e quais endpoints podem ser chamados sem nenhuma credencial.
Para o uso cotidiano de “como faço login”, consulte a página mais curta de Autenticação. Este guia é o aprofundamento — leia-o ao projetar uma integração ou modelar permissões.
Os dois mecanismos
Ambos os mecanismos enviam seu token da mesma forma:
Qual devo usar?
Use JWT quando um humano está fazendo login (painel, aplicativo mobile, ferramentas de suporte). O token representa quem está fazendo a chamada, e a tabela de acessos define sobre quais sellers esse usuário pode atuar.Use uma chave de API quando o próprio backend do seller chama a plataforma em seu próprio nome — por exemplo, gerando links de checkout para os clientes do seller, ou sincronizando transações para o ERP do seller. A chave carrega a identidade do seller diretamente.
Como os tokens são resolvidos
A autenticação em cada endpoint protegido passa pelo módulo de autenticação da plataforma. Existem duas classes de autenticação:- Classe de autenticação somente de usuário — aceita apenas JWT.
- Classe de autenticação combinada — aceita JWT ou uma chave de API de seller.
Authorization: Bearer … e, então, tentam, nesta ordem: um token JWT de acesso válido e — para a classe combinada — uma busca por chave de API com active=True.
O que o contexto autenticado representa
Ciclo de vida do JWT
A configuração de JWT da plataforma controla a duração dos tokens:Login
POST /user/login/ retorna:
access_token_renew_interval é o TTL do token de acesso em segundos. Renove antes que ele expire.
Refresh com rotação
ComoROTATE_REFRESH_TOKENS=True, cada refresh bem-sucedido retorna um novo refresh token junto com o novo token de acesso. O refresh token anterior é consumido.
Um loop mínimo de refresh:
Cadastro
POST /user/register/ cria um usuário e retorna o mesmo payload {access, refresh, access_token_renew_interval, user} do login, de modo que um cliente recém-cadastrado já está autenticado.
Chaves de API de seller
As chaves de API são emitidas por seller. Gerencie-as em/integrations/{seller_id}/apikeys/ — crie com Criar uma chave de API, liste com Listar chaves de API.
Formato
Usando uma chave
Controle de acesso: a tabela de acessos
O JWT sozinho diz quem é o chamador. Ele não diz sobre quais sellers esse usuário pode atuar. Esse mapeamento vive na tabela de acessos da plataforma:
Um único usuário pode ter várias linhas na tabela de acessos — uma por seller/conta que ele administra. Cada linha associa o usuário a um grupo, e as permissões do grupo definem o que o usuário pode fazer para aquele seller específico.
A própria tabela de acessos define três permissões customizadas:
Estes são os codenames reais que a API utiliza ao validar permissões.
Bypass de superusuário
Toda verificação de permissão da plataforma retornaTrue imediatamente quando o usuário é superusuário. Superusuários podem chamar qualquer endpoint de gerenciamento independentemente da participação em grupos. Operadores de plataforma do dia a dia normalmente devem receber os grupos corretos em vez de serem promovidos a superusuários.
Gerenciar acessos pela API
O ciclo de vida completo está exposto sob o recurso de usuário:- Listar acessos de um usuário
- Criar um acesso
- Recuperar um acesso
- Atualizar um acesso
- Excluir um acesso
- Listar usuários em um seller
/groups/:
Verificações de permissão
Cada endpoint protegido declara uma ou mais verificações de permissão. Abaixo está o catálogo completo:
Outros endpoints exigem apenas autenticação padrão (qualquer usuário autenticado, JWT ou chave de API) — por exemplo, o endpoint que lista usuários vinculados a um seller.
O endpoint de acessos intencionalmente permite que qualquer usuário autenticado leia a lista de acessos. Isso é o que permite a um painel exibir “para quais sellers posso alternar?” sem exigir permissões elevadas. As operações de escrita no mesmo endpoint ainda exigem
manage_accesses.Endpoints públicos (sem autenticação)
Um pequeno conjunto de endpoints aceita intencionalmente tráfego anônimo. Eles servem superfícies públicas — páginas de checkout, formulários de cadastro, recuperação de senha, páginas públicas de assinatura — e estão configurados para permitir qualquer chamador, ou simplesmente não declaram classe de autenticação.
Todo o restante exige um cabeçalho
Authorization válido.
Fluxo de recuperação de senha
O fluxo de recuperação é deliberadamente em duas etapas: solicitar um token de 6 dígitos por e-mail e, então, resgatá-lo com uma nova senha. Ambos os endpoints são públicos.1
Solicite um token de recuperação
O usuário envia seu e-mail. O servidor consulta a conta, gera um token de 6 dígitos válido por 24 horas e o envia pelo template de e-mail Veja Recuperação de senha — solicitar.
password-recovery. O endpoint retorna 204 No Content independentemente de o e-mail corresponder ou não a um usuário — isso é intencional, para evitar vazar quais endereços estão cadastrados.2
Resgate o token com uma nova senha
O usuário envia o token de 6 dígitos recebido por e-mail junto com a nova senha. O servidor valida o token, atualiza a senha e exclui todas as linhas de recuperação pendentes para aquele usuário, de forma que o mesmo token não possa ser resgatado duas vezes.Veja Recuperação de senha — executar.
3
Autentique o usuário
Após um resgate bem-sucedido, o usuário possui novas credenciais mas não tem sessão. Chame
POST /user/login/ com a nova senha para obter um novo par de JWT.Os tokens são inteiros de 6 dígitos (
100000–999999). São válidos por 24 horas e são invalidados assim que um deles é resgatado com sucesso para o usuário. A proteção contra força bruta é responsabilidade da superfície chamadora — mantenha o formulário público atrás de rate limiting.