A DLPay aceita duas formas de autenticação.
MecanismoQuem usaCabeçalhoIdentifica
JWT (usuário)Usuários do painel e integrações que agem em nome de um usuárioAuthorization: Bearer <access_token>Um usuário
Chave de API (vendedor)Integrações servidor-a-servidor que agem em nome de um vendedorAuthorization: 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:
  1. Solicitar recuperação de senha — recebe um e-mail e envia um token de 6 dígitos para o endereço informado.
  2. 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.