← Voltar

API Revenda White Label

Endpoints REST pra integrar sistemas próprios da revenda ao painel Katalog.

🔐 Autenticação

Todos os endpoints /api/revenda/* exigem JWT no header:

Authorization: Bearer <jwt-do-login>

Pra obter o JWT: POST /api/revenda/autenticacao/entrar com {email, senha, revendaId?}.

🏪 Lojas (clientes da revenda)

GET/api/revenda/lojas

Lista lojas da revenda com filtro por status

POST/api/revenda/lojas

Cria loja + trial 7d. Body: { slug, nome, planoId, modoDebito, dono: {nome,email,senha} }

GET/api/revenda/lojas/:id

Detalhe da loja

PATCH/api/revenda/lojas/:id

Edita: nome/telefone/whatsapp/email/ativa/modoDebitoRevenda/planoId

DELETE/api/revenda/lojas/:id?estornarProporcional=true&motivo=...

Cancela loja (soft delete) com estorno proporcional opcional

POST/api/revenda/lojas/:id/liberar

Debita 1 mês do saldo e adiciona 30d à assinatura

POST/api/revenda/lojas/:id/impersonar

Retorna JWT como ADMIN_LOJA (pra suporte)

POST/api/revenda/lojas/bulk

Body: { acao, lojaIds[], planoId? }. Ações: liberar, suspender, reativar, trocarPlano

💰 Saldo & Recargas

GET/api/revenda/saldo/extrato?tipo=&de=&ate=&page=

Extrato paginado + totalizadores

GET/api/revenda/recargas

Últimas 100 recargas

POST/api/revenda/recargas

Body: { valorCentavos, metodo: 'PIX'|'CARTAO' }. Retorna QR/link

GET/api/revenda/recargas/:id

Polling do status da recarga

DELETE/api/revenda/recargas/:id

Cancela recarga pendente

GET/api/revenda/auto-recharge

Config atual de recarga automática

PATCH/api/revenda/auto-recharge

Body: { ativo, minReais, valorReais, cartaoRef }

📊 Planos & Preços

GET/api/revenda/planos-disponiveis

Planos ativos com o custo mensal que ESTA revenda paga

GET/api/revenda/planos-branded

Todos planos + branding próprio (nome/preço custom)

PATCH/api/revenda/planos-branded

Body: { planos: [...] }. Só DONO

👥 Usuários & Domínios

GET/POST/api/revenda/usuarios

Lista + convidar OPERADOR/DONO. Só DONO invita

PATCH/DELETE/api/revenda/usuarios/:id

Trocar papel / desativar

GET/POST/api/revenda/dominios

Lista domínios + cadastra CUSTOM (subdomínio grátis criado auto)

DELETE/api/revenda/dominios/:id

Remove custom (também limpa tenant CloudFront)

POST/api/revenda/dominios/:id/verificar

Consulta DNS e marca verificado

🎯 CRM & Comunicação

GET/api/revenda/leads?status=

Leads recebidos pela landing pública

PATCH/DELETE/api/revenda/leads/:id

Atualiza status/notas

GET/api/revenda/notificacoes

Sino do header (in-app)

PATCH/api/revenda/notificacoes

Body: { id?, marcarTodasComoLidas? }

GET/POST/PATCH/api/revenda/mensagens

Chat com super-admin

GET/POST/api/revenda/anuncios

Anúncios do super-admin (POST dispensa)

⚙️ Config, Compliance & LGPD

GET/api/revenda/perfil

Dados + saldo + branding

PATCH/api/revenda/perfil

Edita branding/config. Só DONO

GET/POST/api/revenda/compliance

Estado + aceite DPA/termos/2FA obrigatório

GET/api/revenda/indicacao

Código de indicação + link + contagem de sub-revendas

GET/api/revenda/export?tipo=lojas|extrato|recargas

CSV pra download

GET/api/revenda/backup-lgpd

JSON com TODOS os dados (LGPD Art. 20). Só DONO

🌐 Endpoints Públicos (sem auth)

GET/api/revenda/publico/:slug

Dados públicos da revenda + planos visíveis

POST/api/revenda/publico/:slug/lead

Envia lead pela landing pública

GET/api/revenda/slug-disponivel?slug=

Checa se slug está livre no cadastro

📋 Códigos HTTP

  • 200 — sucesso
  • 400 — validação (mensagem em { erro: string })
  • 401 — token ausente/inválido/expirado
  • 402 — saldo insuficiente
  • 403 — sem permissão (não é DONO, revenda não ATIVA)
  • 404 — recurso não encontrado ou não pertence à revenda
  • 409 — conflito (slug em uso, documento duplicado)
  • 429 — rate limit excedido

🚦 Rate Limits

Por default: 300 req/min read, 300 req/min write, 10 req/min login. Requests autenticadas de revenda usam a chave por revendaId (não IP) — uma revenda não afeta a cota de outra.