Pular para o conteúdo
Documentação

Manual Completo do Super Estante

Tudo o que você precisa saber sobre a plataforma — desde como um leitor adquire um livro até como uma empresa customiza o ambiente, integra com sistemas externos e acompanha o engajamento da equipe.

Introdução

O Super Estante é uma plataforma de leitura corporativa SaaS criada para empresas que querem incentivar o desenvolvimento contínuo dos seus colaboradores através de livros e audiobooks curados. Em vez de cada pessoa precisar comprar livros separadamente, a empresa contrata um plano, configura quantos livros cada funcionário pode acessar por mês, e os colaboradores escolhem o conteúdo que querem consumir dentro do catálogo liberado.

A plataforma combina biblioteca digital, audiobooks, gamificação (XP, conquistas, ranking), relatórios de engajamento para gestores, e integrações via API com sistemas internos da empresa (ERPs, RHs, intranets). Tudo isso com white-label completo — sua empresa pode usar domínio próprio, cores próprias, logo próprio, sem qualquer marca do Super Estante.

Esta documentação é pública e cobre todos os recursos. Se você é um leitor, foque nas seções Catálogo, Estante, Leitor e Gamificação. Se você é um gestor ou admin, role até a seção correspondente. Se você é dev integrador, vá direto pra API e Webhooks.

Como funciona

O fluxo geral da plataforma segue 5 etapas:

  1. 1Empresa contrata um plano. A empresa fecha um plano com a Super Estante (definindo número de assentos, formato — ebook, audiobook ou ambos — e categorias liberadas).
  2. 2Admin cadastra os colaboradores. Pelo painel administrativo, importando CSV, cadastrando manualmente ou via API integrada ao sistema de RH.
  3. 3Cada colaborador recebe créditos mensais. 1 crédito = 1 livro adicionado à estante por mês (configurável).
  4. 4O colaborador navega o catálogo e resgata os livros. Ao resgatar, o livro vai pra estante e fica disponível pra leitura/escuta. Se não escolher, a plataforma pode atribuir automaticamente um livro popular ao final do mês.
  5. 5O colaborador lê / escuta, ganha XP, badges, sobe no ranking. Gestores acompanham o engajamento da equipe em tempo real através de relatórios.

Perfis de usuário

A plataforma reconhece 4 tipos de usuário, cada um com permissões e telas próprias:

Leitor

O colaborador da empresa. Acessa o catálogo, resgata livros, lê/escuta, acumula XP, ganha conquistas, vê o ranking da equipe.

Gestor

Acompanha sua equipe (departamento). Vê relatórios de engajamento, ranking interno, taxa de conclusão de livros, sem mexer no catálogo.

Admin

Administra a empresa: cadastra usuários, gerencia o catálogo liberado, configura créditos, banners, white-label, gera API keys e webhooks.

Super Admin

Equipe Super Estante. Cria e administra todas as empresas (tenants) da plataforma, acessa o marketplace de conteúdo, modera publicações.

Sistema de créditos

Os créditos são o mecanismo que controla quantos livros cada colaborador pode adicionar à estante por mês. O padrão é 1 crédito por usuário por mês, mas isso é configurável tanto por empresa (via painel admin) quanto por usuário individual (via API ou painel).

Como funciona o ciclo mensal

  • Início do mês: cada usuário ativo recebe a sua cota de créditos (ex: 1 ou 3 ou 5, conforme configurado).
  • Resgate: ao clicar em Resgatar em qualquer livro do catálogo, 1 crédito é debitado e o livro vai pra estante permanentemente (não expira).
  • Atribuição automática: se ao final do mês o usuário não usou os créditos, o sistema escolhe um livro popular do catálogo e adiciona automaticamente à estante (evitando desperdício).
  • Saldo não rola: créditos não usados não acumulam para o mês seguinte. Cada mês começa com a cota cheia.
  • Histórico permanente: todo resgate fica registrado e o livro permanece na estante do usuário pra sempre, mesmo se ele trocar de empresa.

Edição de créditos

Admins podem alterar a cota de qualquer usuário a qualquer momento (aumentar, diminuir, zerar) tanto pelo painel quanto via API. Útil pra premiar uma equipe ou liberar créditos extras durante uma campanha.

O catálogo é a lista de livros disponíveis para os colaboradores de uma empresa. Ele é filtrado por empresa: cada tenant pode ter acesso ao catálogo completo do Super Estante ou apenas a categorias específicas (ex: só "Liderança" e "Produtividade").

Organização

  • Categorias: Liderança, Produtividade, Comunicação, Inovação, Negócios, Psicologia, etc. Cada livro pode ter múltiplas categorias.
  • Tags: palavras-chave adicionais pra busca refinada.
  • Nível de dificuldade: Iniciante, Intermediário, Avançado.
  • Lançamentos do mês: aparecem primeiro na ordenação, identificados por badge.
  • Status: publicado (visível), rascunho (oculto), agendado (com data de lançamento futura), arquivado.

Busca

A busca funciona por título e autor (sem necessidade de filtros). Suporta diacríticos (ex: "Habito" encontra "Hábito") e busca parcial. Há também o botão Buscar... sempre presente na sidebar.

E-book vs Audiobook

Cada livro pode ser disponibilizado em um ou nos dois formatos:

E-book

Leitor de PDF/EPUB embutido. Suporta marcadores, anotações, busca dentro do texto, ajuste de fonte, modo escuro, modo executivo (resumido).

Audiobook

Player de áudio com controle de velocidade (0.5x até 2x), sleep timer, capítulos navegáveis, sincroniza o progresso entre dispositivos.

Configuração por empresa: o admin define se uma empresa recebe só ebooks, só audiobooks, ou os dois. Essa configuração se aplica a todos os usuários da empresa. Para mudar, edite a empresa no painel admin (Empresas → Editar → Tipo de conteúdo).

Estante pessoal

A Estante é o espaço pessoal de cada colaborador, organizada em 4 abas:

  • Lendo Agora: livros com leitura iniciada (progresso entre 1% e 99%) e livros recém-resgatados ainda não abertos.
  • Concluídos: livros com 100% de leitura ou marcados como concluídos. Contam pra conquistas e ranking.
  • Favoritos: livros concluídos que o usuário avaliou com 4+ estrelas.
  • Quero Ler: livros do catálogo ainda não adquiridos. Funciona como uma wishlist.

Cada livro da estante mostra o nome e logo da empresa que entregou aquele livro. Essa atribuição é congelada no momento do resgate, então mesmo que o colaborador troque de empresa depois, o histórico mostra corretamente de onde cada livro veio.

Leitor e reprodutor

Para e-books

  • Renderização nativa de PDF e EPUB no navegador (sem download obrigatório).
  • Marcadores e anotações persistentes, sincronizadas com a conta.
  • Ajuste de tamanho da fonte e modo escuro.
  • Busca dentro do conteúdo do livro.
  • Quiz pós-leitura: ao concluir, o leitor responde perguntas sobre o livro. Acertar gera certificado e XP bônus.

Para audiobooks

  • Player com controles de velocidade (0.5x, 1x, 1.25x, 1.5x, 2x).
  • Sleep timer (15 / 30 / 60 minutos).
  • Navegação por capítulos e barra de progresso interativa.
  • Sincronização automática do ponto da escuta — começa onde você parou, mesmo em outro dispositivo.

Gamificação e ranking

A plataforma usa mecânicas de jogo pra incentivar a leitura. Os colaboradores acumulam pontos (XP) e desbloqueiam conquistas conforme avançam:

Pontos (XP)

  • Concluir um livro: +100 XP
  • Acertar quiz: +50 XP
  • Fazer anotação ou marcador: +5 XP
  • Avaliar um livro: +10 XP
  • Manter sequência de leitura diária: +25 XP por dia

Conquistas (badges)

Mais de 30 conquistas pré-definidas, divididas em níveis (bronze, prata, ouro, diamante). Exemplos: Primeiro Livro, Maratonista (5 livros em 1 mês), Madrugador (ler antes das 6h), Eclético (livros de 5 categorias diferentes), Mentor (compartilhar 10 recomendações).

Ranking

Tabela classificatória dentro da empresa, atualizada em tempo real. Mostra top leitores por mês, por trimestre e geral. Pode ser filtrada por departamento (útil pra competições internas).

Downloads offline

Para ler/ouvir sem conexão, o colaborador pode baixar livros pro dispositivo. O download fica criptografado, vinculado ao usuário e com licença renovável.

  • Cada livro pode ser baixado em até 3 dispositivos simultâneos.
  • A licença renova automaticamente a cada 30 dias enquanto o usuário estiver ativo e o livro permanecer na estante.
  • O progresso de leitura/escuta sincroniza com o servidor quando há conexão.
  • Se o usuário sair da empresa, os downloads são revogados na próxima abertura do app.

Notificações

A plataforma envia notificações por 3 canais (configuráveis pelo usuário em Perfil → Preferências):

  • In-app (sino na sidebar): tempo real. Novos livros, conquistas, comentários, lembretes.
  • Push (PWA): notificações no celular/desktop mesmo com a aba fechada (requer permissão).
  • E-mail: resumo semanal de atividade + alertas críticos (créditos a vencer, livro novo numa categoria favorita).

Gestores e equipes

Gestores enxergam apenas a equipe (departamento) sob sua responsabilidade. O painel do gestor mostra:

  • Dashboard: KPIs do mês (livros concluídos, tempo total de leitura, % de engajamento).
  • Equipe: lista de colaboradores com progresso individual, último acesso, ranking interno.
  • Relatórios: exportáveis em CSV/PDF. Útil pra reuniões 1:1, RH, planos de desenvolvimento.
  • Recomendações: sugerir livros específicos para um membro da equipe (chega como notificação).
O gestor não pode editar o catálogo, gerenciar créditos ou criar usuários. Essas ações são exclusivas do admin.

Empresas e multi-tenant

O Super Estante é uma plataforma multi-tenant: cada empresa (tenant) tem seu próprio espaço isolado de dados — usuários, configurações, relatórios, branding. Uma empresa nunca vê dados de outra.

O que o admin configura por empresa

  • Plano contratado e limite de assentos (max_seats).
  • Cota mensal padrão de créditos por usuário.
  • Tipo de conteúdo: e-books, audiobooks, ou ambos.
  • Categorias liberadas do catálogo (ou catálogo completo).
  • Departamentos da empresa (pra agrupar usuários e dar visão pra gestores).
  • Banners customizados na home dos colaboradores.
  • Domínio próprio (white-label).
  • Cores, logo e tipografia customizadas.

White-label

A plataforma suporta white-label completo. Sua empresa pode oferecer a experiência como se fosse um produto próprio:

  • Domínio próprio: ex. leitura.suaempresa.com.br. Configuração via CNAME + certificado SSL automático.
  • Logo: versão horizontal (sidebar expandida) e ícone quadrado (sidebar colapsada).
  • Paleta de cores: primary, secondary e accent — aplicadas em toda a UI.
  • Tipografia: escolha entre fontes pré-configuradas ou Google Fonts customizada.
  • Favicon: upload do ícone exibido na aba do navegador.
  • E-mails transacionais: também recebem branding (header, footer, cores).
Não há nenhuma marca do Super Estante visível para o colaborador. O domínio, logo e cores fazem com que pareça um produto interno da empresa.

Administradores

O admin tem o painel mais completo. Resumo das seções:

Dashboard

KPIs globais da empresa

Empresas

Multi-tenant (super admin)

Usuários

CRUD, ativar/inativar, bulk import CSV, atribuição de departamentos e cargos

Biblioteca

Cadastro de livros (com upload de capa, PDF, áudio e metadados)

Banners

Customização do carrossel da home

Gamificação

Editar regras de pontos e badges

Conquistas

Criar e configurar badges customizados

Relatórios

Engajamento, leitura, completude por equipe

Relatórios agendados

Envio automático periódico por e-mail

Cobrança

Faturas, plano contratado, próximas cobranças

API Keys

Geração e gestão de chaves e webhooks

API Docs

Documentação técnica e endpoints (com botão Baixar PDF)

White-label

Customização visual completa da plataforma

Marketplace

Conteúdo enviado por outras empresas (super admin)

Moderação

Aprovação/rejeição de conteúdo submetido

Cada admin pode ter permissões granulares: o super admin define quais seções ele enxerga (ex: um admin de RH só vê Usuários e Relatórios; um admin de Conteúdo só vê Biblioteca e Marketplace).

API pública

Documentação da API

OpenAPI 3.0.3 · v1.1.0

API pública para integração com a plataforma SuperEstante. Permite gerenciar livros, usuários e progresso de leitura de forma programática.

Autenticacao

Todas as requisicoes devem incluir o header Authorization: Bearer sk_live_SUA_CHAVE. Gere suas chaves na pagina de API Keys.

Guia Rapido — Primeiros Passos

A API da SuperEstante permite integrar sua plataforma de leitura corporativa com sistemas externos — como ERPs, plataformas de RH, intranets ou ferramentas de BI. Tudo que um admin ou gestor faz no painel pode ser feito via API.

1

Gere sua API Key

Va ate a pagina API Keys e crie uma chave. Ela sera exibida apenas uma vez — copie e guarde em local seguro.

2

Autentique as requisicoes

Inclua o header "Authorization: Bearer sk_live_SUA_CHAVE" em todas as chamadas a API.

3

Faca sua primeira chamada

Teste listando seus livros com GET /api/v1/books. Veja os exemplos cURL abaixo para cada endpoint.

4

Configure webhooks

Receba notificacoes em tempo real. Cadastre URLs na pagina API Keys para eventos como livro concluido.

O que voce pode fazer com a API:

Gerenciar livros da biblioteca (CRUD completo)
Criar, listar, atualizar e remover usuarios via API
Ativar/inativar/suspender usuarios (PATCH /users/{id})
Consultar a estante de cada usuario (GET /users/{id}/shelf)
Acompanhar e atualizar progresso de leitura
Receber eventos via webhooks (user_created, user_updated, book_completed)

Dica: Cada API Key esta vinculada ao seu tenant. Dados retornados e criados pela API sao sempre isolados dentro da sua empresa — nao e possivel acessar dados de outros tenants. Rate limit padrao: 60 requisicoes/minuto por chave (configuravel por chave).

Manual Completo de Integracao

Tudo que voce precisa pra integrar sua plataforma com a SuperEstante: autenticacao, exemplos em multiplas linguagens, gestao de usuarios, livros, estante, progresso, webhooks, paginacao, tratamento de erros e limites.

1. Visao Geral

A API REST publica esta em https://superestante.com.br/api/v1. Cada chamada precisa de uma API Key escopada a um tenant (sua empresa). Todas as respostas sao JSON e seguem o formato:

json
// Sucesso (singular)
{ "data": { ... } }

// Sucesso (lista paginada)
{ "data": [ ... ], "meta": { "page": 1, "per_page": 20, "total": 42, "total_pages": 3 } }

// Erro
{ "error": "mensagem legivel", "code": "23505", "details": "...", "hint": "..." }

2. Autenticacao

Inclua o header Authorization: Bearer sk_live_SUA_CHAVE em toda chamada. A chave eh exibida apenas uma vez no momento da criacao — guarde em local seguro (vault, secret manager, variavel de ambiente). Caso seja exposta, rotacione imediatamente pelo painel.

bash
# Teste rapido — lista os 5 primeiros usuarios do seu tenant
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/users?per_page=5"

3. Gestao de Usuarios

CRUD completo + ativacao/inativacao. Quando criar sem informar password, a API gera uma senha segura e devolve em temp_password — exibida apenas na resposta, nunca mais.

bash
# Criar usuario (senha gerada automaticamente)
curl -X POST "https://superestante.com.br/api/v1/users" \
  -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Joao Silva",
    "email": "joao@empresa.com",
    "role": "reader",
    "department": "TI"
  }'

# Inativar usuario
curl -X PATCH "https://superestante.com.br/api/v1/users/UUID" \
  -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"status": "inactive"}'

# Listar com filtros
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/users?status=active&department=TI&page=1&per_page=50"

# Remover (precisa de permissao 'delete')
curl -X DELETE "https://superestante.com.br/api/v1/users/UUID" \
  -H "Authorization: Bearer sk_live_SUA_CHAVE"
javascript
// Node.js / fetch
const API_KEY = process.env.SUPERESTANTE_API_KEY;

async function criarUsuario(dados) {
  const r = await fetch("https://superestante.com.br/api/v1/users", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(dados),
  });
  if (!r.ok) throw new Error((await r.json()).error);
  return r.json();
}

const novo = await criarUsuario({
  name: "Maria Souza",
  email: "maria@empresa.com",
  department: "RH",
});
console.log(novo.data.id, novo.data.temp_password);
python
# Python / requests
import os, requests

API_KEY = os.environ["SUPERESTANTE_API_KEY"]
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

def criar_usuario(dados):
    r = requests.post("https://superestante.com.br/api/v1/users", headers=HEADERS, json=dados)
    r.raise_for_status()
    return r.json()["data"]

novo = criar_usuario({"name": "Carlos", "email": "carlos@empresa.com"})
print(novo["id"], novo["temp_password"])

4. Estante do Usuario (Livros + Progresso)

Retorna a estante completa de um usuario: todos os livros em que ele tem progresso de leitura (em andamento ou concluidos), com dados do livro embutidos.

bash
# Estante completa do usuario
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/users/UUID_USER/shelf"

# Apenas livros em andamento
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/users/UUID_USER/shelf?status=reading"

# Apenas concluidos
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/users/UUID_USER/shelf?status=completed"

5. Biblioteca (Livros) — Somente Leitura

O catalogo de livros eh gerenciado exclusivamente pelos admins da plataforma Super Estante via painel administrativo. Empresas parceiras integradoras consomem o catalogo em modo leitura para listar/consultar — criar, editar ou remover livros via API publica retorna 405 Method Not Allowed.

bash
# Listar livros (filtros: search, category, page, per_page)
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/books?search=habito&page=1"

# Filtrar por categoria
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/books?category=Produtividade"

6. Progresso de Leitura

Upsert: cria ou atualiza o registro de progresso de um usuario num livro. Quandopercentage_complete chega em 100, o registro vira status: completed e dispara o webhook book_completed.

bash
# Sincronizar progresso de leitura
curl -X POST "https://superestante.com.br/api/v1/progress" \
  -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "UUID_USER",
    "book_id": "UUID_LIVRO",
    "percentage_complete": 75.5,
    "current_page": 308
  }'

# Consultar progresso de um usuario
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/progress?user_id=UUID_USER&status=reading"

6.5 Gestao de Creditos

Cada usuario tem tres cotas mensais de creditos independentes — e-book, audiobook e revista — usadas para resgatar livros. As cotas padrao vao em users.monthly_credits_ebook, users.monthly_credits_audiobook e users.monthly_credits_revista (setadas na criacao). O saldo efetivo de cada mes vive em user_credits (uma linha por mes e por credit_type) e eh manipulado por este endpoint num unico POST — informe ebook, audiobook e/ou revista no mesmo body (sem precisar de tres chamadas). Cada livro tem sempre um unico product_type, entao o resgate consome diretamente o credito correspondente ao formato do livro.

bash
# Definir 5 creditos de e-book, 3 de audiobook e 2 de revista no mesmo POST
curl -X POST "https://superestante.com.br/api/v1/users/UUID/credits" \
  -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"ebook": 5, "audiobook": 3, "revista": 2, "mode": "set"}'

# Adicionar so 2 creditos de audiobook extras (nao mexe nos outros)
curl -X POST "https://superestante.com.br/api/v1/users/UUID/credits" \
  -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"audiobook": 2, "mode": "add"}'

# Setar para um mes especifico (ex: julho de 2026)
curl -X POST "https://superestante.com.br/api/v1/users/UUID/credits" \
  -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"ebook": 8, "month": 7, "year": 2026}'

# Consultar saldo + historico das tres carteiras numa unica chamada
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/users/UUID/credits"

6.6 Empresa Vinculada

Cada API key pertence a UMA empresa (tenant). Para criar usuarios em empresas diferentes, gere uma chave dentro de cada uma no painel admin e use a chave correspondente. Este endpoint retorna a empresa vinculada a chave atual:

bash
curl -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  "https://superestante.com.br/api/v1/tenant"

# Resposta:
# {
#   "data": {
#     "id": "uuid...",
#     "name": "Meta",
#     "company_name": "Meta Plataformas Brasil Ltda",
#     "slug": "meta",
#     "status": "active",
#     "logo_url": "https://...",
#     "plan_type": "business",
#     "max_seats": 200,
#     "content_type": "both",          // ebook | audiobook | both
#     "allowed_categories": [],         // vazio = todas as categorias
#     "user_count": 12
#   }
# }
#
# IMPORTANTE: content_type eh por empresa, nao por usuario. Todos os
# usuarios criados nessa empresa receberao o mesmo formato. Para
# alterar, edita-se a empresa no painel admin.

7. Webhooks

Em vez de fazer polling, voce cadastra uma URL sua no painel (API Keys → Webhooks). Quando um evento acontece, enviamos POST para essa URL com payload JSON e assinatura HMAC.

Eventos disponiveis:

  • user_created — novo usuario criado via API ou painel
  • user_updated — usuario atualizado (incluindo ativacao/inativacao)
  • book_completed — usuario concluiu um livro (100%)
  • content_submitted — novo livro adicionado ao catalogo
json
// Payload entregue ao seu endpoint
{
  "event": "user_created",
  "timestamp": "2026-05-21T12:00:00.000Z",
  "data": {
    "user": {
      "id": "uuid...",
      "name": "Joao Silva",
      "email": "joao@empresa.com",
      "role": "reader",
      "status": "active"
    }
  }
}

Headers enviados:

http
POST /seu-endpoint HTTP/1.1
Content-Type: application/json
X-Webhook-Event: user_created
X-Webhook-Signature: 8f4a2b... (HMAC-SHA256 do body com o secret do webhook)

Validacao da assinatura (sempre faca isso pra garantir que o request veio da SuperEstante):

javascript
// Node.js — middleware para validar webhook
import crypto from "crypto";

export function verifyWebhook(req, secret) {
  const signature = req.headers["x-webhook-signature"];
  const expected = crypto
    .createHmac("sha256", secret)
    .update(req.rawBody) // IMPORTANTE: body bruto, antes do JSON.parse
    .digest("hex");
  return signature === expected;
}
python
# Python — validacao
import hmac, hashlib

def verify_webhook(raw_body: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, signature)

Politica de re-tentativa: cada falha (status ≠ 2xx ou timeout de 10s) incrementa failure_count. Apos 10 falhas consecutivas, o webhook eh desativado automaticamente e voce precisa reativar manualmente.

8. Paginacao e Filtros

Todas as listagens aceitam page (default 1) e per_page (default 20, maximo 100). O objeto meta na resposta indica o total e quantas paginas existem.

javascript
// Iterar por todas as paginas
async function listarTodosUsuarios() {
  const todos = [];
  let page = 1;
  while (true) {
    const r = await fetch(`https://superestante.com.br/api/v1/users?page=${page}&per_page=100`, {
      headers: { Authorization: `Bearer ${API_KEY}` }
    });
    const { data, meta } = await r.json();
    todos.push(...data);
    if (page >= meta.total_pages) break;
    page++;
  }
  return todos;
}

9. Codigos de Erro

StatusSignificadoCausa Comum
200/201SucessoOperacao concluida
400Dados invalidosJSON malformado, campo obrigatorio ausente, valor fora do enum
401Nao autenticadoHeader Authorization ausente ou chave invalida
403Sem permissaoA chave nao tem permissao 'write' ou 'delete' para a operacao
404Nao encontradoRecurso nao existe OU pertence a outro tenant
429Rate limitExcedeu requisicoes por minuto da chave
500Erro internoProblema no servidor — tente novamente em alguns segundos

10. Rate Limits

Cada chave tem um limite de requisicoes por minuto (padrao: 60, configuravel ate 10.000 por chave na criacao). Quando excede, retornamos HTTP 429. Implemente backoff exponencial no seu cliente.

javascript
// Backoff exponencial simples
async function comRetry(fn, max = 5) {
  for (let i = 0; i < max; i++) {
    const r = await fn();
    if (r.status !== 429) return r;
    const espera = Math.min(1000 * 2 ** i, 30_000);
    await new Promise(res => setTimeout(res, espera));
  }
  throw new Error("Rate limit persistente apos retries");
}

11. Seguranca e Boas Praticas

Nunca exponha a API Key no front-end. Use sempre no servidor / backend.

• Armazene em variavel de ambiente / secret manager, nao no codigo-fonte.

• Rotacione periodicamente (botao "Rotacionar" no painel mantem o mesmo nome e permissoes).

• Use chaves diferentes para ambientes distintos (dev, staging, producao).

• Conceda apenas as permissoes necessarias (chave de read-only para BI/relatorios, write so onde precisar criar/atualizar).

• Sempre valide a assinatura HMAC dos webhooks antes de processar.

• Trate 4xx (problema seu) e 5xx (problema nosso) de forma diferente — so faca retry em 429 e 5xx.

12. Suporte

Duvidas sobre a API, problemas de integracao ou solicitacoes de novos endpoints: suporte@superestante.com.br. Spec OpenAPI atualizada em tempo real: GET https://superestante.com.br/api/v1/docs (importavel no Postman / Insomnia / Swagger UI).

Endpoints

Schemas

Webhooks

Configure webhooks para receber notificacoes em tempo real quando eventos ocorrem na plataforma. Os payloads sao assinados com HMAC SHA-256.

EventoDescricao
content_submittedDisparado quando um novo livro e criado via API
user_createdDisparado quando um novo usuario e criado via API
book_completedDisparado quando um usuario completa a leitura de um livro (progresso >= 100%)

Headers enviados

X-Webhook-Signature: HMAC-SHA256 do body com seu secret
X-Webhook-Event: nome do evento

Segurança e privacidade

  • Autenticação: JWT em cookies httpOnly + refresh tokens. Tokens expiram em 1h, refresh em 7 dias. Senhas armazenadas com bcrypt (cost factor 10).
  • Isolamento multi-tenant: toda query é escopada ao tenant_id do usuário autenticado. Não é possível ler dados de outra empresa.
  • CSRF: middleware bloqueia requests mutativos com Origin diferente do Host.
  • Rate limiting: por IP em login (5 tentativas/min) e por API key (configurável).
  • Sessões revogáveis: logout invalida o refresh token via tabela revoked_tokens. Lista de sessões ativas visível no perfil do usuário.
  • Headers de segurança: X-Frame-Options DENY, X-Content-Type-Options nosniff, CSP restritiva, HSTS em produção, Referrer-Policy strict-origin-when-cross-origin.
  • Auditoria: tabela audit_logs registra logins, logouts, alterações de senha, criação/edição de usuários, com IP e user-agent.
  • LGPD: direito de exclusão atendido via remoção de usuário (cascateia para progresso, conquistas, notas). Política completa em Central LGPD.

Acesso mobile e PWA

O Super Estante é um PWA (Progressive Web App). Funciona em qualquer navegador moderno (Chrome, Safari, Firefox, Edge) e pode ser "instalado" no celular como um app nativo:

  • Android: ao abrir no Chrome, aparece banner "Adicionar à tela inicial".
  • iPhone: Safari → Compartilhar → Adicionar à Tela de Início.
  • Desktop: Chrome/Edge mostram ícone de instalação na barra de endereço.
  • Push notifications funcionam tanto no celular quanto no desktop após instalação.
  • Modo offline disponível para livros previamente baixados (ver seção Downloads).

Suporte e contato

Canais oficiais de atendimento:

Perguntas frequentes

Quanto custa o Super Estante?

O valor depende do plano e do número de assentos. Há planos para pequenas equipes (10+ usuários) e enterprise (1.000+). Consulte a página de Planos ou fale com o time comercial.

Quem escolhe os livros do catálogo?

O catálogo base é curado pela equipe Super Estante. Cada empresa pode adicionalmente subir conteúdo próprio (PDFs internos, manuais, livros corporativos) que ficam visíveis apenas para sua empresa.

Os colaboradores podem manter os livros se sairem da empresa?

Não. Ao desligar um usuário, os livros voltam à licença da empresa. O histórico de leitura fica preservado caso o colaborador volte futuramente.

Posso trocar de plano depois?

Sim, a qualquer momento. Upgrades entram em vigor imediatamente, downgrades no próximo ciclo de cobrança.

Qual a diferença entre crédito e livro permanente?

O crédito é o mecanismo mensal — você usa 1 crédito pra trazer 1 livro pra sua estante. Uma vez resgatado, o livro fica lá permanentemente enquanto você for usuário da empresa.

Tem app nativo iOS / Android?

Não, é um PWA. A vantagem é que funciona em todos os dispositivos sem precisar passar pelas lojas, e atualizações são instantâneas. Pode ser instalado como app a partir do navegador.

Como posso integrar com meu sistema de RH?

Use a API pública (gere uma API key no painel) para criar/atualizar/desativar usuários sempre que houver mudança no seu RH. Ou configure webhooks para receber notificações quando eventos acontecerem aqui.

Tem suporte a outros idiomas?

A interface é em português brasileiro. O catálogo pode conter livros em qualquer idioma — o campo language do livro indica.

Pronto para começar?

Fale com o time comercial ou faça login se sua empresa já está cadastrada.