- Rewrite README.md with current architecture, features and stack - Update docs/API.md with all current endpoints (corporate, BI, client 360) - Update docs/ARCHITECTURE.md with cache, modular queries, services, ETL - Update docs/GUIA-USUARIO.md for all roles (admin, corporate, agente) - Add docs/INDEX.md documentation index - Add PROJETO.md comprehensive project reference - Add BI-CCC-Implementation-Guide.md - Include AI agent configs (.claude, .agents, .gemini, _bmad) - Add netbird VPN configuration - Add status report Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.4 KiB
API Reference — BI-CCC
Documentação dos endpoints HTTP do sistema BI-CCC.
Base URL
http://localhost:3080
Autenticação
O sistema usa autenticação baseada em sessão. Após login bem-sucedido, um cookie de sessão é enviado automaticamente pelo browser.
Cookie: connect.sid
Duração: 8 horas
Endpoints de Autenticação
POST /login
Processa tentativa de login.
Content-Type: application/x-www-form-urlencoded
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| string | Sim | Email do usuário | |
| senha | string | Sim | Senha em texto plano |
Response: 302 redirect para /dashboard (agente), /corporate (admin/corporate), ou /login?error=1 (falha).
Dados da Sessão:
req.session.agente = {
id: 1, // ID interno SQLite
email: "user@email.com",
agente_id: 76, // ID do agente no RDS (null para admin/corporate)
nome: "Nome",
role: "admin" // admin | corporate | agente
}
GET /logout
Destrói sessão e redireciona para /login.
Páginas HTML (Server-Side Rendered)
Todas requerem autenticação via cookie de sessão.
| Rota | Role | Descrição |
|---|---|---|
GET /corporate |
admin, corporate | Corporate Dashboard |
GET /admin/bi |
admin | BI Executive Dashboard |
GET /admin/cliente |
admin | Client 360 |
GET /admin |
admin | Gestão de Usuários |
GET /admin/home |
admin | Daily Overview |
GET /admin/providers |
admin | Payment Providers |
GET /dashboard |
agente | Dashboard pessoal do agente |
APIs REST — Corporate
Todas retornam JSON e requerem role admin ou corporate.
GET /corporate/api/kpis
KPIs de hoje vs média 30 dias.
Response:
{
"hoje": { "total_ops": 42, "volume_brl": 500000, "volume_usd": 100000, "ticket_medio": 2380 },
"media30d": { "total_ops": 35, "volume_brl": 420000, ... }
}
GET /corporate/api/trend
Tendência dos últimos 30 dias (volume diário).
GET /corporate/api/top-agentes
Top 5 agentes por volume.
| Param | Tipo | Default | Descrição |
|---|---|---|---|
| dias | number | 30 | Período em dias (7, 30, 90) |
GET /corporate/api/kpis-period
KPIs por período customizado.
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| inicio | date | Sim | Data início (YYYY-MM-DD) |
| fim | date | Sim | Data fim (YYYY-MM-DD) |
GET /corporate/api/trend-period
Tendência por período customizado.
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| inicio | date | Sim | Data início |
| fim | date | Sim | Data fim |
APIs REST — BI Executive
Requerem role admin.
GET /admin/api/bi
Dashboard BI completo: KPIs, tendências, ranking de agentes, retenção.
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| start | date | Sim | Data início (YYYY-MM-DD) |
| end | date | Sim | Data fim (YYYY-MM-DD) |
Response: Objeto com kpis, kpisPrev, trend, topAgentes, topClientes, retention.
GET /admin/api/bi/revenue
Revenue analytics por produto com granularidade.
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| start | date | Sim | Data início |
| end | date | Sim | Data fim |
| granularity | string | Não | day, month, year (default: month) |
GET /admin/api/bi/strategic
BI estratégico: cohort retention, revenue expansion/contraction, cross-sell, maturidade.
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| start | date | Sim | Data início |
| end | date | Sim | Data fim |
APIs REST — Client 360
Requerem role admin.
GET /admin/api/clientes/top
Top 20 clientes por volume total (lifetime).
GET /admin/api/clientes/search
Busca clientes por nome.
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| q | string | Sim | Termo de busca (mín. 2 caracteres) |
GET /admin/api/cliente/:id/profile
Profile lifetime do cliente: stats gerais, health score, merchant detection.
| Param | Tipo | Descrição |
|---|---|---|
| id | number | id_conta do cliente |
GET /admin/api/cliente/:id/data
Dados detalhados do cliente por período: KPIs, transações, timeline, insights.
| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| id | number | Sim | id_conta do cliente |
| start | date | Sim | Data início |
| end | date | Sim | Data fim |
APIs REST — Outras
GET /api/cotacao
Cotação USD/BRL em tempo real (proxy para API externa AwesomeAPI).
Autenticação: Requerida (qualquer role)
Response:
{
"bid": "5.0123",
"ask": "5.0234",
"timestamp": "1706889600"
}
Middleware
requireAuth
Verifica se há sessão ativa. Redireciona para /login se não autenticado.
requireRole(role)
Verifica se o usuário tem a role necessária. Retorna 403 se não autorizado. Admin tem acesso a todas as rotas.
Códigos de Erro
| Código | Significado | Causa Comum |
|---|---|---|
| 302 | Redirect | Login/logout, acesso não autorizado |
| 403 | Forbidden | Role insuficiente |
| 500 | Erro interno | Falha conexão RDS, erro de query |