A DLPay aceita duas formas de autenticação.
| Mecanismo | Quem usa | Cabeçalho | Identifica |
|---|
| JWT (usuário) | Usuários do painel e integrações que agem em nome de um usuário | Authorization: Bearer <access_token> | Um usuário |
| Chave de API (vendedor) | Integrações servidor-a-servidor que agem em nome de um vendedor | Authorization: Bearer <api_key> | Um vendedor específico |
Ambos os mecanismos usam o mesmo cabeçalho Authorization e seguem o padrão Bearer (RFC 6750). A API decide internamente qual caminho aplicar de acordo com o token recebido. Endpoints que aceitam ambos escolhem o que casar com o token apresentado.
Tokens JWT
Os tokens são emitidos por Autenticar usuário. A resposta contém:
access — token Bearer de curta duração (padrão de 1 dia). Use-o no cabeçalho Authorization.
refresh — token de longa duração (padrão de 4 dias). Use-o apenas contra o endpoint Renovar sessão para obter um novo access.
access_token_renew_interval — quantidade de segundos pela qual o access é válido. Renove antes desse prazo.
A rotação de refresh está habilitada — cada renovação retorna um novo token refresh e o anterior é invalidado após uma curta janela de carência. Sempre guarde o token mais recente retornado pelo endpoint de renovação.
Estratégia de renovação
import time, requests
def renovar(access, refresh):
response = requests.post(
"https://api.dlpay.cloud/user/login/refresh/",
json={"refresh": refresh},
)
data = response.json()
return data["access"], data["refresh"], int(data["access_token_renew_interval"])
access, refresh, ttl = login(email, senha)
expira_em = time.time() + ttl - 60
while True:
if time.time() >= expira_em:
access, refresh, ttl = renovar(access, refresh)
expira_em = time.time() + ttl - 60
faca_o_trabalho(access)
Recuperação de senha
É um fluxo em duas etapas:
Solicitar recuperação de senha — recebe um e-mail e envia um token de 6 dígitos para o endereço informado.
Definir nova senha — recebe o token mais a nova senha.
Os tokens expiram em 24 horas e são invalidados assim que um deles é resgatado com sucesso.
Chaves de API do vendedor
Para vendedores que integram a partir do próprio backend, a plataforma emite chaves de API por vendedor. Crie e gerencie em Chaves de API.
A chave carrega a identidade do vendedor e as permissões concedidas. Use-a quando o chamador atua em nome de um único vendedor específico — por exemplo, o site do vendedor criando links de checkout ou assinaturas para seus próprios clientes.
curl "https://api.dlpay.cloud/sales/seller/$SELLER_ID/checkoutlink/" \
-H "Authorization: Bearer $API_KEY"
Permissões e acessos
O acesso de um usuário é controlado por uma tabela de acessos que liga o usuário à conta do vendedor e a um conjunto de permissões. As classes de permissão verificam essa tabela a cada requisição. Superusuários ignoram essa checagem.
Veja Autenticação e acessos para a lista completa de códigos de permissão, escopos e como atribuí-los.
Endpoints públicos (sem autenticação)
Alguns endpoints são deliberadamente públicos:
GET /event/event/{event_id}/ — carrega o contexto público de um evento para a página de checkout.
POST /event/event/{event_id}/checkout/ — cria um checkout de evento a partir de uma página pública.
GET /subscriptions/plan/{plan_id}/ — carrega o contexto público de um plano de assinatura.
POST /subscriptions/plan/{plan_id}/subscribe/ — porta de entrada pública para assinar.
GET /subscriptions/subscriber/{subscriber_id}/ — carrega o contexto público de um assinante.
POST /user/login/, POST /user/register/, POST /user/passwordrecovery/... — fluxos de credenciais.
Todos os demais endpoints exigem autenticação.