Autenticação
A API usa JWT (JSON Web Tokens). Todas as rotas protegidas exigem o header:
Authorization: Bearer <seu-token>Formas de obter o token
1. Login com e-mail e senha
http
POST /api/auth/login
Content-Type: application/json
{
"email": "seu@email.com",
"password": "sua_senha"
}Resposta:
json
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "...",
"expiresIn": 604800
}2. API Token (app mobile)
O admin do tenant gera um token em Settings > Apps. Use-o para autenticar sem e-mail/senha:
http
POST /api/auth/api-token
Content-Type: application/json
{
"apiToken": "lf_abc123...token-gerado-no-painel"
}A resposta é igual ao login.
3. Token de API para agências (integrações externas)
Para integrações server-to-server (CRMs, ERPs, etc.), use tokens de agência. Crie em Agência > Integração (API):
http
GET /api/agency/dashboard
Authorization: Bearer lf_agency_abc123...token-gerado-no-painel- Prefixo:
lf_agency_— identifica tokens de agência - Escopos:
READ(só leitura) ouREAD_WRITE(leitura e escrita) - Restrição por origin: JWT só funciona quando a requisição vem do painel web (mesmo origin). Requisições de IP/origin externo exigem token de API
4. Refresh do token
Quando o accessToken expirar:
http
POST /api/auth/refresh
Content-Type: application/json
{
"refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}Usar o token
Inclua em todas as requisições autenticadas:
http
GET /api/leads
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...Multi-tenancy
O tenant é inferido automaticamente pelo token. Todas as operações ficam restritas aos dados do seu tenant.
