API REST v1
API documentation
Catalogue of available REST endpoints. Authentication via Bearer JWT in the Authorization header.
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)