API REST v1
Documentação da API
Catálogo dos endpoints REST disponíveis. Autenticação via Bearer JWT no header Authorization.
Base URL: https://crm.xpevolution.fr/api/v1
Auth: Authorization: Bearer <jwt-access-token> (obter em /auth/login)
Content-Type: application/json em todos os POSTs/PATCHs
🔐 Auth
POST
/auth/register - Cria tenant + admin
POST
/auth/login - Login com slug + email + senha
POST
/auth/refresh - Renova access token
POST
/auth/logout - Logout (auditado)
GET
/me - Usuário autenticado atual
👥 Users
GET
/users - Lista paginada (filtros: q, role, is_active, sort, order, page, per_page)
POST
/users - Criar usuário
GET
/users/{id:uuid} - Detalhe
PATCH
/users/{id:uuid} - Atualizar (admin: tudo / self: campos limitados)
DELETE
/users/{id:uuid} - Soft delete
POST
/users/{id:uuid}/restore - Restaurar
POST
/users/{id:uuid}/password - Trocar senha (self exige current_password)
🏛️ Accounts (empresas)
GET
/accounts - Lista (filtros: q, lifecycle_stage, tier, industry, owner_id, country)
POST
/accounts - Criar
GET
/accounts/{id:uuid} - Detalhe
PATCH
/accounts/{id:uuid} - Atualizar
DELETE
/accounts/{id:uuid} - Soft delete
POST
/accounts/{id:uuid}/restore - Restaurar
👤 Contacts (pessoas)
GET
/contacts - Lista (filtros: q, lifecycle_stage, lead_status, temperature, account_id, owner_id, do_not_contact)
POST
/contacts - Criar (full_name e dedupe_hash auto-gerados)
GET
/contacts/{id:uuid} - Detalhe
PATCH
/contacts/{id:uuid} - Atualizar
DELETE
/contacts/{id:uuid} - Soft delete
POST
/contacts/{id:uuid}/restore - Restaurar
🔄 Pipelines & Stages
GET
/pipelines - Listar pipelines
POST
/pipelines - Criar (?seed=true cria 6 stages padrão)
GET
/pipelines/{id:uuid} - Detalhe c/ stages
PATCH
/pipelines/{id:uuid} - Atualizar
DELETE
/pipelines/{id:uuid} - Soft delete
POST
/pipelines/{id:uuid}/restore - Restaurar
GET
/pipelines/{id:uuid}/stages - Listar stages
POST
/pipelines/{id:uuid}/stages - Criar stage
PATCH
/pipelines/{id:uuid}/stages/{stageId:uuid} - Atualizar stage
DELETE
/pipelines/{id:uuid}/stages/{stageId:uuid} - Deletar stage (bloqueia se tem opps)
💼 Opportunities (deals)
GET
/opportunities - Lista (15+ filtros: status, priority, owner, account, pipeline, stage, faixa de valor, datas)
POST
/opportunities - Criar (FK validation completa)
GET
/opportunities/{id:uuid} - Detalhe
PATCH
/opportunities/{id:uuid} - Atualizar (stage_id BANIDO - usar /move)
DELETE
/opportunities/{id:uuid} - Soft delete
POST
/opportunities/{id:uuid}/restore - Restaurar
POST
/opportunities/{id:uuid}/move - Mover de stage (auto-detecta won/lost, registra histórico)
GET
/opportunities/{id:uuid}/history - Timeline de movimentações
📅 Activities
GET
/activities - Lista (filtros: type, status, owner_id=me, opportunity_id, overdue, due_from/to)
POST
/activities - Criar (link polimórfico obrigatório)
GET
/activities/{id:uuid} - Detalhe
PATCH
/activities/{id:uuid} - Atualizar
DELETE
/activities/{id:uuid} - Soft delete
POST
/activities/{id:uuid}/restore - Restaurar
POST
/activities/{id:uuid}/complete - Atalho: marcar como concluída
📊 Dashboard
GET
/dashboard/summary - 12 KPIs (contatos, accounts, pipeline aberto, won_this_month, conversion_rate, avg_cycle, activities)
GET
/dashboard/pipeline - Kanban-ready (?pipeline_id=...). Stages com counts e values
GET
/dashboard/activity-feed - Timeline (?limit=20). Joina nomes de owner, contact, account, opp
Health & Diagnóstico
GET
/api/v1/ping - Liveness
GET
/api/v1/health - Readiness (DB + Redis + Meili)